作者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
1F:推 HuangJC:取十次的精度是为了描述问题,并不是真的只取十次 05/20 12:15
2F:→ HuangJC:而且若出现靶心集中,那就不够均匀 05/20 12:15
3F:→ HuangJC:以前有一个乱数表就是让你丢笔,看戳中什麽就是乱数,该表愈 05/20 12:16
4F:→ HuangJC:近靶心,格子愈小 05/20 12:16
5F:→ HuangJC:去头去尾取中间当然是不错,但也只是不错而已.. 05/20 12:17
6F:→ littleshan:我是说,你提到「打字间隔集中在0.3~0.7秒」的问题 05/20 12:30
7F:→ littleshan:只要用高精确度的 timer 就可以解决 05/20 12:31
8F:→ littleshan:除非你的手能控制打字间隔落在 X.XX3 秒至 X.XX7 秒间 05/20 12:32