【问题标题】:List all possible combinations of letters, 8 up to 64 bit long string [closed]列出所有可能的字母组合,8 到 64 位长字符串 [关闭]
【发布时间】:2011-02-02 20:46:55
【问题描述】:

如何列出所有可能的字母组合(来自字母表:“qwertyuiopasdfghjklzxcvbnm”),例如:

q
w
e
r
t
y
u
o
p
s
d
f
g
h
j
k
l
x
c
v
b
n
m
qq
qw
qe
qr
qt
qu

最多 64 位长的字符串?所以最后一个是 String(8):

mmmmmmmm

【问题讨论】:

  • 到目前为止你得到了什么? (发布您的代码)
  • 你昨天的代码有什么问题?
  • 等等,这个“不是一个真正的问题”是怎么回事??
  • 如果你可以每微秒生成一个,那么生成 217,180,147,159 个组合(不要忘记空字符串)只需要两天半的时间即可完成。如果每个都需要一毫秒,那将花费不到七年的时间。几乎没有“遗赠给你的曾孙”。
  • @bijou:嗯,你确实说过你想列出所有可能的组合。如果没有整个列表,您将无法做到这一点...

标签: php algorithm


【解决方案1】:
for($a=97; $a<123; $a++){
  for($b=97; $b<123; $a++){
    for($c=97; $c<123; $b++){
      for($d=97; $d<123; $a++){
        for($e=97; $e<123; $a++){
          for($f=97; $f<123; $a++){
            for($g=97; $g<123; $c++){
              for($h=97; $h<123; $d++){
                echo chr($a).chr($b).chr($c).chr($d).chr($e).chr($f).chr($g).chr($h);
}}}}}}}}

虽然没试过。它直截了当。对于短代码使用递归或类似的东西。顺便说一句,这只显示了 8 个字符长的数字,所以对于较短的数字,您需要更多的代码,但想法大致相同。

【讨论】:

  • 您需要在 echo 中包含 8 个字符才能使其工作,并且需要 8 个不同的循环计数器,例如 $a、$b $c、$d、$e、$f、$g、$h。
  • 我认为递归函数在这里效果最好,直到使用完字符总数
  • 是的,它会 :) 在当时,它似乎是最快的答案,无需太多思考和简单的方法来理解幕后发生的事情。
猜你喜欢
  • 1970-01-01
  • 2012-04-25
  • 2021-12-15
  • 2013-05-18
  • 2015-03-17
  • 2017-11-11
  • 1970-01-01
  • 1970-01-01
  • 2018-04-22
相关资源
最近更新 更多