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

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

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

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

  • Пространства в назначениях переменных в сценариях оболочки
  • Отобразить результат команды, выровненной в терминале
  • Можем ли мы использовать файл истории для целей аудита
  • Как ksh93 избегает зависаний при подстановке команд
  • Можно ли использовать split для создания кусков символов из китайских байтов юникода?
  • Как псевдоним cp с cp -i по умолчанию
  • Проверьте процесс и убейте
  • Как перенести первые файлы x
  • 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

    Сценарий в cron не может найти команду

    Как rm -r обходит рекурсивное удаление? В каком порядке?

    Строка Keep, содержащая X в первых двух полях

    Замена шаблона в строке, предшествующей другому интересующему образцу

    Установка шрифта emacs по умолчанию не сохраняется (построена из исходной ОС X 10.8)

    Программный центр Ubunutu не работает, показывая черный экран

    Почему df на конкретном монтировании перебирает все монтировки?

    Как выполнить удаленную команду для существующей сессии ssh

    Как создать контейнер systemd-nspawn?

    Как установить `roundcube` без добавления back-ports в` Debian`?

    Bluetooth-сопряжение при двойной загрузке Windows и Linux Mint / Ubuntu – перестать подключаться к устройствам

    В HP-UX, как вы пишете программу на C с помощью PKCS # 11 api?

    Как изменить неиспользуемый ключ клавиатуры в ключ-модификатор

    Установите тему Gnome-Shell без gnome-tweak-tool?

    Приложение Командные ярлыки не работают глобально

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