Re: [讨论] 手游机率

楼主: archon (内湖流川枫)   2017-11-27 16:50:10
※ 引述《NoNameL (无名L)》之铭言:
: → arrenwu: 差就只差在是不是有什么东西会不会跟时间有关
: → arrenwu: 如果内部机制跟时间无关,你啥小策略都没差
欸... 针对这点,我有个不同的想法...,先说结论:
正因为相信游戏的随机是用 random(),
所以,我是友抽派,先拿友情抽试水温,
如果连 3-40 抽摃龟时,才会去抽大的。
各家用的乱数引擎不尽相同,但原理是差不多的,
有兴趣了解 random 原理的同学可以参考这里~
https://msdn.microsoft.com/zh-tw/library/system.random(v=vs.110).aspx
基于推广 LoveLive! 的私心,以下举例都用 LLSIF 为背景。
以 UR 卡机率 1% 来说,我认为机率部份的程式大致如下:
r = rand() % 100 // 0~99 随机产生一个数字
如果是 0,就给你 UR,如果是其他的数字,就给你其他的卡片。
友情抽呢?假设 R 卡机率为 5%,随机出数字 0~4 给你 R,其他则是给你 N。
rand() 可想成一个随机序列,把 scale 拉大来看,假设100万次好了,
理想上就是 0~99 每个数字各出现1万次。
我先用友抽抽掉30张废卡,接下来的99万9仟9佰70次抽卡里,中UR的机率就提高了。
这跟同时间有没有人在跟我一起抽,或者有没有人插队都没关系,
总之我就是把接下来序列里的30次大数字跳过了。
这个作法,唯一的风险,就是写抽卡那个 RD 吃饱了太闲,
UR 用 0 来出卡,R 用 95~99 出卡。
以一个脑子正常的工程师来讲是不会这样做的。
用这个方式,我在 UR 20%/ SR 80% 的欧洲抽之中,
 第二次就抽中了 UR,原本应该是五抽会中一抽的,但我只用两抽就收工了!
 是不是很有用?给大家做参考~ ^^"
 不过后来又抽了三次都是 SR,回归到 1/5 了... 机率真稳 ._.
