2013-06-05 3 views
0

Я хочу сгенерировать четырехзначные числа (от 0000 до 9999), которые выглядят как ABCD и AABC. Так, например, модель ABCD будет иметь номера, какГенерировать числа по шаблону

0123, 0124, 0125, 0126, 0127, 0128, 0129 так далее.

Pattern AABC как:

0012, 0013, 0014, 0015, 0016 и т.д.

+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

Это аккуратный путь! благодаря –

Смежные вопросы