找回密码
 立即注册
搜索
查看: 1099|回复: 3

[PC] 异星工厂的一点数学疑问

[复制链接]
     
发表于 2021-9-26 14:05 | 显示全部楼层 |阅读模式
本帖最后由 大秦男女 于 2021-9-26 14:07 编辑

最近在玩这个 想算出平均每车火车运力扣掉消耗后能实际为站前箱子存货增加的值 从而确定要派出多少火车

这种所谓"平均数" 有办法计算吗?

比如有 3 6 9 三个数 每次加一个 最后算平均数
平均数计算是 (3+6+9)/3 = 6

把6存到A里面 现在再加了一个15

要怎么算出8.25?

你问我为什么不直接算 (3+6+9+15)/4=8.25

因为那个寄存器A是int的多算几次可能会溢出!

还有 这东西的运算器只有整数运算 小数会被忽略...ORZ

结果也不用非常精确 但是也不能偏差太大

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

     
发表于 2021-9-26 14:16 | 显示全部楼层
我都不搞那么精细的计算,直接把所有供货箱子堆爆就完事了,货物溢出就溢出了,流出一点缓冲余量也不是坏事
回复

使用道具 举报

     
发表于 2021-9-26 16:26 | 显示全部楼层
本帖最后由 CielChloe 于 2021-9-26 16:30 编辑

大概看懂了你的意思,你希望维护一个动态均值的话,是否可以用个近似算法?
比如记录均值的10^p倍为m,累加的新值为xi,每次计算新m : (m*t+xi*10^p) / (t+1),该式全是INT,注意t和p别太大即可
p值为精度,类似结果保留p位小数,举个例子,p=3, m=15324,那么实际均值为15.324
t值>=1,可根据需求调节,越大越稳定,越小越敏感

如果你就是要精确算这个均值,在只有INT型数据的前提下,那你就得用若干位值来记录
比如s1=500, s2 = 343,表示实际总和s = 500343
回复

使用道具 举报

头像被屏蔽
发表于 2021-9-26 16:46 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2024-9-24 23:32 , Processed in 0.025844 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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