0,1的排列问题。

onlyoucn 2007-01-04 01:23:12
有M个0,1的排列,这个排列通过程序打印出来。如有3个0,1的排列,应打出:
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
这该怎样生成,请高手帮忙,先谢了!对了,M的取值不是事先知道的,可以临时改变。
...全文
215 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
onlyoucn 2007-01-04
  • 打赏
  • 举报
回复
也就是要得到一列数:
a(0)=0 a(1)=0 a(2)=0
a(0)=0 a(1)=0 a(2)=1
.
.
.
a(0)=1 a(1)=1 a(2)=1
希望能得到这样的结果。
onlyoucn 2007-01-04
  • 打赏
  • 举报
回复
看来,是我没说清楚,我打算把这些排列存到一个数组中,到时还要用到这些数。
chanfengsr 2007-01-04
  • 打赏
  • 举报
回复
我想到一个办法,就是转成2进制不就行了吗!
比如你输入5,先得出5个1的二进制为31,(自己解决)
然后:
写一个将10进制转成二进制的函数,比如:
Public Function DecToBinary(dec As Integer)
Dim m As String, n As String, d As Integer
d = dec
Do
m = (d Mod 2) & m
d = d \ 2
Loop Until d = 0
DecToBinary = m
End Function

然后再:
dim i as Integer
dim s as string
for i=0 to 31
s=str(DecToBinary(i))
print s & vbcrlf
next i
cangwu_lee 2007-01-04
  • 打赏
  • 举报
回复
转一个

http://dev.cbw.com/vb/bclass/20058105101_4174347.shtml


onlyoucn 2007-01-04
  • 打赏
  • 举报
回复
谢谢各位的帮助!
_1_ 2007-01-04
  • 打赏
  • 举报
回复
如果是我,我会有以下几种方法实现
1: 数据库 文本文件也可以当成数据库操作
2:把数据加到LISTVIEW 或者 list中
Sorted 属性

返回一个值,指定控件的元素是否自动按字母表顺序排序。


cmdlang 2007-01-04
  • 打赏
  • 举报
回复
从0开始自加,每一次都转成二进制存到数组中
tmd007 2007-01-04
  • 打赏
  • 举报
回复
速度应该比转换为二进制的快点
其中数组a()中存储各位数值
tmd007 2007-01-04
  • 打赏
  • 举报
回复
另一种方法,不用转换为二进制,
Dim M, a() As Integer, i, P
M = 4: ReDim a(M - 1)
Do
P = M - 1
For i = 0 To P
Debug.Print a(i);
Next: Debug.Print
Do
a(P) = a(P) + 1
If a(P) > 1 Then a(P) = 0: P = P - 1 Else Exit Do
Loop While P > -1
Loop While P > -1
jadeluo 2007-01-04
  • 打赏
  • 举报
回复
给你写了个函数CreateArray, 并有例子:

Option Explicit

Private Sub CreateArray(ByVal M As Integer, ByRef ABuf)
ReDim ABuf(2 ^ M - 1, M - 1)
Dim iRow As Integer
Dim iCol As Integer
Dim iNum As Integer
For iRow = 0 To 2 ^ M - 1
iNum = iRow
For iCol = M - 1 To 0 Step -1
ABuf(iRow, iCol) = iNum Mod 2
iNum = iNum \ 2
Next iCol
Next iRow
End Sub

Private Sub Command1_Click()
Dim A() As Integer
Dim i As Integer
Dim j As Integer
Dim k As Integer
k = InputBox("输入M的值")
CreateArray k, A
For i = 0 To 2 ^ k - 1
For j = 0 To k - 1
Debug.Print A(i, j);
Next j
Debug.Print
Next i
End Sub

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