1. bash / Говнокод #26048

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    # Если вы желаете ограничить диапазон "снизу",
    # то просто производите генерацию псевдослучайных чисел в цикле до тех пор,
    # пока не получите число большее нижней границы.
    
    FLOOR=200
    
    number=0   # инициализация
    while [ "$number" -le $FLOOR ]
    do
      number=$RANDOM
    done
    echo "Случайное число, большее $FLOOR ---  $number"

    https://www.opennet.ru/docs/RUS/bash_scripting_guide/x4812.html

    Запостил: groser, 26 Ноября 2019

    Комментарии (21) RSS

    • Переведи на "PHP". Мы не обязаны знать язык для прыщеблядей.
      Ответить
      • $FLOOR=200
        
        $number=0   # инициализация
        while ( $number < $FLOOR ) {
          $number=$RANDOM;
        }
        echo "Случайное число, большее $FLOOR ---  $number"
        Ответить
      • сука php был рожден от bash!
        Ответить
    • Ну, в общем-то, это правильный способ который не портит распределение. Только обычно границу ставят не на max_out, а на max_out * floor(max_rnd/max_out) чтобы отбрасываемых чисел поменьше было.
      Ответить
      • З.Ы. А, тьфу, тут снизу ограничивают а не сверху. Ну тож сойдёт для небольших значений floor. По крайней мере распределение не портит.
        Ответить
    • а нельзя просто умножить на N так, N*min_rnd == low_treshold ?
      Ответить
      • Если умножить на N, то у тебя вместо непрерывного промежутка генерируемых значений будет решето.

        Лучше прибавить, а не умножить.

        В любом случае придётся ещё отсекать верхние значения...
        Ответить
      • Пример: генератор выдаёт целые числа из диапазона [1..10] = [1,2,3,4,5,6,7,8,9,10].
        Умножаешь на два, чтобы получить числа не меньше 2. Получаешь: [2,4,6,8,10,12,14,16,18,20]. Нечётные числа твой генератор не выдаст.
        Ответить
      • Так принято в «JS», но там генератор выдаёт плавающих питухов из [0; 1) и умножение на N работает. Ну и min_rnd обычно равне 0.
        Ответить
        • генератор много где питухов выдает
          Ответить
          • Но далеко не везде генератор выдаёт только питухов из [0; 1). Я, собственно, только «JS» из таких языков и знаю.
            Ответить
            • У меня есть смутное воспоминание, что в каком-то говноязыке я вынужед был умножать питуха на 100 и круглить, чтобы получить нужное мне целое.
              Ответить
              • JS. Там рандом от 0 до 1 во флоате.

                З.Ы. Тред не читаю @ хуйню отвечаю.
                Ответить
    • >$RANDOM
      Фу, какой башизм. Именно поэтому я за
      expr $(od -An -N2 -tu2 /dev/urandom) / 2
      Ответить
      • >/dev/urandom
        фу, какой прыщизм

        в POSIX / SUS никаких "/dev/urandom" нет
        Ведь нет же?
        Ответить
        • macOS (имеется в виду OSX, а не Classic, конечно же) uses 160-bit Yarrow based on SHA1. There is no difference between /dev/random and /dev/urandom; both behave identically.

          The FreeBSD operating system provides /dev/urandom for compatibility but the behavior is very different from that of Linux. On FreeBSD, /dev/urandom is just a link to /dev/random and blocks only until properly seeded.

          /dev/random and /dev/urandom are also available on Solaris, NetBSD, Tru64 UNIX 5.1B, AIX 5.2 and HP-UX 11i v2.

          В любом случае это прыщеблядство. В «Windows» ничего такого нет, для получения (псевдо)случайного числа нужно вызывать отдельную функцию.
          Ответить
          • Сиречь в прыще один блочит, когда не хватает энтропии, а второй лукавит, и пхает хуйню.
            А в бзде всегда всё блочится.
            Так?
            Ответить
            • Выходит, что так.

              Видел срач по поводу использования ГСЧ, встроенного в новые процессоры? Линус разрешил использовать процессорный ГСЧ, когда не хватает прыщеэнтропии, а его оппоненты говорят, что так нельзя, что в процессорах закладки АНБ, ФБР и ЦРУ, все следят.

              https://pastebin.com/A07q3nL3

              Долистай до самого конца и прочитай диалог SIMPLICIO и SALVIATI.

              SALVIATI говорит, что с процессорным ГСЧ ксорить даже псевдослучайные числа нельзя. А вдруг АНБ извлечёт из кэша наши псевдослучайные числа и отдаст их процессорному ГСЧ, чтобы после нашего ксора получился ноль?
              Ответить
              • > ксорить
                Дык надо не ксорить, а подмешивать в сид ГПСЧ криптостойким хешем. Что, в общем-то, все и делают.
                Ответить
    • ебать нужно так!
      while true;
      $rnd = $floor = $random;
      Ответить

    Добавить комментарий