作者HuangJC (吹笛牧童)
看板ask-why
标题Re: [请益] 乱数表有没有规律??
时间Wed May 20 11:17:34 2009
: 回到你的问题,0x00~0xFF 扩展至 0x0000~0xFFFF 是非 onto 的对映关系
这个 onto 我不会翻译..
: 也就是说,有些对应域的数值不会被定义域的数值对映到。
: 如果你早就知道这一点的话,下一个问题是「会不会有某一区特别偏重」
: : → HuangJC:人输入的时间间隔也会受 clock 取样影响,出现数位化的边界 05/19 12:49
: : → HuangJC:当然如果能以量子级的取样,那我绝不担心 :P 05/19 12:50
: → H45:以乱数在二维平面上随机取点却绘出一条直线的机率也太低了吧 05/20 05:16
: 推 HuangJC:因为没有很均匀呀.. 05/20 10:33
int r=random(); // 0x00~0xFF
//欲扩扩至 0x0000~0xFFFF,从前的精典做法是用乘法扩展
//而我用过的 basic 指令是从浮点数开始的
double R=r/256.0; // 0.0~1.0
int result=R*65536; //0x0000~0xFFFF
事实上 result 只会有 256 种变化,也许这就是你说的 非onto
把这 256 种变化撒在绘图平面上,就变出 256 条直线了
当然直线只是隐隐约约,但眼睛看得出来
一个很简单的方法是直接移位扩展
int r=random()<<8|random(); //0x0000~0xFFFF
但我不清楚前8位元如果和後8位元间形成某种数学关系
(因为想要均匀,且没引入任何外部种子,所以我只好用虚拟乱数)
会不会出现的乱数冒出很巧的规律
比如,第 0,2,4,6 偶数次的乱数是外部引入(键盘点击时间)乱数好了
而第 1,3,5,7 奇数次的乱数是前一次直接乘2(溢位丢弃) XD
是的,我故意用了可观察的逻辑,但的确造出很惨的效果
r=0x0000;
r=0x0102;
r=0x0204;
r=0x0408; //比如这个,前面04时,後面就只可能 08,不可能有其他值
点击键盘和取样频率间的关系也类似这样
虽然我点击键盘的速度有无限种可能 (限制在 0~1秒间,但速度仍有无限多种)
但我的取样频率只有 10次/1秒 ,那取回的乱数值就只有 10种
虽然你主张频率本身也会受杂讯干扰
但总之我的读值只有 1~10
杂讯并不会进入我的读值,这就是数位化呀~
另一种讲法是我读回的是秒数,所以 10次/1秒 可读回的点是
0.1,0.2,0.3~~~ 1.0 这样好了,但读值不是 0.1秒
因为杂讯使 clock 飘移,可能读回 0.11秒 或 0.09秒
这其实是有两组不同的频率才做得到
一个做 wait ,一个去读秒,所以才能读到 0.11 or 0.09
不然再怎麽漂我也不会读到小数下两位
而即使如此,杂讯也不会太大,不足以把读值打散到均匀
我们将会看到绘出的直线在 0.1 的附近抖动(总共有十条直线)
这怎麽办?还是不能用的
事实上我可以用前面谈的移位扩展来做(这次谈十进制)
random() spec : 1~10 ,刚才说键盘乱数只有这样的辨识度
int R=(random()-1)*10+(random()-1); //这样扩展成 0~99 了
好像蛮理想的 XD
不过同一个人打字有相似的均匀度
会不会连续取样时都落在 0.3~0.7 之间
而 0.1 一直没出现呢?
一直没出现我还是不能用啊,结果是要把统计及权重搬出来
帮我把乱数拉散变成平均分布吗?
(读到 0.3 变 0.1,读到 0.7 变 1.0;而且不是线性扩展)
总之,一个来源不均匀的东西,还要用一堆数学式去搓它
搓不好在绘图时就看到一条一条有序的线
就说杂讯好了,在 EMI 实验室也会看到不像杂讯的杂讯
一般解释当然是环境噪音
不过环境噪音在反射的过程中可能会特别出现整数倍的共鸣
(好像有辆车的喇叭发出 Do,结果高八度低八度的 Do 同时都共鸣了)
一般我们测的 IC 如果在某频率有杂讯
那麽整数倍的频率也可以观察一下是不是也有杂讯
更别说全天下都在流行某频率时 (比如 GSM 双频手机,你带进来不就专搞这双频?)
一起开机..一起来,变得很规律 *_*
结果杂讯就好像海浪,它不是均匀的
它是一波一波的,还会涨潮退潮 XD
你说海浪的成因很复杂吗?受全世界所有生物泡澡排泄的影响
但你明明看到它的拍打还蛮有频率的不是?
我看这堆杂讯还是有共鸣的 *_*
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.219.65.16
1F:推 Aipr:onto: 映成。个人意见, 不翻译比较好懂 05/20 12:41
2F:→ StaticVortex:你说的线像下面那个网站里那样严重吗? 05/21 00:21
4F:→ HuangJC:对 *_*,你以为做出乱数了,但眼睛又看得到规则.. 05/21 00:36
5F:推 KanoLoa:真是太有趣了 XD 05/21 19:37