全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
2653 9
2022-07-26
编写算法时 得到的循环结果太大溢出 输出inf 应该如何解决?楼主需要输出具体数值

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2022-7-27 11:38:08
用while循环,控制次数
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2022-7-27 21:38:42
oliyiyi 发表于 2022-7-27 11:38
用while循环,控制次数
已经控制了循环次数 但是由于乘积项太多且每一项都是0-1之间的小数 取对数作加和再用指数回复 就会得到-inf 该怎么办啊
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2022-7-28 08:34:18
这个超过R语言允许的最大值,还能怎么办。。分100份输出?然后导出来自己加总
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2022-7-29 16:34:25
如果要精确,那就只能自己写个向量来表示多位数的乘法了
如果可以接受近似,那么每个数转成
1.a * 10^(-b)的形式
第一列表示一个1到10之间的数(如果考虑正负号,那就搞成三列),这样相乘得到值
第二列表示10的乘幂,相加就好了

如果这是真实的算法,这算法可能没啥用处
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2022-7-29 16:42:34
用这个做例子可能更清晰一些,或者直接用exp(1)做base也可以,用10是为了和十进制表示一致,更容易理解。
x <- exp(runif(100, -20, -10))
b <- 1 - as.integer(log(x, 10))
a <- x * (10 ^ b)
prod(a) * (10^sum(-b))
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群