2015-04-13 2 views
1

Скажем, у меня есть строка main_string = "germany"Генерация случайных с подстроки

А теперь я хочу, чтобы генерировать случайные строки, которые содержат этот main_string

Результаты должны быть, например:

germanyXv43 
Fggermany3s 
germany55FR 

Что лучший способ сделать это?

Я думал в использовании SecureRandom

Например:

30000.times do 
    "germany" + SecureRandom.hex(3) 
end 

Но, как вы можете догадаться, тогда germany будет всегда в начале строки:

germany8s5 
germanyDF4 
...... 

Как может Я делаю это более Случайно? Благодаря!

+0

Генерирует случайное число, представляющее собой символ, после чего вставить его? Также я не уверен, для чего нужна ваша гигантская петля. –

+0

'SecureRandom.hex (3) +" germany "+ SecureRandom.hex (3)' i guess) – lx00st

+0

@ Ix00st он не должен быть всегда посередине, иногда он должен быть спереди, а затем в конце или где-то в середина! Спасибо за вашу помощь! –

ответ

6

Создание массива и перемешайте его:

(["germany"] + SecureRandom.hex(3).chars).shuffle.join 
# => "cgermany06f96" 
# => "70efgermanyb4" 
# => "germany934732" 
# => "ebgermany9e4f" 
+1

Thats точно, что я искал! –

+0

BTW в вашем примере вы используете 'SecureRandom.hex (3)' для генерации случайной строки длины 3. Это неверно. Длина строки результата в два раза больше n. – shivam

+0

Спасибо за информацию! Сколько posibilites имеет 'String', сгенерированный с помощью' SecureRandom.hex (3) '. Im, думающий о '16 * 16 * 16', является правильным? –

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