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

Ruby中如何在一个表达式内实现两个独立随机值的相乘?

解决Ruby中两个独立随机数相乘的问题

嘿,刚入门Ruby碰到这个小困惑太正常啦!其实解法和你用加法的思路完全一致——既然加法是调用两次rand然后相加,那乘法只要把加号换成乘号就好啦:

rand(1..6) * rand(1..6)

这样每次运行都会独立生成两个1到6之间的随机整数,然后把它们相乘,结果范围就是1(1×1)到36(6×6),和你加法示例里的逻辑完全对应。

为什么你原来的写法不对?

你之前写的2 * rand(1..6),本质上只调用了一次rand(1..6),得到一个随机数后再乘以2,相当于把同一个随机数复用了两次,所以结果只能是2、4、6这类偶数,并不是两个独立随机数相乘的效果。

额外小技巧:封装成方法(可选)

如果之后你需要多次用到这种“两个骰子相乘”的逻辑,可以把它封装成一个简单的方法,用起来更方便:

def dice_product
  rand(1..6) * rand(1..6)
end

# 调用方法获取结果
dice_product # 比如返回 15(3×5)、24(4×6)等等

内容的提问来源于stack exchange,提问作者K James

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:21:11