搜索
查看: 216|回复: 15

[已关闭] 能否加个获取机率的命令

 关闭 [复制链接]
发表于 2025-8-16 04:28:35 | 显示全部楼层 |阅读模式
建议反馈
建议描述: 能否加个获取机率的命令
例如getChance(80)
80分之一的机率
命中返回1 未命中返回0
实现具体思路: 能否加个获取机率的命令
例如getChance(80)
80分之一的机率
命中返回1 未命中返回0
联系QQ: 隐藏内容
用lua随机数和系统随机数,随机出来的值概率特别大,很容易同一时间出现同一值

if math.random(1, 10000) == 1 then
--执行代码
end
例如这段代码,写冲10000出1的概率还是特别大
用了置随机种子也不行
发表于 2025-8-16 12:31:26 | 显示全部楼层
本帖最后由 1580 于 2025-8-16 12:40 编辑

系统的随机函数,都这样了,有必要引擎自己实现个机率的函数吗?

除非你希望引擎自己实现的机率控制

例如总量10000,机率10

if random(10000) < 10 then
--执行代码
end

即10/10000的生效机率,或是自己改下写法



// 函数:判断是否触发指定概率
function CheckProbability(nMaxNum, nNum: Integer): Boolean;
begin
  Result := Random(nMaxNum) < nNum;
end;


发表于 2025-8-16 12:37:54 | 显示全部楼层
你都写了,自己自定义一个功能函数调用不也一样吗
 楼主| 发表于 2025-8-16 12:40:44 | 显示全部楼层
1580 发表于 2025-8-16 12:31
系统的随机函数,都这样了,有必要引擎自己实现个机率的函数吗?

除非你希望引擎自己实现的机率控制

问题的重点是用math.random 机率会很高
发表于 2025-8-16 12:41:33 | 显示全部楼层
本帖最后由 1580 于 2025-8-16 12:46 编辑
天策工作室 发表于 2025-8-16 12:40
问题的重点是用math.random 机率会很高

就算让引擎实现,一样是调用random()的


LUA可以 使用随机函数前,math.randomseed(os.time())  -- 初始化随机种子
 楼主| 发表于 2025-8-16 12:55:12 | 显示全部楼层
1580 发表于 2025-8-16 12:41
就算让引擎实现,一样是调用random()的

随机种子我加了....
 楼主| 发表于 2025-8-16 12:57:35 | 显示全部楼层
1580 发表于 2025-8-16 12:41
就算让引擎实现,一样是调用random()的

能封装一个像怪物爆率算法的函数吗?不行就算了....
发表于 2025-8-16 13:05:08 | 显示全部楼层
概率这个东西就是这样 你数值调很大 一直不出 你觉得很低很难出 出了几次 你又觉得太高太容易出
就像中彩票 概率不知道低到什么样了 不一样经常有人中 心里作用而已...
 楼主| 发表于 2025-8-16 13:07:46 | 显示全部楼层
1580 发表于 2025-8-16 12:31
系统的随机函数,都这样了,有必要引擎自己实现个机率的函数吗?

除非你希望引擎自己实现的机率控制

算了,就这样吧。可能我脸白...
 楼主| 发表于 2025-8-16 13:08:07 | 显示全部楼层
黄大胆 发表于 2025-8-16 13:05
概率这个东西就是这样 你数值调很大 一直不出 你觉得很低很难出 出了几次 你又觉得太高太容易出
就像中彩票 ...

可能我脸白...
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|HGEM2论坛

GMT+8, 2025-10-14 06:02 , Processed in 0.458447 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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