作者: emptie ([ ])   2017-11-27 16:52:00
多想了吧 你抽好几次是不是在同一个thread上执行都不知道
作者: tonyxfg (tonyxfg)   2017-11-27 16:52:00
友情抽是什么意思?
作者: emptie ([ ])   2017-11-27 16:53:00
而且他也可以写0-999999 然后0-9999出UR啊
作者: arrenwu (键盘的战鬼)   2017-11-27 16:53:00
友情抽那边可以更详细说明吗? 看不懂什么是友情抽@@"
作者: wolver (超级大变态)   2017-11-27 16:54:00
那是人工让大调制解调器率趋近于 乱数 但对单一个人来说那种绝对不是乱数,才会有欧洲人非洲人差别也就是某个人抽很多好卡,就会有倒楣鬼一直抽烂卡
作者: kashiwa27 (UDON)   2017-11-27 16:55:00
友情抽就是很多手游都有的免费垃圾抽
作者: anumber (Everlasting GuiltyCrown)   2017-11-27 16:55:00
友情点就是大部分游戏不能课金拿到的资源啦
作者: tonyxfg (tonyxfg)   2017-11-27 16:55:00
原来是这意思XD
作者: s2637726 (BBQ)   2017-11-27 16:56:00
又是赌徒
作者: ming1053 (ming)   2017-11-27 16:56:00
你没考虑过分布式情况 可能不只一个worker在处理抽卡
作者: tonyxfg (tonyxfg)   2017-11-27 16:56:00
可是这样也不对啊,照原po的说法会变成卡片总数固定,抽
作者: wolver (超级大变态)   2017-11-27 16:57:00
单一个体跟所有个体总和后的数据 这就是差别
作者: tonyxfg (tonyxfg)   2017-11-27 16:57:00
完不放回,但一般不太可能会这样做吧?这样只要准备足够多的钱就能把卡池抽光光?
作者: arrenwu (键盘的战鬼)   2017-11-27 16:58:00
战女里面有类似友情抽的机制吗?
作者: Rain0224 (深语)   2017-11-27 16:59:00
没有吧 @@
作者: CCapocalypse (CCinfinity)   2017-11-27 17:01:00
这招有效怎么会有倒霉鬼? 真正的酋长怎样做出来的就是r卡
作者: wolver (超级大变态)   2017-11-27 17:03:00
现实就是没办法做到单一玩家,自己有单一独立的数据乱数所以炉石或那些卡牌游戏才会有防脸黑机制
作者: OAzenO (すごいにゃ~)   2017-11-27 17:04:00
是的 探究到底就是电脑做不到真随机
作者: wolver (超级大变态)   2017-11-27 17:04:00
帮那堆可怜的地狱倒楣鬼.至于欧洲人还是一样欧洲所以前面确认你是非洲人还是欧洲人 再决定要不要玩
作者: krousxchen (城府很深)   2017-11-27 17:06:00
问题在于你确定随机是在你本机执行的吗??
作者: wolver (超级大变态)   2017-11-27 17:06:00
非洲人还要玩 那你就是要变成石油王. 否则跳比较快
作者: krousxchen (城府很深)   2017-11-27 17:07:00
如果都是在服务器执行的,你那些友抽马上被其他人洗掉
作者: shintrain (战犯分析师)   2017-11-27 17:07:00
抽签放回跟抽签不放回的机率是一样的
作者: shifa (西法)   2017-11-27 17:07:00
简单说只要抓出欧洲人,其他人就是非洲人?我好像懂了什么XD
作者: wolver (超级大变态)   2017-11-27 17:08:00
不太可能在本机 这样很容易作弊.
作者: shintrain (战犯分析师)   2017-11-27 17:08:00
所以你说先抽一些烂卡让好卡的机率增加是错的
作者: guogu   2017-11-27 17:08:00
并不会 通常不是一个数列在取 他是用时间当种子在取
作者: krousxchen (城府很深)   2017-11-27 17:08:00
而事实上,我遇过抽卡突然闪退,重开抽到的东西还在
作者: guogu   2017-11-27 17:09:00
用时间当种子在取的话那跟你前面抽几次一点关系都没用
作者: krousxchen (城府很深)   2017-11-27 17:09:00
所以抽卡绝对是在伺服执行的
作者: wolver (超级大变态)   2017-11-27 17:10:00
而且通常为了不让SERVER负担太大 很有可能还是先抽好然后USER抽的时候直接派抽好的结果给你
作者: krousxchen (城府很深)   2017-11-27 17:16:00
但如果别人那一千抽都是法老上身??
作者: lay10521 (小伊达)   2017-11-27 17:19:00
独立事件
作者: howardjou (Hiro)   2017-11-27 17:23:00
可是你ㄧ台抽的数字在其它几万台面前可能被洗光了
作者: krousxchen (城府很深)   2017-11-27 17:26:00
你高兴就好,因为一百万分之30是很接近零的
作者: hsiehfat (Okami)   2017-11-27 17:27:00
问题是友抽的池和石抽的池根本不一样啊...你为什么觉得抽掉友抽就能影响石抽的结果?有些卡友抽抽不到,有些卡石抽抽不到所以终归还是回到一句话:玩家根本无法得知服务器端是怎么实做随机这件事情
作者: gn00399745 (Michael)   2017-11-27 17:28:00
你这篇的结论前提很多一个平均分布的样本 你如何sample 他都还是平均的另外你可以去查一下memoryless property
作者: arrenwu (键盘的战鬼)   2017-11-27 17:33:00
"序列长度够大时各数字出现的次数差不多" 这随机就行了Law of Large number 会保证你讲的那件事情
作者: jimmy689 (吉米蛆蛆)   2017-11-27 17:36:00
你觉得每次处理你抽奖请求的服务器都是同一台?
作者: hardyuse (Liu)   2017-11-27 17:39:00
之前才有某游戏抽卡动手脚的新闻 你还相信random实作?整篇看下来我只觉得你在自high 很多细节不知道你是装作没看到还是真的没看到
作者: bowcar (ほのかな予感から始まり)   2017-11-27 17:48:00
看一下 这作法就当偏方吧 反正友情点放著也没用我是懂原PO想表达的意思啦,不过就像推文说的这前提很多就宁可信其有吧XD
作者: hollowland (顛倒鐘)   2017-11-27 17:50:00
一般来讲 友情抽的random范围应该跟课金抽依样你这前提是友抽的范围=课金的废卡范围我想不出来有什么理由要这样干 比起特别缩小友抽范围
作者: hardyuse (Liu)   2017-11-27 17:52:00
我说的严重了,不过我建议你不要对游戏公司抱太大期望
作者: hollowland (顛倒鐘)   2017-11-27 17:52:00
直接给友抽另一个table不是比较干脆
作者: hardyuse (Liu)   2017-11-27 17:53:00
你觉得不妥我第二和第三行推文可以删除没关系
作者: Xavy (グルグル回る)   2017-11-27 18:19:00
抽卡玄学自己信就好,不用说给人听
作者: saulong (专业路人)   2017-11-27 18:30:00
我建议你写个程式下去跑结果 证明有效即可
作者: hardyuse (Liu)   2017-11-27 18:32:00
saulong +1 我也建议你跑程式证明你的理论
作者: dodomilk (豆豆奶)   2017-11-27 18:40:00
糟糕你讲得好像有点道理,不过如果没有足够次数验证我是不会信的......有些嘘文的可能不了解程式的运作方式
作者: shinchen (starrydawn星晨)   2017-11-27 18:48:00
你怎么知道友抽跟石抽都是用数字小的当作中奖? 如果设计石抽0中奖 友抽95~99中奖 照你的理论不就反过来了
作者: R0bin03   2017-11-27 18:48:00
用程式观念试着解释而已也要被说是玄学…用程式观念试着解释而已也要被说是玄学…重复推到抱歉
作者: dodomilk (豆豆奶)   2017-11-27 18:52:00
@shinchen 原PO自己有提到,一般工程师不会这样折磨自己要证明的话就分两组,一组直接投石抽,一组先抽友抽连续30次二星以下,再抽石抽。看两者石抽四五星机率有没有差不过我猜可能要抽个几百次才能达到p<0.05
作者: nomorethings (水树奈々様最高!!)   2017-11-27 18:57:00
友情抽增加机率我也是笑笑的,这种感觉文又没有足够数据证明,那么厉害怎么不做个统计来证明你的理论咧?
作者: shinchen (starrydawn星晨)   2017-11-27 18:57:00
改个数字也叫折磨自己 当工程师是猴子吗...你不知道伺服端程式怎么写的 分析这些就是玄学没错啊
作者: guogu   2017-11-27 19:10:00
1w抽1%随便都能跑出105以上好嘛w别搞笑了不信你直接写写看1w抽1%试试看
作者: hollowland (顛倒鐘)   2017-11-27 19:12:00
你的前提是友抽要先必骰到普卡 然后才骰那张卡
作者: Xavy (グルグル回る)   2017-11-27 19:12:00
还真的有人被唬得一愣一愣的耶
作者: hollowland (顛倒鐘)   2017-11-27 19:14:00
我写友抽直接骰什么卡 你这个假设不就gg了
作者: harryron9 (两个世界)   2017-11-27 19:15:00
10000抽1% 抽成1.05%算是显著提升...嗯...
作者: noob9527 (怒伯9527)   2017-11-27 19:15:00
阿这不就是赌徒谬误吗...
作者: yukitowu (雪兔哥)   2017-11-27 19:15:00
毕竟不会跳例外的BUG很难除错啊www
作者: hollowland (顛倒鐘)   2017-11-27 19:15:00
别人友抽直接抽那张卡 不就gg了
作者: unsocial (无力感)   2017-11-27 19:16:00
友情抽跟宝石抽怎么会在一个池?
作者: guogu   2017-11-27 19:19:00
https://i.imgur.com/fXg94Dt.png老人学不会新把戏也不是读资工的就通融我VB随便写吧
作者: hollowland (顛倒鐘)   2017-11-27 19:20:00
我看一下这个程式码… 我很怀疑你继续跑个几十次会得出可以提升抽卡率的结果
作者: noob9527 (怒伯9527)   2017-11-27 19:22:00
照你说的rand()%10 我9抽没出0 第10抽中0机率有100%呢这种又没说抽完后奖项就再也抽不到 所以前题就错了
作者: hollowland (顛倒鐘)   2017-11-27 19:27:00
rand()不是整数所以没这个问题…上面g大程式示范了直接抽1%抽到1.12% xd
作者: NoNameL (名无乚)   2017-11-27 19:38:00
g大那只程式是这样没错啊,但这只程式是“有机率”会掉进无穷循环出不来的。那些就是“被吃掉”的小于1%的机率
作者: shinchen (starrydawn星晨)   2017-11-27 19:41:00
guogu的程式是固定抽10000次 你是不是看错循环变量...?会尽无穷循环是一直抽到中100个才停下来看次数那种
作者: hollowland (顛倒鐘)   2017-11-27 19:42:00
掉进无穷循环程式就当掉了耶...
作者: NoNameL (名无乚)   2017-11-27 19:46:00
啊,对,我看错了。
作者: kamisun (水银灯的主人)   2017-11-27 19:53:00
战女很少大爆死,但我遇过几次,最严重的是去年万圣节抽快40把四星武器,才来想要的
作者: guogu   2017-11-27 19:56:00
我是用双浮点去接rnd 理论上来说他是产生0~1的数字
作者: yuyuyuai (>0<)   2017-11-27 20:00:00
怎可能这样让你搞 友抽和石抽不太可能会写在一起吧
作者: gn00399745 (Michael)   2017-11-27 20:01:00
每次run random用的seed应该不太一样吧事实上seed在乱数序列的位置应该会一直跳你乱数序列概念对 但是你要考虑到seed吧用seed产生乱数 你只要SEED变动 他结果就是和之前抽无关 甚至seed可能会跳回你友抽用的烂seed
作者: yuyuyuai (>0<)   2017-11-27 20:04:00
对 楼上这也是一种反驳的论点 只是最近才被龙珠手游的废物工程师打脸QQ
作者: gn00399745 (Michael)   2017-11-27 20:07:00
乱数在程式里的确是一个大数表单 但是她会循环而且还可以利用多个大数表单交配产生更大的表单
作者: greydust (灰)   2017-11-28 00:50:00
呃你的推论是没错 但通常乱数序列至少也是2的31次方减1也就是21亿多 就算你先抽掉100个大数字也才增加2100万分之1的机率..还要考虑到序列重置和序列远大于2147483647的可能性 基本上这个方法等于没有用
作者: benny30912   2017-11-28 06:32:00
二项分配的标准差是sqrt(np(1-p)),差不到一个标准差根本没有统计上的差异

Links booklink

Contact Us: admin [ a t ] ucptt.com