zghwelcome 发表于 2021-3-14 15:05:41

7个字符填入50个位置的组合,求大佬指点算法

有7个字符,如: abcdefg
要由这7个字符组成长度为50的字符串(并不一定要包含所有字符:可以是 50个字符a, 或1个字符a,49个字符b,...)
求大佬指点算法,怎么列举出所有组合(不需要排列)


afan 发表于 2021-3-14 15:21:25

这所有组合怕是个天文数字吧,算出来估计可以挖矿了

gyp2000 发表于 2021-3-14 19:37:36

核心算法就是10进制转7进制,然后数字转字符串。最后正则替换。关键是位数太多 写出代码也无法跑完。

zch11230 发表于 2021-3-15 08:59:40

从宇宙大爆炸开始算,到现在都算不完。

gapkiller 发表于 2021-3-15 14:46:56

虽然算不完, 但是算法还是有的... 总不能套嵌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

afan 发表于 2021-3-15 15:51:13

gapkiller 发表于 2021-3-15 14:46
虽然算不完, 但是算法还是有的... 总不能套嵌50个for吧....

测试了一下,只到 20 位就需要 162 万年,小命恐有不保~ 内存等硬件就不提了~

gapkiller 发表于 2021-3-15 16:03:49

afan 发表于 2021-3-15 15:51
测试了一下,只到 20 位就需要 162 万年,小命恐有不保~ 内存等硬件就不提了~

哈哈, 7^50, 这个数量级太可怕, 地球上所有沙子加起来的数量也达不到它的零头....

zghwelcome 发表于 2021-3-15 18:24:08

gapkiller 发表于 2021-3-15 14:46
虽然算不完, 但是算法还是有的... 总不能套嵌50个for吧....

谢谢帮忙,:face (25):

zghwelcome 发表于 2021-3-15 18:27:10

这个问题的并没有涉及排列,所以结果远不及 7^50 这个数量级。
我已经梳理了一套算法,晚点完善下发出来,看看有没有披露

haijie1223 发表于 2021-3-15 19:28:25

zghwelcome 发表于 2021-3-15 18:27
这个问题的并没有涉及排列,所以结果远不及 7^50 这个数量级。
我已经梳理了一套算法,晚点完善下发出来, ...

我认为这个数量级还是非常大的,坐等大佬发算法。。。

gyp2000 发表于 2021-3-15 21:59:06

这个已经不是算法的问题了,内存肯定是无法存储了,那么硬盘呢? 全球的各种类型存储设备的容量全部加一起,也无法保存数据内容的万分之一。

chzj589 发表于 2021-3-16 10:06:45

期待???买体彩36选7就指日可待了。36比50少了14,7又不能重复。

zhaozengxiao 发表于 2021-3-17 18:50:41

学习了!!!!!!!

zhaozengxiao 发表于 2021-3-17 18:50:53

还有这种操作 ?????

zhaozengxiao 发表于 2021-3-17 18:51:04

真是太好了!!!!!!
页: [1]
查看完整版本: 7个字符填入50个位置的组合,求大佬指点算法