Стохастическая версия seq для генерации последовательности случайных чисел / слов?

Некоторое время назад я использовал seq-подобный инструмент для печати последовательности псевдослучайных чисел в stdout. Вы можете указать диапазон, семя, количество образцов и многое другое.

Я только что забыл название этого инструмента. Может кто-нибудь мне помочь?

Возможно, вы знаете даже более продвинутый инструмент, который, например, поддерживает разные распределения вероятностей или даже генерацию последовательности случайных слов под разными алфавитами и распределениями длины / символа.

  • Как удалить часть двоичного файла без копирования
  • Переменная структура скрипта
  • Разница между nohup, disown и &
  • Как получить вход через уведомления в bash?
  • Могу ли я сделать общий каталог в частном каталоге?
  • bash custom builtin
  • Что происходит, когда мы вводим простую команду в оболочке?
  • Самый практичный способ сравнения контрольных сумм md5
  • 2 Solutions collect form web for “Стохастическая версия seq для генерации последовательности случайных чисел / слов?”

    Вы имеете в виду jot?

    $ jot jot: jot - print sequential or random data usage: jot [ options ] [ reps [ begin [ end [ s ] ] ] ] Options: -r random data -c character data -n no final newline -b word repeated word -w word context word -s string data separator -p precision number of characters 

    Если вы используете Ubuntu, пакет будет athena-jot. Простой пример:

     $ jot -r 10 12 27 26 13 22 18 25 12 13 23 15 23 

    До свидания.

    Если вы не возражаете писать небольшой скрипт, чтобы делать то, что вам нужно, я бы рекомендовал сделать это в R , системе статистики с открытым исходным кодом.

    Например, рассмотрим этот однострочный шрифт, чтобы получить список из 100 гауссовских распределенных чисел:

     $ Rscript -e 'write(rnorm(100) * 100 + 100, "", 1)' 234.2903 -25.53289 168.0262 -28.49810 105.0687 85.97355 269.5072 ... 

    Давайте сломаем это.

    Стандартная команда R выводит вас в интерактивную среду программирования, и это нормально, если вы пытаетесь решить, как сделать что-то вручную или что-то наращивать поэтапно, но из вашего вопроса, похоже, вам просто нужен список номера для отправки в другую программу. Поэтому вместо этого мы используем Rscript , который больше похож на традиционный интерпретатор скриптов Unix: вы можете передать ему имя файла, содержащего R-скрипт, или использовать стандартный флаг -e для передачи всего текста программы в командной строке.

    rnorm() – это функция R, чтобы получить список случайных чисел с «нормальным» или гауссовским распределением. Он принимает до трех параметров, только первый из которых требуется, сколько цифр вы хотите. Мы попросили 100. Принимая значения по умолчанию для двух других необязательных параметров, получаем среднее значение 0 и стандартное отклонение 1.

    После этого арифметика просто демонстрирует классную особенность языка R: вы можете делать арифметику на всех таблицах данных, матрицах и т. Д. Так же легко, как скалярное значение на более типичном языке. Я умножил все сгенерированные значения на 100 и добавил к ним 100, просто потому, что могу. Поскольку R – полноценный язык программирования, нет никаких ограничений на то, что вы могли бы сделать с этим списком чисел. В этом преимущество использования такой системы вместо команды фиксированного назначения, например jot .

    Мы передаем результат этой предыдущей операции функции write() , которая по умолчанию записывает данные в файл, но мы переопределили это, передав пустую строку для второго параметра, имя файла, поэтому оно записывает вместо этого выйдите на терминал. Следующий параметр, 1 , просто сообщает, что мы хотим, чтобы наш вывод был в формате с одним столбцом.

    R имеет множество других функций генерации случайных чисел, встроенных в базовую систему. Например, мы можем имитировать команду jot в ответе lcpriani с помощью этого скрипта:

     $ Rscript -e 'write(round(runif(10, 12, 27)), "", 1)' 

    Здесь мы используем runif() чтобы получить 10 равномерно распределенных случайных чисел от 12 до 27. Подобно rnorm() , который мы использовали выше, эта функция возвращает значения с плавающей запятой, поэтому мы должны round() их с их ближайшими целочисленные значения, прежде чем записывать их на экран.

    R также имеет богатый набор надстроек в CRAN , хранилище пакетов, смоделированное на CPAN Perl. Один из вас может заинтересовать просто называется случайным , который действует как интерфейс к random.org , службе, которая возвращает истинные случайные числа, генерируемые из атмосферного шума.

    R – это полная среда программирования, поэтому может оказаться, что вам не нужно получать ваши номера из R в текстовом формате. Возможно, вы сможете полностью решить свою проблему в R. Сделайте снимок.

    Interesting Posts

    Почему новый каталог имеет жесткое количество ссылок 2, прежде чем что-либо добавится к нему?

    backup / on файловая система ntfs зашифрована

    rsync: ошибка запуска протокола клиент-сервер

    Как создавать и использовать динамические и статические библиотеки в Linux (c программирование)?

    История команд Bash перестает работать после запуска новой сессии tmux

    Смешанные языки в bash после обновления OS X до El Capitan

    Запрос: строка удаляется путем переключения команд

    Как создать виртуальную машину с нуля с помощью virsh?

    Bind9 не перенаправляет DNS

    xdelta3 не может декодироваться на блочном устройстве

    Есть сценарий с perl shebang, нужно переключиться на bash в середине

    как сделать большую командную строку, разбитую на две строки, выполняться как одна строка внутри скрипта

    Как заменить строку в файле?

    команда не найдена и синтаксическая ошибка возле неожиданного токена

    Как разрешить привилегированным командам сбой, но отвечать?

    Linux и Unix - лучшая ОС в мире.