vb.net - rnd() 种子的内存位置
问题描述
一直在尝试创建一个小程序来加密/解密文本文件。
想使用已经播种了 4 个数字 (0-255) 的 RND() 函数。几年前在我的 Apple IIE 上用 BASIC 做过,效果很好!(255^4=4,294,967,296 个可能的组合)。将 4 个关键数字“戳”到内存位置,运行一个小循环以打印出 25 个随机数字。将相同的数字“戳”到内存位置,再次运行程序,结果序列与第一次相同!
有像几年前一样“偷看”和“戳”的记忆吗?
解决方案
在这种情况下,每次运行代码时都会得到相同的数字,因为您提供了种子 17。如果您在没有种子的情况下调用构造函数,您将得到不同的数字。我相信它是用系统时钟播种的。
Private rnd As New Random(17)
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
Dim lst As New List(Of Integer)
For i = 0 To 24
lst.Add(rnd.Next)
Next
For Each item In lst
Debug.Print(item.ToString)
Next
End Sub
要将您的数字限制在特定范围内,请将参数传递给 Next 方法。
从文档。
Next(Int32) 返回小于指定最大值的非负随机整数。
Next(Int32, Int32)
返回指定范围内的随机整数。
推荐阅读
- rust - 结构方法:不能作为可变的借用,因为它也作为不可变的借用
- php - Laravel - 重定向到自定义路由时无法获得 500 状态码
- c - 关于 wb_motor_set_position 和 wb_robot_step 关系的问题
- python - python中的概率计算
- php - 从键是列名的对象中插入值
- go - 如何检查我是否可以绑定到 IP 地址?
- 3d - 如何构建测量人脚尺寸的功能?
- powerbi - 计算表忽略过滤器的所有记录
- java - com.fasterxml.jackson.databind.exc.MismatchedInputException:无法从 START_ARRAY 令牌中反序列化对象实例 - JAVA
- python - Python密码报警五分钟