作者littleshan (我要加入劍道社!)
看板ask-why
標題Re: [請益] 亂數表有沒有規律??
時間Wed May 20 11:49:23 2009
※ 引述《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