2016-04-04 52 views
-1

如何使用字符AZ(大写和小写)输出每个可能的字符组合(8和16之间)和数字0-9,同时也使用一些特殊字符,如下划线和美元符号。Ruby输出8到16个字符之间的每个可能的字符(AZ,az,0-9)

+7

你需要多少年来运行这个程序?这里有62^16种可能性。这大约是1.5万亿年,每秒迭代次数为10亿次。 – tadman

+0

欢迎来到Stack Overflow。除了在这里问问以外,你还有什么努力?这是一项任务吗? –

回答

1

正如@tadman说,这不会太阳系的生命周期内完成,但在理论上,你可以做到这样的:

chars = [*:A..:Z, *:a..:z, *0..9, ?$, ?_] 

(8..16).each do |n| 
    chars.permutation(n) do |a| 
    puts a.join 
    end 
end 

如果要计算输出的行数

(8..16).reduce(0) {|sum,n| sum + chars.permutation(n).size } 

注:开始之前有四种Array方法获得字符的 “组合”:permutationcombinationrepeated_permutationrepeated_combination。您应该检查文档或对每个文档进行试验,以确保您获得正确的“组合”。

相关问题