You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用R语言sample函数模拟掷骰子(两骰子掷24次)失败,求解决

问题分析与解决方法

你的代码无法正常运行的核心问题是6^48这个数值太大,远超R能处理的有效整数范围,会触发数值溢出,导致n变成精度丢失的浮点数,sample函数根本没法基于这种数值完成抽样操作。

正确的模拟思路

模拟掷两个骰子24次,不需要先计算总可能结果数,直接模拟每次掷骰子的过程即可:

  • 单次掷两个骰子:每个骰子结果是1-6的整数,用sample(1:6, 2, replace = TRUE)就能模拟
  • 重复24次该操作,得到24次的结果

示例代码

# 模拟掷两个骰子24次,返回的每一列是一次的结果
dice_rolls <- replicate(24, sample(1:6, 2, replace = TRUE))
# 转置后每行对应一次掷骰子的两个结果,更直观
dice_rolls <- t(dice_rolls)
print(dice_rolls)

为什么原方法不可行

6^48是一个约2.2e36的天文数字,而R的整数类型最大只能处理到约9e18,这个数已经超出了R的有效整数范围,会被存储为精度丢失的浮点数。sample函数需要基于有效的整数集合或明确的元素来抽样,这种超大的数值完全不符合函数的使用场景,自然无法运行。

内容的提问来源于stack exchange,提问作者khali-blinks

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 23:39:08