作者gpc (gpc)
看板PerfectWorld
标题Re: [抱怨] 我终於理解为啥有人会怀疑有吸宝外挂了
时间Fri Jun 15 16:04:43 2007
※ 引述《mimi9126 (Presentation Error)》之铭言:
: 黄昏2-2多王,全团85up
: 打完神武罗的时候一个羽灵先走,换成一个71级的羽灵
: 结果这个羽灵在後面四只王,铁架掉两个他吸一个,甲皮三个吸两个
: 鬃毛三个吸两个,星辰之粉两个吸两个
: ...会不会太夸张了?
: 当然不能就这样说他用外挂,可是真的很难让人不起疑心...
关於这个小弟我提出一些个人的看法 从科学的角度来分析吸饱的这个问题.
首先,一般程式设计当有"乱数"决定的时候,一般会使用这样的羽法
int user;
user = int(rnd() * 6)+1;
这样的与法会产生一个 1-6的整数存放到变数user中
假设A物品要归什,我们可以利用上面的程式码来产生决定一个值,这个值就是得到A物代号
rnd()是一个取乱树的函数
但实际上rnd()这个函数,在程式中,经过编译之後他的动作实际上是在一个特定的"乱数表"
中取出一个数值.
rnd()里面可以填入"乱树种子的标号",比方说,rnd(20)=0.156,
那以後我只要呼叫rnd(20)就会传回0.156,因此我们并不能说乱数表是完全的乱数
实际上在随机程式的编写中,选择乱树种子最容易的方式就是 timer
timer是系统中的一个时间计数器,以秒为单位,最大为86400,也就是一天的秒数
随着时间 不断的在改变
当程式设计者使用时间(timer)做种子的时候,就会遇到一个问题
假设我要产生两个乱数,当这两个乱数,产生的时间相当接近,甚至可以说是瞬间的时候
由时间timer决定出来的种子可能会相同,导致取出来的乱数会一样
这就是解示根据这个原理,当有宝物产生,会有连续吸到(因为乱树种子相同),
或者挑拣(利用乱数种子接近的时候,剪下来的东西,会与同时间捡的人一样)
因此从程式开发者的角度来看,乱数随机 并非真正的乱数
只要你掌握住时间.随机可能真的就不是随机
当然我没看过也没反组译程式,并不了解分宝部分是怎麽决定,但根据编写程式
的经验,与大多数的随机程式处理方式,我想应该是十之八九吧
警功惨考~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.116.177.212
1F:推 loon:写的真棒...可惜错字好多,看的很辛苦! 06/15 16:49
2F:→ onezillion:也可以seed从0开始,全伺服器的seed指向同一个记忆体 06/15 16:51
3F:→ onezillion:这样比较接近完全乱数 06/15 16:52
4F:→ onezillion:seed一直延续下去,就不会有时间的问题了 06/15 16:53
5F:推 nolieda:老师._./我看不懂! 06/15 18:16
6F:推 gpc:从连C的情况来看 应该是用时间做种... 06/15 18:24
7F:推 alex1025:这世界上没有人能保证乱数够乱吧 06/15 19:35
8F:→ mimi9126:关於这个,我记得有论文提出并证明能产生绝对随机的乱数 06/15 20:14
9F:推 chris:请问楼上相关资料在哪呀?是电脑自力产生的吗? 06/15 21:17
10F:推 skenbo0916:不是rnd()%6吗? 06/15 21:33
11F:推 chris:rnd出来的是0~1间的小数。 06/16 00:56