Случайный генератор символов с диапазоном (A.. Z, 0.. 9) и пунктуация

Я должен создать случайный генератор символов, которые возвращают отдельный символ. Символ должен расположиться в рамках букв алфавита, числа 0 до 9, и некоторые символы как.?/-. Любой пример ценился бы.

9
задан spender 25 June 2010 в 12:51
поделиться

3 ответа

  1. Выберите случайное число между [0, x), где x - количество различных символов. Надеюсь, выбор будет равномерным и не предсказуемым :-)

  2. Теперь выберите символ, представляющий x.

  3. Прибыль!

Я бы начал читать Псевдослучайность, а затем некоторые общие Генераторы псевдослучайных чисел. Конечно, ваш язык, надеюсь, уже имеет подходящую "случайную" функцию :-)

5
ответ дан 4 December 2019 в 05:54
поделиться

Использование простой командной строки (bash скриптинг):

$ cat /dev/urandom | tr -cd 'a-z0-9,.?/\-' | head -c 30 | xargs
t315,qeqaszwz6kxv?761rf.cj/7gc

$ cat /dev/urandom | tr -cd 'a-z0-9,.?/\-' | head -c 1 | xargs
f
  • cat /dev/urandom: получить случайный поток символов от ядра
  • tr: сохранить только нужные нам символы
  • head: взять только первые n символов
  • xargs: просто для добавления '\n' символов
0
ответ дан 4 December 2019 в 05:54
поделиться

Проще всего сделать следующее:

  • Создайте Строковый алфавит с нужными символами.
  • Скажите N = алфавит.length ()
  • Тогда мы можем запросить java.util.Random для int x = nextInt (N)
  • алфавита. charAt (x) - случайный символ из алфавита

Вот пример:

    final String alphabet = "0123456789ABCDE";
    final int N = alphabet.length();

    Random r = new Random();

    for (int i = 0; i < 50; i++) {
        System.out.print(alphabet.charAt(r.nextInt(N)));
    }
40
ответ дан 4 December 2019 в 05:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: