0
我想要生成看起来像ABCD
和AABC
的四位数字(从0000
到9999
)。 因此,例如模式ABCD
将有号码,如根据模式生成数字
0123
,0124
,0125
,0126
,0127
,0128
,0129
等。
模式AABC,如:
0012
,0013
,0014
,0015
,0016
等
我想要生成看起来像ABCD
和AABC
的四位数字(从0000
到9999
)。 因此,例如模式ABCD
将有号码,如根据模式生成数字
0123
,0124
,0125
,0126
,0127
,0128
,0129
等。
模式AABC,如:
0012
,0013
,0014
,0015
,0016
等
(0..9).to_a.permutation(4).map{|a, b, c, d| [a, b, c, d].join}
(0..9).to_a.permutation(3).map{|a, b, c| [a, a, b, c].join}
或者
(0..9).to_a.permutation(4).map{|a, b, c, d| "#{a}#{b}#{c}#{d}"}
(0..9).to_a.permutation(3).map{|a, b, c| "#{a}#{a}#{b}#{c}"}
这是一个很好的方式!谢谢 –
你能提供一些代码示例来理解你的做法? – Rubyist
不知道你需要什么。一个发生器具有相等的概率来产生每个字符串,或者只是生成它们全部? – halfelf
我继续生成ABCD的示例代码。 ('0000'..'9999')。each {| x | X如果x =〜/^(?!.*(.).*\1)\d{4}$/} ,我期待生成所有这些(导致阵列) –