Компьютер как генератор случайных чисел

(1/3) > >>

Starling:
Продолжение дискуссии из http://kosmopoisk.ru/comment.php?comment.news.783

Кроме того, КАЮР, при генерации компьютером вы не учитываете очень важного параметра.

Наберите в яндексе "дребезг контактов" - вы получите массу информации.
Вкратце: любая кнопка типа "сухой контакт" - то есть замыкаемая через воздух, при нажатии замыкается НЕ один раз.
Ионы, капельки водяного пара, микропробои воздуха, на молекулярном уровне шершавая поверхность кнопки - все это дарит нам НЕ одно замыкание на одно нажатие.

Одно нажатие - а сколько замыканий?
А как повезет.
Иногда одно, иногда 5, иногда сто...

На этом эффекте даже строят генераторы чисел.

А у вас в программе есть такое разве?
Нет.
А почему, куда делся дребезг контактов?
А его КАК-ТО обработали.
Как именно в данном конкретном драйвере клавиатуры - неизвестно.
Вы берете программную переменную "нажатие кнопки".
А кто скармливает ей данные, какая функция...
Хрен ее знает.

А например, может быть такая:
- решили разработчики, что средняя скорость нажатия на кнопку не может быть чаще, чем 2 раза в секунду.
И каждые 0,5 секунды проверяется - нажато или нет.
За 0.5 секунды дребезг контактов успеет закончится - и усе в порядке.

То есть:
Программная функция "нажат ли кнопка" не меняется в течение 0,5 секунды.

А мы хотим, чтобы в промежутке между нажатиями цикл совершался сотню раз гарантированно.

А у вас может начать твориться ерундк
Прошел цикл - нажато.
Прошел цикл - нажато.
Прошел цикл - нажато
....

А на самом деле, просто драйвер клавиатуры еще не сбросил значение.
Полсекунды не закончилось.

Для проверки этого вам нужно для начала выбросить функцию рандома, которую вы ввели, и посмотреть, будет ли ряд случаен при частом нажатии.
Или у вас будут идти последовательности.

Starling:
Кроме того, эти самые полсекунды опроса клавиатуры синхронизированны с частотой процессора.
Ваша программа тоже синхронизированна с частотой процессора.

При большой скорости нажатия вы просто-напросто получите функцию наложения частот друг на друга.
Будет она напоминать случайный ряд или нет - а валары его знают.

Для гарантии надо нажимать на кнопку РЕДКО.
Не чаще раз в 2 секунды, а то и еще реже - зависит от драйвера клавиатуры, от частоты опроса.

Starling:
А что произойдет, если в процессе эксперимента компьютер решит по-сохраняться на диск, и этот процесс на сколько-то ЗАМЕДЛИТ все остальные процессы...

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

Rusa:
Так как занимаюсь созданием тестов, в том чиле и на измерении скорости простой двигательной реакции должен тебя немного успокоить. Все о чем ты говоришь существовать может но времена таких процессов много меньше скорости человеческой реакции, максимум которой в лучшем случае  колеблется от 100 до 200 мс. Например в легкой атлетике фальтстарт фиксируется если спортсмен выбежал из колодок за быстрее 100 мс после выстрела. В инете ходит программа по измерению количества нажатий кнопки клавы за ограниченное время. Результаты у меня были что-то около 30-40 за секунду максимум у некоторых монстров :) доходит до 80 или даже 100, что в принципе раз в несколько раз больше скорости реакции, но тут задание изначально на повторное нажатие. В таком тесте время отжатия клавишы и мягкость её хода может сыграть большую роль. Дискретизация системеного времени вещь еще более нереальная. Конечно многое зависисит от продвинутости программера. У меня в начале была проблема, когда в Матлабе я пытался что-то наваять. Используя встроенный таймер, получил время дескритизации около 25 мс (причем время зависит от системы, в win98 еще больше), что уже критично для изерений на порядок больших. Далее я использовал винапишную функцию и написал прогу в Дельфи. Там время дикретизации порядка 8 мкс - мне вполне хватило.

Starling:
Руслан, ну конечно, не 0,5 секунду на нажатие.
такие величины я взял для того, чтобы можно было объяснить на пальцах разницу.
Иначе сейчас КАЮР начнет уверять, что он попадает в интервал и все шоколадно.

Navigation

[0] Message Index

[#] Next page