请问置随机数种子问题
请问为什么加了 置随机数种子 () 后调试输出4个结果都是相同的?不加就不相同
在启动方法里置随机数种子就行,不要在需要用到随机数的方法里置种子 小莫 发表于 2026-7-21 00:54
在启动方法里置随机数种子就行,不要在需要用到随机数的方法里置种子
计次循环 (10)
{
置随机数种子 ()
测试 ()
}
这样结果还是全部一样呢 <火山程序 类型 = "通常" 版本 = 1 />
包 火山.程序
类 启动类 <公开 基础类 = 窗口程序类>
{
变量 主窗口对象 <类型 = 我的主窗口>
方法 启动方法 <公开 类型 = 整数>
{
主窗口对象.创建主窗口 ()
返回 (1)
}
}
# ===
类 我的主窗口 <基础类 = 窗口 注释 = "样例主窗口" @视窗.布局 = "client_size = \"500, 300\"" 标题 = "我的主窗口">
{
方法 我的主窗口_创建完毕 <接收事件 类型 = 整数 注释 = "当本组件及其中所有子组件均被创建完毕后发送此事件.">
参数 来源对象 <类型 = 我的主窗口 注释 = "提供事件产生的具体来源对象">
参数 标记值 <类型 = 整数 注释 = "用户调用\"挂接事件\"命令时所提供的\"标记值\"参数值,非此方式挂接事件则本参数值固定为0.">
{
置随机数种子 ()
计次循环 (10)
{
调试输出 (取随机数 (1, 100))
}
返回 (0)
}
}
1105110683 发表于 2026-7-21 01:48
计次循环 (10)
{
置随机数种子 ()
<火山程序 类型 = "通常" 版本 = 1 />
包 火山.程序
类 启动类 <公开 基础类 = 窗口程序类>
{
变量 主窗口对象 <类型 = 我的主窗口>
方法 启动方法 <公开 类型 = 整数>
{
主窗口对象.创建主窗口 ()
返回 (1)
}
}
# ===
类 我的主窗口 <基础类 = 窗口 注释 = "样例主窗口" @视窗.布局 = "client_size = \"500, 300\"" 标题 = "我的主窗口">
{
方法 我的主窗口_创建完毕 <接收事件 类型 = 整数 注释 = "当本组件及其中所有子组件均被创建完毕后发送此事件.">
参数 来源对象 <类型 = 我的主窗口 注释 = "提供事件产生的具体来源对象">
参数 标记值 <类型 = 整数 注释 = "用户调用\"挂接事件\"命令时所提供的\"标记值\"参数值,非此方式挂接事件则本参数值固定为0.">
{
置随机数种子 ()
计次循环 (10)
{
调试输出 (取随机数 (1, 100))
}
返回 (0)
}
}
<火山程序 类型 = "通常" 版本 = 1 />
变量 欲置入的种子数值 <类型 = 整数 注释 = "本参数值如果为0,将使用当前计算机系统的时钟毫秒值." @默认值 = 0>
在同一个毫秒执行完了,所以就是同一个种子,同一个种子的第一个随机数,就是一样的,没有特殊要求火山可以不调用置随机种子,默认会自动调用一次 本帖最后由 Xelloss0618 于 2026-7-21 08:46 编辑
一、【置随机种子】默认用的种子值是【取启动时间】,所以短时间内多次置种子值,都是同一个结果。
二、一个线程内,如果没有置种子值就执行【取随机数】,火山会自动置一次种子值。所以没什么特殊情况,无需执行这个【置随机种子】。三、特殊情况指的是短时间内多次启动线程并取随机数,这时候默认分配的种子值一样,随机数也就一样。所以建议自己给种子值加料,或者用标准库的随机数
页:
[1]