找回密码
 加入
搜索
查看: 2486|回复: 14

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

[复制链接]
发表于 2021-3-14 15:05:41 | 显示全部楼层 |阅读模式
有7个字符,如: a  b  c  d  e  f  g
要由这7个字符组成长度为50的字符串(并不一定要包含所有字符:可以是 50个字符a, 或1个字符a,49个字符b,...)
求大佬指点算法,怎么列举出所有组合(不需要排列)


发表于 2021-3-14 15:21:25 | 显示全部楼层
这所有组合怕是个天文数字吧,算出来估计可以挖矿了
发表于 2021-3-14 19:37:36 来自手机 | 显示全部楼层
核心算法就是10进制转7进制,然后数字转字符串。最后正则替换。关键是位数太多 写出代码也无法跑完。
发表于 2021-3-15 08:59:40 | 显示全部楼层
从宇宙大爆炸开始算,到现在都算不完。
发表于 2021-3-15 14:46:56 | 显示全部楼层
虽然算不完, 但是算法还是有的... 总不能套嵌50个for吧....
HotKeySet('{esc}', '__exit')

Local $aiIndex[50], $asChar[7] = ['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[49] += 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[0] = 7 Then ExitLoop
WEnd

Func __exit()
        Exit
EndFunc

评分

参与人数 1金钱 +60 收起 理由
zghwelcome + 60 很给力!

查看全部评分

发表于 2021-3-15 15:51:13 | 显示全部楼层
gapkiller 发表于 2021-3-15 14:46
虽然算不完, 但是算法还是有的... 总不能套嵌50个for吧....

测试了一下,只到 20 位就需要 162 万年,小命恐有不保~ 内存等硬件就不提了~
发表于 2021-3-15 16:03:49 | 显示全部楼层
afan 发表于 2021-3-15 15:51
测试了一下,只到 20 位就需要 162 万年,小命恐有不保~ 内存等硬件就不提了~

哈哈, 7^50, 这个数量级太可怕, 地球上所有沙子加起来的数量也达不到它的零头....
 楼主| 发表于 2021-3-15 18:24:08 | 显示全部楼层
gapkiller 发表于 2021-3-15 14:46
虽然算不完, 但是算法还是有的... 总不能套嵌50个for吧....

谢谢帮忙,
 楼主| 发表于 2021-3-15 18:27:10 | 显示全部楼层
这个问题的并没有涉及排列,所以结果远不及 7^50 这个数量级。
我已经梳理了一套算法,晚点完善下发出来,看看有没有披露
发表于 2021-3-15 19:28:25 | 显示全部楼层
zghwelcome 发表于 2021-3-15 18:27
这个问题的并没有涉及排列,所以结果远不及 7^50 这个数量级。
我已经梳理了一套算法,晚点完善下发出来, ...

我认为这个数量级还是非常大的,坐等大佬发算法。。。
发表于 2021-3-15 21:59:06 | 显示全部楼层
这个已经不是算法的问题了,内存肯定是无法存储了,那么硬盘呢? 全球的各种类型存储设备的容量全部加一起,也无法保存数据内容的万分之一。
发表于 2021-3-16 10:06:45 | 显示全部楼层
期待???买体彩36选7就指日可待了。36比50少了14,7又不能重复。
发表于 2021-3-17 18:50:53 | 显示全部楼层
还有这种操作 ?????
发表于 2021-3-17 18:51:04 | 显示全部楼层
真是太好了!!!!!!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-16 14:25 , Processed in 0.076749 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表