VB中随即函数为啥每次的得数都是一样的

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VB中随即函数为啥每次的得数都是一样的相关的知识,希望对你有一定的参考价值。

Int(Rnd * 9000000000#) + 1000000000
我要得到的是一个十位数~~~~
每次运行的结果却都是: 7349927604
有人知道这是为什么吗???

VB里得到都是伪随机数,所谓的随机数也是系统根据一定算法得出的。
如果演算随机数的根据(即随机数种子)一样,那么每次得出的随机数序列也就一样了。
为了得到不一样的随机数,就必须保证每次给的种子不一样。
只有时间每一分每一秒都在变化,所以使用
randomize
可以用时间来初始化随机数种子,保证每次的随机数序列不一样
参考技术A 用Randomize 函数初始化.

////////////////////////////
Randomize 语句

初始化随机数生成器。

语法

Randomize [number]

可选的 number 参数是 Variant 或任何有效的数值表达式。

说明

Randomize 用 number 将 Rnd 函数的随机数生成器初始化,该随机数生成器给 number 一个新的种子值。如果省略 number,则用系统计时器返回的值作为新的种子值。

如果没有使用 Randomize,则(无参数的)Rnd 函数使用第一次调用 Rnd 函数的种子值。

注意 若想得到重复的随机数序列,在使用具有数值参数的 Randomize 之前直接调用具有负参数值的 Rnd。使用具有同样 number 值的 Randomize 是不会得到重复的随机数序列的。
参考技术B 加个 Randomize(timer)

为啥我的随机森林分类器模型中每棵决策树的 max_depth 都是一样的?

【中文标题】为啥我的随机森林分类器模型中每棵决策树的 max_depth 都是一样的?【英文标题】:Why the max_depth of every decision tree in my random forest classifier model are the same?为什么我的随机森林分类器模型中每棵决策树的 max_depth 都是一样的? 【发布时间】:2020-02-15 11:47:16 【问题描述】:

为什么我的随机森林分类器模型中每棵决策树的 max_depth 都是一样的? 我设置了我的 RandomForestClassifier 的 max_depth=30,当我打印每棵树时(trees = RandomForestClassifier.estimators_),我发现每棵树的 max_depth 都是一样的。

我真的不知道问题出在哪里以及它是如何发生的。

【问题讨论】:

如果可能,请提供一些代码示例和堆栈跟踪。 也许,您设置了min_samples_leaf 值,不允许增加深度 你最好提供代码,因为这个问题太笼统了 【参考方案1】:

如果我没记错的话,决策树可能会达到其最大深度。没有什么问题。我什至会说他一定会的。你允许你的树生长的空间,你的树将占据的空间。

缩放到随机森林,再次没有任何问题。您应该专注于选择正确的 max_depth,因为 max_depth 越大,过度拟合的风险就越大。

尝试不同的值并比较您对测试数据的处理方式。

【讨论】:

以上是关于VB中随即函数为啥每次的得数都是一样的的主要内容,如果未能解决你的问题,请参考以下文章

C语言中随机函数每次调用的随机序列是不是一样?

VB中randomize的作用

VB中 randomize 是用来干啥的 +他和不+他有啥区别 请举例说明

为啥相同的SOFM程序每次运行的结果不一样

如何用VB产生一个每次都不一样的随机数啊,用rnd的话只能产生一个固定的数字

过程,模块,函数,类,他们有啥不同?