rand() – можно ли предугадать?

240
.
Возможно ли?
.
Let Mortal Kombat begin
Конечно.
Чем уже интервал, тем выше шанс. Именно шанс.
Вот я загадал число от 1 до 255 - скажи мне его!
.
Enter нажат, к чему теперь рыданья…
Windler, можно. Но многое зависит где угадывать собираешься, для разных устройств используется разное количество алгоритмов. Рандом это псевдослучайные числа, а не полностью случайные и они подчиняются определенному алгоритму, а значит выстраиваются в определенном порядке. Машины пока не умеют думать и не могут как человек поступать по наитию, следовательно и не могут выдавать полностью случайные числа как им захочется.
.
Кстати, придумали уже генератор настоящих случайных чисел: http://www.dailytechinfo.org/i ... .html
.
А в mt_rаnd() алгоритм другой да?
.
Tadochi (16.05.2012/04:40)
А в mt_rаnd() алгоритм другой да?
Там просто максимальный диапазон больше
.
Enter нажат, к чему теперь рыданья…
Intelligent (16.05.2012/04:09)
Кстати, придумали уже генератор настоящих случайных чисел: http://www.dailytechinfo.org/i ... ma.ht
Ну это только пока исследования. А вот выдержка из той же статьи
Большая часть существующих генераторов случайных чисел основана на сложнейших программных алгоритмах. Несмотря на их сложность, алгоритм остается всегда алгоритмом, и если знать функцию и начальные условия работы этого алгоритма можно точно повторить его работу. Другими словами, получаемые с помощью таких алгоритмов случайные числа не совсем случайны, просто они изменяются по закону, неизвестному конечному пользователю.
О чем я собственно и писал выше
.
Pillott (16.05.2012/05:15)
Ну это только пока исследования. А вот выдержка из той же статьи О чем я собственно и писал выше
Да но можно уменьшить шанс угадывамия например вот так rand(rand())
.
Можно написать ещё генератор строк, если уж тебе реально что-то оригинальное надо. =)
function generate($length = 20){
  $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789';
  $numChars = strlen($chars);
  $string = '';
  for ($i = 0; $i < $length; $i++) {
    $string .= substr($chars, rand(1, $numChars) - 1, 1);
  }
  return $string;
}
.
Enter нажат, к чему теперь рыданья…
Вас понесло не в ту степь Человек спросил, можно ли предугать рандом? Можно, если знать исходные условия алгоритма. Но кто из нас знает исходные условия в том или ином генераторе? Ответ - ни кто! Поэтому достаточно просто rand(); и не нужно придумывать велосипед
Всего: 11