看板 ask-why 關於我們 聯絡資訊
※ 引述《HuangJC (吹笛牧童)》之銘言: : 點擊鍵盤和取樣頻率間的關係也類似這樣 : 雖然我點擊鍵盤的速度有無限種可能 (限制在 0~1秒間,但速度仍有無限多種) : 但我的取樣頻率只有 10次/1秒 ,那取回的亂數值就只有 10種 我只能說 你在這邊的做法就錯了 一般是這樣 1. GetLocalTime() // 或是 gettimeofday() 或是 RDTSC, whatever 2. 等待 user 敲鍵盤 3. GetLocalTime(),然後和 1. 取得的值相減 Windows 上 GetLocalTime 精確度是 0.001 秒, POSIX 的 gettimeofday 精確度是 0.000001 秒, RDTSC 更猛,是看 CPU clock rate 的, 1G 的 CPU 就是以 0.0000000001 秒為單位 以這種方法取得時間差的個位數字 基本上相當難以預測 若你的手能夠以亳秒為單位做動作 只能說你有一雙神之手 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.87.151.2
HuangJC:取十次的精度是為了描述問題,並不是真的只取十次 05/20 12:15
HuangJC:而且若出現靶心集中,那就不夠均勻 05/20 12:15
HuangJC:以前有一個亂數表就是讓你丟筆,看戳中什麼就是亂數,該表愈 05/20 12:16
HuangJC:近靶心,格子愈小 05/20 12:16
HuangJC:去頭去尾取中間當然是不錯,但也只是不錯而已.. 05/20 12:17
littleshan:我是說,你提到「打字間隔集中在0.3~0.7秒」的問題 05/20 12:30
littleshan:只要用高精確度的 timer 就可以解決 05/20 12:31
littleshan:除非你的手能控制打字間隔落在 X.XX3 秒至 X.XX7 秒間 05/20 12:32