數位邏輯的問題 列出所有組合

2014-12-08 11:52 pm
我也不知道這算不算數位邏輯的問題 但想上來一問

假設今天我有10bit的儲存空間
內容只能有4個 1 (high)
最小是 0000001111
最大是 1111000000

該如何列出其所有排列組合?(可用matlab求出)

謝謝
更新1:

可以用matlab列出來嗎~? C(10,4)是很直觀的算法

回答 (4)

2014-12-13 6:12 am
✔ 最佳答案
10!/(4!*6!)=210

210種

沒學過matlab
下列是C++的程式碼

#include<stdio.h>
#include<algorithm>
using namespace std;
int main(){
int a[10]={0};
for(int i=6;i<10;i++)a[i]=1;
do{
for(int i=0;i<10;i++)
printf("%d",a[i]);
printf("\n");
}while (next_permutation(a,a+10));
return 0;
}
參考: 網路
2014-12-12 7:34 pm
九卅休閒特區 官網 TS777。CC 免費 註冊 體驗

彩球 - bingo、三星彩、四星彩、539、六合、KENO彩、威力彩等各國彩球遊戲

體育 -- 世界各國籃球(NBA)、棒球(MLB)、網球、冰球、足球等遊戲

電子 機台 -- 5PK、水果盤、7 PK、金瓶梅、趙雲救主等復古 遊戲

真人 遊戲 -- 骰寶、翻攤、龍虎、百家樂、三公、21點、輪盤等現場及手臂 遊戲

對戰 GAME -- 麻將、大老二、德州撲克、暗棋、接龍、五 子棋、鬥地主等真 人競技 遊戲

歡迎 加入 會員

九卅體育場 官方 TS777.CC 免費 加入試玩
2014-12-10 9:40 pm
Excel VBA 程式碼 :

Sub Sub_Combin()

Dim A(10) As Integer
Dim T As String

Cells.NumberFormatLocal = "@"
r = 1
c = 1

For n = 0 To 2 ^ 10 - 1
m = n
S = 0
T = ""

For k = 1 To 10
A(k) = m Mod 2
m = Int(m / 2)
S = S + A(k)
T = A(k) & T
Next

2014-12-10 13:40:48 補充:
If S = 4 Then
Cells(r, c) = T
If r Mod 30 = 0 Then
r = 1
c = c + 1
Else
r = r + 1
End If
End If
Next

End Sub
2014-12-09 1:01 am
可以想像為:十個數字放進十個位置

現有十個位置
從十個數中取出一數,共有十個位置可以放
再從剩下的九個數中取出一個,只剩九個位置可以放
......依此類推總共有10*9......*1種組合,意即10!種

但是六個0彼此之間的互換都只能算是同一種
而互換的組合數就跟六個數字放進六個位置一樣的意義
同樣的四個1彼此之間的互換也只能算是同一種

所以總組合數= 10!/(6!*4!)
= 10*9*8*7 / (4*3*2*1)
= 210種

用比較少的1去列列看
不難,只是210種也挺花時間的
有空再幫忙~

2014-12-08 18:50:24 補充:
樓下有程式有列表
210種剛剛好~


收錄日期: 2021-04-27 21:37:53
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20141208000010KK03381

檢視 Wayback Machine 備份