楼主:
archon (内湖流川枫)
2017-11-28 09:16:07唔... 很多板友说的对,机率的东西抽1万次真是太儿戏了,
我先入为主觉得这是理所当然的结果,一心求快而忽略了些基本的东西,
非常抱歉... <(_ _)>
花了点时间把实验做得完整一点...
对照组: 直接抽
实验组: 先抽30次友抽,全杠龟再用心抽
各抽1亿次,结果如下:
regular, UR: 1000027 cards, (1.000%)
friend pick first, UR: 1000331 cards, (1.000%)
1亿抽的结果,一般正常抽取得到了1,000,027张UR,
而先用30张友情抽筛选再心抽则是得到了1,000,331张UR。
可以看得出来,这 python 内建的 random 函数库很不错,
1亿抽之下,正常抽选的机率非常贴近 1% 世界线,
而用友抽筛选择是约略增加了万分之三的获奖率。
当然这也只是个相当粗糙的实验,LLSIF 号称全球 4000万 download,
1亿抽还不够每个帐号抽一单,而且我也只做了一次,
主要是这程式跑起来也挺花时间的,从昨晚到现在花了10几个小时吧,
我把程式附在后面,更多抽的实验就留给有兴趣的朋友继续囉...
稍微知道随机函数在程式里的运作原理的朋友应该可以理解这结果,
对一个随机均匀分布的序列,一直做把特定的数字拿掉的动作,
当然会造成其他数字的浓度增加,效果如何则是要看各个随机函数的设计。
后续还有很多板友提出各式各样的抽选设计方式会造成友抽试水温无效,
嗯...,我的感觉是...,没错,的确有其他的设计方法,
但是,明明一行 r = random() 就能解决的程式,干嘛要弄那么复杂?
以商业游戏 app 来说,原本的随机函式已经足够好了,
工程师光是抓 bug,让每周活动准时上架都是个挑战,
就连一堆人创了几十个几佰个帐号刷 UR 起手,甚至贩卖,这种都不防了,
真的有人会那么闲,花时间去求追完美的随机结果吗?
又不是要做什么超高精度的科学实验...
更别提人家原本 random() 就已经是经过千锤百炼,有很良好的特性,
乱改架构搞不好还让 random 函式变得更不随机...
回头来说,先用友抽筛选到底算不算有用,唔...,就看各人吧~~
现在有两种抽法,一种是 1%,另一种是 1.0003%,
觉得没差的人就随心抽,其实真的也没差,
万分之三的机率,抽中100张UR还不够你多一张,
不过,对我而言,友情抽摆在那里,本来就会抽掉的,
只不过是调配了一下抽选的顺序就加了 0.0003%,why not?
作者:
tonyxfg (tonyxfg)
2017-11-28 09:22:00你应该多跑几次一亿抽来做比较才对,这数值看起来就是正常的误差范围而已,很难说服人一定是这样啊...
作者:
j9145 (Swordcane)
2017-11-28 09:28:00你一开始就搞错前题。不是为什么要搞这么复杂,而是必须这么复杂。你要先搞清楚转蛋游戏的转蛋机就是最大营利项目,多花资源去维护很合理吧?
作者:
Xavy (グルグル回る)
2017-11-28 09:39:00又来了,又活在自己世界了
作者:
j9145 (Swordcane)
2017-11-28 09:39:00所以你找画师来设计转蛋机机率?
作者:
lanjack (传说中的草食熊)
2017-11-28 09:40:00游戏厂商:反正有没有差那一点点机率玩家又不可能知道,有卡面强度就有人抽。不爽拿证据吉我啊~
我已经搞不懂这串到底是在讨论什么了 官方有无作弊吗XD
作者:
Cyjustin (justin)
2017-11-28 09:49:00j大是当工程师是神吗,机率越复杂程式越难搞搞出来都东西还有一定的误差范围,真的没必要
作者:
lkzax (sariel)
2017-11-28 09:51:00如果1E抽要跑十几个小时 有10万人同时按10连是要跑60秒?这样要多少台电脑才够?
有实验有推 不无可能吧 反正对玩家来说都是黑盒子说这个可能 和说这个不可能的荒谬程度是类似的XD
作者:
lkzax (sariel)
2017-11-28 10:05:0030抽没中的机率约为0.2 反推回去 总抽数约为5.65E多这样10万人同时按10连也是要跑10秒 这样算合理吗?就算先抽友抽再抽石抽也才提升万分之三 实在很鸡肋
作者:
Cyjustin (justin)
2017-11-28 10:10:00合理,所以通常人数过多就会有服务器分流
如果我在厕所跑这程式 出来机率多个百万分之一我是不是也可以主张在厕所抽会提升机率...这样跑的结果 跟玄学有什么差别?
作者:
Cyjustin (justin)
2017-11-28 10:26:00跟玄学差不多啊,毕竟没脱离误差范围
作者:
shinchen (starrydawn星晨)
2017-11-28 10:30:00是你对random的原理只懂一半吧...照你的实验 第一个seed从头到尾不改变 第二个只用一台电脑一个thread抽这两个实际状况都是不成立的你的理论基础是在同seed下乱数器会让各数字出现率平均但是当seed不定的时候这理论就不成立了
作者:
j9145 (Swordcane)
2017-11-28 10:38:00作者:
j9145 (Swordcane)
2017-11-28 10:40:00而不是机率到底有没有1%,这篇文作者是业界待很久的企划,只要你无法得知营运有没有做手脚,那你一切玄学都是没有意义的。 我要表达的就是这样没人规定友抽跟石抽一定是同样公式XDDD而且你肯定有没有把文章看完,继续用你的玄学试吧
作者:
Cyjustin (justin)
2017-11-28 11:03:00j大那篇讲转蛋机制设计,特定up跟保底本来就会有但现在不是在讨论那个吧?
作者:
Cyjustin (justin)
2017-11-28 11:07:00更何况他描述的部分行为在日本还不是合法的
作者:
noob9527 (怒伯9527)
2017-11-28 11:16:00重点就是通常会用时间当seed 所以不会符合你的说法阿
在c++上只要call的srand(seed) rand数列就改变了
作者:
noob9527 (怒伯9527)
2017-11-28 11:20:00那照你的说法 同seed 然后你先抽友抽30次把你的UR抽抽掉 你回到石抽 抽UR机率也就更低了阿还是你友抽抽到R都会重开app重抽30次 那也算很闲了然后乱数的部分 时间当seed是非常正常的server端处理完你的抽 下次当然就不同seed了你如果说抽10连 那个10连是同个seed或许还有可能client断开重新连你 你的server端当然重新初始化参数阿在下孤陋寡闻 server端用php就这样写的如果你有更好的写法 那就指导一下而且php下rand就是直接给一个新的seed 我没记错的话
我懂你的做法 但...思考了以后这个机率提升很无感XD
作者:
noob9527 (怒伯9527)
2017-11-28 11:41:00目的是什么... php就这样阿 request结束 程式也结束可是..新版php就是更新你讲的那个 他会自动srand()