东方符斗祭官方论坛

找回密码
加入幻想乡

QQ登录

只需一步,快速开始

搜索
收起/展开

当前在线玩家

游戏大厅      在房间中       准备状态       游戏中       观战中      
收起/展开

『文々。新闻』

查看: 149|回复: 14

从不同的角度来看待问题可以得出完全不同的结论

[复制链接]

存在感: 72 天

[LV.6]触手II

手办控嬴政
幸福:20149℃
发表于 2021-11-28 10:38:03 | 显示全部楼层 |阅读模式
一开始是想写一个效果:

设定一个使用后会触发词条的道具,而这个道具在获得时会从自带的词条库里随机抽出3~5个词条,每个词条都有自己的触发概率(随机生成)且各词条概率之和=100%,使用道具会随机触发其中一个词条

而我突然想到一个问题,如何才能做到让随机出来数量不等的词条(同时触发概率也是随机的)的概率总和刚好=100%呢?思来想去只能想到一个蠢办法……

  1. #假设随机出来3个词条
  2. var baseprobability = 100
  3. var probabilityA = rndRan(1,100)
  4. baseprobability -= probabilityA
  5. var probabilityB = rndRan(1,baseprobability)
  6. baseprobability -= probabilityB
  7. var probabilityC =baseprobability
复制代码


