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

在EiffelStudio中用BASE库RANDOM类模拟掷骰始终输出5的问题

问题分析与修复

你的代码始终输出5的核心问题是错误使用了RANDOM类的next_random方法,具体问题和修复方案如下:

问题根源

  • random_obj.next_random (random_obj.item):next_random(n)的参数n是随机数的上限,会生成0到n-1之间的整数,但你传入了刚初始化的random_obj.item——这个初始值是固定的,导致每次计算得到的数值完全一致。
  • 后续\ 6 +1的计算基于这个固定值,最终只会输出固定结果5。

修复后的代码

class
    APPLICATION

create
    make

feature
    make
        local
            random_obj: RANDOM
        do
            create random_obj.make_from_system_time -- 用系统时间初始化种子,避免重复随机序列
            io.put_integer (random_obj.next_random (6) + 1) -- 生成0-5的随机数,+1后得到1-6的骰子范围
        end

end

关键说明

  • next_random(6):直接传入上限6,生成0到5的随机整数,加1后正好匹配骰子1-6的结果范围。
  • make_from_system_time:替代默认的make,用系统时间作为随机种子,确保每次运行程序能得到不同的随机序列,而非固定结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 13:22:06