取一定范围内随机小数 c_算伪随机概率中C值的快捷方法
目前计算伪随机概率C值的方法,一般是二分法。二分法是个非常讨厌的方法,因为虽然简单却麻烦,想算个稍微精确点的数,需要十分巨大的计算量。如果像高中时那样手动计算,真是要算到眼花。
本文给出了一个十分简单快捷的方法,来计算C值,无需编程,仅需一个excel表就行。
注:前面几段是本方法的理论依据证明,如果嫌字多,可以直接跳到"用Excel表算C值"那一部分开始看。不过如果你直接跳到那一段看,不一定能看懂,O(∩_∩)O哈哈~
伪随机概率简单介绍
我们拿dota白牛的被动晕来举例:17%概率重击。为什么不拿剑圣来举例?已经有人用剑圣算过了,我要是还用剑圣算,难免有借别人结论胡说八道的嫌疑。
白牛第1次重击的概率为c;
若白牛第1次未重击,则第2次重击概率为2c;
若白牛第2次未重击,则第3次重击概率为3c;
........
当nc≥1时,必定重击。
每次重击之后,下次攻击重击概率变为c。
算出重击次数的期望值=
从上面可以看出:伪随机概率中说的“17%概率”并不是真的每下攻击的重击概率都是17%,而是一个不断增加的概率,满足重击次数期望值为
数列的方法算C值
根据上面介绍,于是我们有了常规计算思路:
白牛第1下 就 重击的概率=c
白牛第2下 才 重击的概率=2c
白牛第3下 才 重击的概率=3c
.....
白牛第n下 才 重击的概率=nc
于是这个问题就转化为如下数列问题:
已知数列{
我们算出
不过可惜的是这个前n项和公式似乎无法算出。退一万步讲,就算可以算出,
二分法算伪随机概率C值
令
白牛第1下就重击概率
白牛第2下才重击概率
白牛第3下才重击概率
....
此时重击次数期望值E=1
所以c>0.0001。
取
所以c<0.15
取c=(0.0001+0.15)/2=0.07505,重复上面步骤得此时E<
取c=(0.0001+0.07505)/2
重复上述步骤......直到E非常接近
我就不算下去了,因为计算量太大了,总共可能要我算几百万个小数相乘啊,累!
接下来我介绍一个非常简便快捷的算C值的方法。
用EXCEL算C值
如下图:具体如何编辑Excel中各列单元格已经写在图中了。
我们改动F2单元格的数值,使得G2单元格接近17%,则F2单元格此时的数值即为C值。
例如:白牛的17%概率重击对应的C值就是0.04092
解释一下这个表格的意思:
F2单元格:表示C值。
在这里手动输入C值,使得G2单元格的数值满足你的精确度需求时,就是我们想要算的那个C值。
G2单元格:表示F2单元格对应C值的面板暴击概率。
说的很拗口,举个例子,相当于dota里白牛的“17%”。
A列:记录次数。
A2单元格数值为1。
从A3单元格开始,如果A列上一单元格为0,则当前单元格也为0。
如果A列上一单元格不为0,并且A列上一单元格<1/c,那么当前单元格为上一单元格+1。
如果A列上一单元格不为0,并且A列上一单元格≥1/c,那么当前单元格为0 。
为什么这样?因为在伪随机概率下,当前次数暴击的概率=当前次数*C,当当前次数的暴击概率≥1时,必定暴击。因此若上单元格≥1/c,那就说明上一次的暴击概率≥1,已经必定暴击了。
B列:记录当前次数的实际暴击概率。
实际暴击概率=当前次数*C值
C列:记录当前次数不暴击的实际概率。
不暴击的实际概率=1-实际暴击的概率
D列:记录首次暴击发生在当前次数的概率。
首次暴击发生在当前次数的意思是:之前所有次数不暴击、而当前次数暴击。也就是前面一段"数列法算C值"中的
伪随机概率的特点
1、dota里说白牛的重击概率是17%,但是实际上白牛第1下打出重击的概率只有4%。
运气再怎么差的人,25下也必定会触发被动晕,不过这种情况非常少见,只有50亿分之一。
2、伪随机概率下,在5-6下左右第一次出重击的几率最大。上来就重击或者10多下才重击的概率较小,迁就了玩家的错误认知。(没办法纠正玩家的思维,只能迁就他们的思维了)
而自然概率下,第1下第一次出重击的概率最大,往后越来越小。
取一定范围内随机小数 c_算伪随机概率中C值的快捷方法相关推荐
- Matlab 产生伪随机调相信号与伪随机信号
伪随机调相信号是由多个CW自脉冲构成,第i个子脉冲有下式表示为 式中只取0和两个值,由m序列(一种伪随机序列,具有周期性,其周期随着m阶数的提高而增大)来控制. matlab程序: clear; cl ...
- 伪随机算法c语言,伪随机算法实现各语言实现示例。
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 无聊,又研究了一下几种排序算法,在测速的时候,发现自己忘记了一个重要的问题,在某天看到有人在帖吧提到生成随机数只计数到32768就停止了,顺手查了一下C库 ...
- 取一定范围内随机小数 c_随机振动测试中的常见试验条件有哪些?
从本质上说,随机振动试验模拟的其实不是单个自然现象,而是大量自然现象的一种集合.这些现象表明看似乎是杂乱的,但从总体上看仍有一定的统计规律.生活中典型的随机振动例子比如有车辆行进中的颠簸,飞机在飞行时 ...
- 【excel】根据单元格公式随机生成人名、及按概率生成不同值的测试数据
目录 excel根据行号轮流选取不同的填充值 按概率选取填充值 随机生成18位数字(伪身份证号) 生成2到3字的随机人名 注意,在excel中应用公式时,单元格格式应设为常规. excel根据行号轮流 ...
- python取随机小数_python随机小数
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! nonceinteger是随机正整数,与 timestamp 联合起来,用于防止 ...
- python随机生成小数_python如何生成随机小数
python中的random模块用于随机数 (1)随机小数#(1)随机小数 import random print(random.random()) #随机大于0 且小于1 之间的小数 ''' 0.9 ...
- 众妙之门玄之又玄,游戏系统中的伪随机(Pseudo-Randomization)和真随机(True-Randomization)算法实现Python3
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_212 有人说,如果一个人相信运气,那么他一定参透了人生.想象一下,如果你在某款moba游戏中,在装备平平,队友天坑的情况下,却刀刀 ...
- 伪随机函数 密码学_密码学与理论2:什么是伪随机
伪随机函数 密码学 正如本系列第一部分所得出的结论,没有随机性的安全性是不可能的. 确定性密码无法抵御强大的攻击者, 真正的随机数生成器不切实际或难以获得,因此加密技术基于伪随机数生成器. 这篇文章的 ...
- java满天星随机变颜色_js实现随机div颜色位置 类似满天星效果
本文实例为大家分享了js实现随机div颜色位置的具体代码,供大家参考,具体内容如下 效果如下: 代码如下: MTX function init(){ randomDiv();//初始的随机 } set ...
最新文章
- ssl 和 https
- 解决iscroll.js上拉下拉刷新手指划出屏幕页面无法回弹问题
- LayoutInflater中四种类型inflate方法的介绍
- html按键清空怎么写_html的空格代码怎么写?教你如何使用空格nbsp代码
- Oracle之表分区、分区索引(一)
- 奇葩说之RTC的那些事
- Oracle 之 用户与权限
- Zend Framework(一)概述介绍
- LeetCode(1046)——最后一块石头的重量(JavaScript)
- I学霸官方免费教程二十八:Java排序算法之选择排序和冒泡排序
- Spark 系列(十)—— Spark SQL 外部数据源
- 记录下我的Linux系统中vim文件的配置---(.vimrc文件配置模板)
- 孙鑫VC学习笔记:第四讲 MFC消息映射机制和CDC类的使用
- 构建Arduino和TFT LCD条形码扫描仪
- JavaWeb - 常用的HTTP请求头与响应头
- C#ObjectArx Cad添加图层
- Hive: Reflect UDF
- java espresso车架_Espresso 学习
- BufferedRead
- vue scoped html样式无效
热门文章
- 编辑神器Vi介绍及常用命令
- 数据库开发设计规范及表结构设计原则
- android 打开移动开关,教你一个让安卓手机运行更流畅的小技巧:打开这个开关即可...
- python中object是什么数据类型_自学Python2.1-基本数据类型-字符串str(object) 上
- 论文浅尝 | Knowledge Vault: 全网规模的知识概率融合方法
- 领域应用 | 从数据到智慧,知识图谱如何推动金融更智能?
- 会议 | 2018年全国知识图谱与语义计算大会(CCKS 2018)
- MYSQL返回指定时间间隔函数DATE_SUB和TO_DAYS详解
- 【Poj1017】Packets
- java乱码问题总结