2013-06-05 90 views
0

我想要生成看起來像ABCDAABC的四位數字(從00009999)。 因此,例如模式ABCD將有號碼,如根據模式生成數字

0123012401250126012701280129等。

模式AABC,如:

00120013001400150016

+1

你能提供一些代碼示例來理解你的做法? – Rubyist

+1

不知道你需要什麼。一個發生器具有相等的概率來產生每個字符串,或者只是生成它們全部? – halfelf

+0

我繼續生成ABCD的示例代碼。 ('0000'..'9999')。each {| x | X如果x =〜/^(?!.*(.).*\1)\d{4}$/} ,我期待生成所有這些(導致陣列) –

回答

2
(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}"} 
+0

這是一個很好的方式!謝謝 –