大概思路就是先在1%~100%中随机出一个概率  然后用100%去减  得出来的就是下一个词条的概率区间……而且这个算法问题还很多
但是又想不出别的算法了  黔驴技穷(
最后不得不去请教了质子桑  质子桑给出的方法是


  1. var a = randf()
  2. var b = randf()
  3. var c = randf()
  4. var probabilityA = a / (a+b+c)
  5. var probabilityB = b / (a+b+c)
  6. var probabilityC = c / (a+b+c)
复制代码


只能说不愧是啃了N年键盘的猫猫  实在是太厉害了(




[发帖际遇]:

莱卡M3“紫妈,生日快乐~~”,被间隙掉8 点节操.
幸运榜 / 衰神榜

存在感: 35 天

[LV.5]触手I

雾霞霜零
幸福:19℃
发表于 2021-11-28 10:40:24 | 显示全部楼层
@莱卡M3 力荐莱卡m3
回复 支持 反对

使用道具 举报

存在感: 63 天

[LV.6]触手II

镜开凡华
幸福:78℃
发表于 2021-11-28 11:28:01 | 显示全部楼层
大家都挺厉害了,只有我什么都不会,哎嘿嘿嘿
回复 支持 反对

使用道具 举报

存在感: 146 天

[LV.7]触手III

单身中……
帮我摆脱单身吧
发表于 2021-11-28 11:45:09 煞笔球保护协会 | 显示全部楼层
质子大大tql
不过原来的算法有什么问题啊,是概率不相等吗
回复 支持 反对

使用道具 举报

存在感: 72 天

[LV.6]触手II

手办控嬴政
幸福:20149℃
 楼主| 发表于 2021-11-28 13:42:20 | 显示全部楼层
LPYTY 发表于 2021-11-28 11:45
质子大大tql
不过原来的算法有什么问题啊,是概率不相等吗

可能会在随机概率A时出现概率A=100%的情况  然后直接导致报错  或者出现比较极端的值(比如99%,那样的话概率B就只能是1%,之后就会报错)

[发帖际遇]:

莱卡M3伪装失败,丢失4 点节操.
幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

存在感: 72 天

[LV.6]触手II

手办控嬴政
幸福:20149℃
 楼主| 发表于 2021-11-28 13:51:59 | 显示全部楼层
你好F8 发表于 2021-11-28 10:40
@莱卡M3 力荐莱卡m3

@你好F8 力不荐Apple8
回复 支持 反对

使用道具 举报

存在感: 35 天

[LV.5]触手I

雾霞霜零
幸福:19℃
发表于 2021-11-28 15:35:36 | 显示全部楼层
莱卡M3 发表于 2021-11-28 13:51
@你好F8 力不荐Apple8

你再打一局游戏就不要玩了 积分6666很好看
回复 支持 反对

使用道具 举报

存在感: 37 天

[LV.5]触手I

单身中……
帮我摆脱单身吧
发表于 2021-11-28 17:11:47 煞笔球保护协会 | 显示全部楼层
现在你也会了
回复 支持 反对

使用道具 举报

存在感: 146 天

[LV.7]触手III

单身中……
帮我摆脱单身吧
发表于 2021-11-28 17:20:57 煞笔球保护协会 | 显示全部楼层
莱卡M3 发表于 2021-11-28 13:42
可能会在随机概率A时出现概率A=100%的情况  然后直接导致报错  或者出现比较极端的值(比如99%,那样的话 ...

哦这个函数生成的是整数啊
说起来既然是整数为什么最大值只设置成100呢,这非常的不合理啊
极端情况什么的加检验就行
回复 支持 反对

使用道具 举报

存在感: 1 天

[LV.1]呆毛

单身中……
帮我摆脱单身吧
发表于 2021-11-28 23:12:41 | 显示全部楼层
嗯,这种思维方式很不错,应该说是经验老道.
继续努力吧
[发帖际遇]:

默无烟成功捕获一个吸血鬼,获得10 点节操.
幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

存在感: 72 天

[LV.6]触手II

手办控嬴政
幸福:20149℃
 楼主| 发表于 2021-11-28 23:26:20 | 显示全部楼层
你好F8 发表于 2021-11-28 15:35
你再打一局游戏就不要玩了 积分6666很好看

你再打二百一十一局游戏就不要玩了 积分10000很好看
回复 支持 反对

使用道具 举报

存在感: 72 天

[LV.6]触手II

手办控嬴政
幸福:20149℃
 楼主| 发表于 2021-11-28 23:27:38 | 显示全部楼层
LPYTY 发表于 2021-11-28 17:20
哦这个函数生成的是整数啊
说起来既然是整数为什么最大值只设置成100呢,这非常的不合理啊
极端情况什么 ...

就算设置成1000或者10000也终究会有极端情况出现  额外加检测也是曲线救国  相比质子桑给出的算法  真的是云泥之别(
[发帖际遇]:

莱卡M3算术输给了琪诺露,损失3+3+3点 节操,交出多少来着?
幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

存在感: 72 天

[LV.6]触手II

手办控嬴政
幸福:20149℃
 楼主| 发表于 2021-11-28 23:28:25 | 显示全部楼层

学到很多  必可活用于下次.jpg
回复 支持 反对

使用道具 举报

存在感: 146 天

[LV.7]触手III

单身中……
帮我摆脱单身吧
发表于 2021-11-29 00:19:10 | 显示全部楼层
莱卡M3 发表于 2021-11-28 23:27
就算设置成1000或者10000也终究会有极端情况出现  额外加检测也是曲线救国  相比质子桑给出的算法  真的 ...

啊我的意思是,设置成100不就只有整数值了么
不太好吧
[发帖际遇]:

LPYTY学习了魔理沙的分手教学,获得5 点节操.
幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

存在感: 72 天

[LV.6]触手II

手办控嬴政
幸福:20149℃
 楼主| 发表于 2021-11-29 03:08:20 | 显示全部楼层
LPYTY 发表于 2021-11-29 00:19
啊我的意思是,设置成100不就只有整数值了么
不太好吧

对呀  所以才我才说无论设置成1000还是10000都解决不了问题(整数随机1000等价于100.0  随机10000则等价于100.00)
回复 支持 反对

使用道具 举报

高级模式
您需要登录后才可以回帖 登录 | 加入幻想乡

本版积分规则

幻想梦斗符

申请友链|小黑屋|手机版|Archiver|东方符斗祭官方论坛

GMT+8, 2024-4-29 02:38 , Processed in 0.060432 second(s), 44 queries , APC On.

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表