7个字符填入50个位置的组合,求大佬指点算法
有7个字符,如: abcdefg要由这7个字符组成长度为50的字符串(并不一定要包含所有字符:可以是 50个字符a, 或1个字符a,49个字符b,...)
求大佬指点算法,怎么列举出所有组合(不需要排列)
这所有组合怕是个天文数字吧,算出来估计可以挖矿了 核心算法就是10进制转7进制,然后数字转字符串。最后正则替换。关键是位数太多 写出代码也无法跑完。 从宇宙大爆炸开始算,到现在都算不完。 虽然算不完, 但是算法还是有的... 总不能套嵌50个for吧....
HotKeySet('{esc}', '__exit')
Local $aiIndex, $asChar = ['a','b','c','d','e','f','g']
For $i = 0 To 49 ; initialize $aiIndex
$aiIndex[$i] = 0
Next
Local $sStr
While 1
$sStr = ''
For $i = 0 To 49
$sStr &= $asChar[$aiIndex[$i]]
Next
ConsoleWrite($sStr&@LF)
$aiIndex += 1
For $i = 49 To 1 Step -1 ; 就像数数字, 遇7进1
If $aiIndex[$i] < 7 Then
ExitLoop
EndIf
$aiIndex[$i] = 0
$aiIndex[$i-1] += 1
Next
If $aiIndex = 7 Then ExitLoop
WEnd
Func __exit()
Exit
EndFunc
gapkiller 发表于 2021-3-15 14:46
虽然算不完, 但是算法还是有的... 总不能套嵌50个for吧....
测试了一下,只到 20 位就需要 162 万年,小命恐有不保~ 内存等硬件就不提了~ afan 发表于 2021-3-15 15:51
测试了一下,只到 20 位就需要 162 万年,小命恐有不保~ 内存等硬件就不提了~
哈哈, 7^50, 这个数量级太可怕, 地球上所有沙子加起来的数量也达不到它的零头.... gapkiller 发表于 2021-3-15 14:46
虽然算不完, 但是算法还是有的... 总不能套嵌50个for吧....
谢谢帮忙,:face (25): 这个问题的并没有涉及排列,所以结果远不及 7^50 这个数量级。
我已经梳理了一套算法,晚点完善下发出来,看看有没有披露 zghwelcome 发表于 2021-3-15 18:27
这个问题的并没有涉及排列,所以结果远不及 7^50 这个数量级。
我已经梳理了一套算法,晚点完善下发出来, ...
我认为这个数量级还是非常大的,坐等大佬发算法。。。 这个已经不是算法的问题了,内存肯定是无法存储了,那么硬盘呢? 全球的各种类型存储设备的容量全部加一起,也无法保存数据内容的万分之一。 期待???买体彩36选7就指日可待了。36比50少了14,7又不能重复。 学习了!!!!!!! 还有这种操作 ????? 真是太好了!!!!!!
页:
[1]