Vb.net随机数生成器多次生成相同的数字

2023-11-27

我有这个程序从文件中生成名字和姓氏。当我运行该程序时,我在三个文本框中输入信息。前两个是工资低和高(salary1.text,salary2.text),最后一个是我想要的“份数”(copies.text)。当我在文本中输入诸如10之类的数字时它会输出一些相同的名称。

名字文件大约有 100 条记录 姓氏文件大约有1000条记录

为什么会生成相同的名称

如果我执行 1000 份副本之类的操作,问题会更严重。它会输出相同的内容 8 次,然后再执行不同的操作 8 次

Public Class Form1

    Dim sex As String

Function randomfirstname()
    Dim infile As IO.StreamReader
    Dim infile1 As IO.StreamReader
    Dim male() As String
    Dim female() As String
    Dim name As String
    Dim n As Integer = 0
    Dim fun As New System.Random
    Dim maleorfemale As New Random()
    Dim RandomNumber As Integer
    Dim index As Integer
    RandomNumber = maleorfemale.Next(0, 55984)
    infile = IO.File.OpenText("boysnames.txt")
    infile1 = IO.File.OpenText("girlsnames.txt")

    If RandomNumber Mod 2 = 0 Then
        While infile.Peek <> -1
            ReDim Preserve male(n)
            male(n) = infile.ReadLine
            n = n + 1
        End While
        n = n - 1
        index = fun.Next(0, n)
        name = male(index)
        sex = "M"
        n = 0
        Return name


    Else
        While infile1.Peek <> -1
            ReDim Preserve female(n)
            female(n) = infile1.ReadLine
            n = n + 1
        End While
        n = n - 1
        index = fun.Next(0, n)
        name = female(index)
        sex = "F"
        Return name
        n = 0
    End If
End Function
Function randomlastname()
    Dim infile2 As IO.StreamReader
    Dim lname() As String
    Dim lastname As String
    Dim n As Integer = 0
    Dim index As Integer
    Dim fun As New System.Random
    infile2 = IO.File.OpenText("lastname.txt")
    While infile2.Peek <> -1
        ReDim Preserve lname(n)
        lname(n) = infile2.ReadLine
        n = n + 1
    End While
    n = n - 1
    index = fun.Next(0, n)
    lastname = lname(index)
    Return lastname
End Function
Function salary()
    Dim salary01 As Double
    Dim salary02 As Double
    Dim salary03 As Double
    salary01 = CDbl(salary1.Text)
    salary02 = CDbl(salary2.Text)
    Dim sal As New System.Random


    salary03 = System.Math.Round(sal.NextDouble() * (salary02 - salary01) + salary01, 2)
    Return salary03
End Function

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    'ListBox1.Items.Add(randomfirstname() & vbTab & randomlastname() & vbTab & sex & vbTab & salary())
    Dim outfile As New System.IO.StreamWriter("C:\Users\Johnathon\Desktop\486assign1.txt")
    Dim i As Integer = 0
    outfile.Write("Firstname" & vbTab & "LastName" & vbTab & "Sex" & vbTab & "Salary" & vbCrLf)
    outfile.Write("-----------------------------------------------------------------------------" & vbCrLf)

    For i = 1 To CInt(copies.Text)
        outfile.Write(randomfirstname() & vbTab & randomlastname() & vbTab & sex & vbTab & salary() & vbCrLf)
        ListBox1.Items.Add(randomfirstname() & vbTab & randomlastname() & vbTab & sex & vbTab & salary())
    Next
    outfile.Close()

End Sub
End Class

包含 10 条记录的示例输出

Firstname   LastName    Sex Salary
-----------------------------------------------------------------------------
Carson  Gillespie   M   8.46    
Carson  Gillespie   M   8.46
Carson  Gillespie   M   8.46
Samantha    Daniels F   5.84
Samantha    Daniels F   5.84
Samantha    Daniels F   5.84
Natalia Guthrie F   9.26
Natalia Guthrie F   9.26
Natalia Guthrie F   9.26
Natalia Guthrie F   6.64

您正在使用的新实例System.Random每次。Random是在当前时间播种的。

使用与时间相关的默认种子值初始化 Random 类的新实例

参考

由于您正在快速连续地创建新实例,因此它们会获得相同的种子。

相反,您应该使用相同的实例Random,可能通过将其设为字段并初始化为字段初始值设定项或构造函数。例如:

Public Class Form1
    Private _random As New System.Random()

    'Use _random in other methods.
End Class
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vb.net随机数生成器多次生成相同的数字 的相关文章

  • MYSQL从每个类别中随机选择一条记录

    我有一个数据库Items表看起来像这样 id name category int 有几十万条记录 每个item可以是 7 种不同的之一categories 对应于categories table id category 我想要一个从每个类别
  • 错误:表达式不产生值

    我尝试将以下 C 代码转换为 VB NET 但在编译代码时出现 表达式不产生值 错误 C Code return Fluently Configure Mappings m gt m FluentMappings AddFromAssemb
  • 在 VB.NET 中将类标记为静态

    正如刚刚在最近的一篇文章中所说question https stackoverflow com questions 135759 why cant i inherit iodirectory and answer https stackov
  • Sub New() 在此上下文中无法访问,因为它是“Friend”

    那么这是什么意思以及如何解决它 如果我将 New 关键字放在下面的行中 则会出现此消息 如果删除它 我会在运行时收到错误消息 提示我需要使用 New 我究竟做错了什么 Dim oPS As AeccPointStyle New AeccPo
  • rand()/srand()函数是如何在C中实现的[重复]

    这个问题在这里已经有答案了 可能的重复 rand 是如何工作的 它有一定的倾向吗 有没有更好用的东西 https stackoverflow com questions 3539398 how does rand work does it
  • VB6 HTTP 请求到 VB.Net 2.0 的转换

    我正在尝试将旧版 VB6 组件 不是我编写的 更新到 NET 平台 有一个函数可以将 XML 字符串发送到 URL Function PostToUrl ByRef psUrl ByRef psData Byref psResponseTe
  • 我的 32 位头痛现在变成了 64 位偏头痛?!? (或 64 位 .NET CLR 运行时问题)

    从在 64 位 JIT 下运行与 32 位 JIT 下运行 NET 应用程序切换到在 32 位 JIT 下运行时 在性能 内存等方面发生了哪些不寻常的 意想不到的后果 我对好的事情感兴趣 但对人们遇到的令人惊讶的坏问题更感兴趣 我正在编写一
  • 在 VB.NET 中调用过程的优缺点是什么?

    我想知道在VB NET中使用Call关键字和不使用Call调用程序的优缺点 Private Sub ProOne Code Are Here End Sub Private Sub Calling ProOne I would like t
  • 整数溢出 - 将 C# 转换为 VB.Net 代码

    从 C 到 VB Net 的代码转换出现问题 var x 5783615 var y 56811584 var t x y x y和t是整数 在 C 中 t 将为 15536 49728 在 VB Net 中 我会得到一个整数溢出异常 知道
  • .NET - 有没有一种方法可以以编程方式填充强类型数据集中的所有表?

    我有一个 SQL Server 数据库 已为其创建了强类型数据集 使用 Visual Studio 2008 中的数据集设计器 因此所有适配器和选择命令等都是由向导为我创建的 这是一个小型数据库 其中大部分是静态数据 因此我想在启动时将该数
  • MsgBox 和 MessageBox.Show 有区别吗?

    以下两者有区别吗 msgbox messagebox show 有些教程使用 msgbox 有些教程使用另一个 messagebox show 我看到两者都可以有可编辑的样式 但我想知道 为什么有两个 是为了适应老程序员 他们学习过旧版本的
  • 如何避免 numpy.random.choice 中的舍入错误?

    假设 x 1 x 2 x n 是 n 个对象 并且想要选择其中一个 以便选择 x i 的概率与某个数字 u i 成正比 Numpy 为此提供了一个函数 x u np array x 1 x 2 x n np array u 1 u n np
  • 在vb.net中将base64解码为图像

    我一直在互联网上搜索 但没有找到答案 你想告诉我如何解码base64 to be Image像折线图一样 我一直在尝试从base64 to Byte首先数组并从Byte数组到Image Private Function convertbyt
  • 如何随机打乱一个比 PRNG 周期更多排列的列表?

    我有一个包含大约 3900 个元素的列表 我需要对其进行随机排列以产生统计分布 我环顾四周 发现了这个使用 Python random shuffle 进行随机播放的列表的最大长度 https stackoverflow com quest
  • 回滚Python中的随机数生成器?

    是否可以通过指定的步数将随机数生成器 回滚 到较早的状态以获得重复的随机数 我希望能够做这样的事情 print random random 0 5112747213686085 print random random 0 404934137
  • 在 Ruby 中生成正则表达式模式的字符串

    在Python语言中我发现rstr https bitbucket org leapfrogdevelopment rstr 可以生成一个字符串regex http en wikipedia org wiki Regular express
  • 调试时无法评估表达式

    当调试 asp net 代码 针对 IIS 运行并使用 Visual Studio 2013 并在断点中并尝试使用快速监视评估变量时 我经常遇到 无法评估表达式 的情况 从 asp net 项目文件夹中删除 suo 似乎可以解决问题 重新加
  • 有没有更快的方法来获取卷序列号?

    您好 我正在使用此代码来生成机器签名 但执行起来需要相当长的时间 想知道为什么这么慢 有什么更快的方法推荐吗 Public Shared Function DriveSN ByVal DriveLetter As String As Str
  • VB.NET 本地化

    我怎样才能用不同的语言制作我的应用程序 以便人们可以选择另一种语言 我需要翻译一些按钮 文本框和标签 有一个简单的方法吗 您需要外部化字符串资源 如果您希望仅本地化表单元素 则可以直接在 Visual Studio 内的 WinForms
  • 如果另一个对象具有 mousecapture,如何为一个对象触发 MouseEnter?

    我有一个奇怪的问题和一个 vb net 2010 和 wpf4 项目 我有一个标签 当单击时 它会捕获鼠标 MyLabel captureMouse 并在屏幕上跟随它 直到鼠标再次单击 此时对象和鼠标捕获被释放 但是 我仍然需要另一个对象的

随机推荐

  • 使用内联汇编在 C 中添加值

    我试图掌握 C 中内联汇编 ATT 汇编 的基础知识 所以我通过添加 2 个变量进行练习 好的 这按预期工作 这src变量被复制到dst变量 然后是dst变量加 5 的值src and dst分别为1和6 int src 1 int dst
  • IOS 5 如何更改导航栏中后退按钮的颜色?

    I want to change the color of back button of a navigation bar to make it look like this Set the backBarButtonItem s tint
  • Javascript 中与 64 位整数的按位 AND

    我正在寻找一种在 JavaScript 中对 64 位整数执行按位 AND 的方法 JavaScript 会将其所有双精度值转换为带符号的 32 位整数以执行按位运算 详细信息在这里 Javascript 将所有数字表示为 64 位双精度
  • 在 QMake 中设置 RPATH 顺序

    我有一个 Linux Qt 程序 我希望它优先使用可执行文件目录中的 动态 Qt 库 如果存在 否则使用系统的 Qt 库 RPATH 来救援 我将此行添加到qmake的 pro 文件 QMAKE LFLAGS Wl rpath ORIGIN
  • Visual Studio 2010 无法识别 .cshtml 文件

    我最近重新安装了 Visual Studio 2010 因为这样做我不知道如何让它再次识别 cshtml 文件 我尝试安装 MVC 3 但它说它已经安装了 基本上当我打开 cshtml 文件时Visual Studio 它们没有代码高亮或智
  • DRF:如何将 django-rest-framework-jwt 集成到 Djoser

    我计划构建一个应用程序Django 休息框架 我更感兴趣的是使用Django Rest Framework JWT认证机制比Session or Token认证机制 但所有其他包都喜欢Django Rest Auth and Djoser
  • 如何获取URI的最后一个路径段

    我有一个字符串作为输入URI 如何获得最后一个路径段 在我的例子中是一个 id 这是我输入的网址 String uri http base path some segment id 我必须获得我尝试过的 id String strId ht
  • 如何在iOS中获取CSRF令牌?

    因此 我尝试将表单数据发布到我同事的网站 以便从我的 iPhone 应用程序登录 简单的用户名和密码 但是 我似乎需要 CSRF 令牌才能发帖 我对此做了很多研究 并且从中我可以从csrftoken cookie 我在这里读到 https
  • 在 Windows/Apache 上设置 Python?

    我想要一个简单的 Python hello world 网页脚本在 Windows Vista Apache 上运行 但遇到了不同的障碍 我用的是WAMP 我已经安装了mod python并且模块显示 但我不太确定我应该做什么 例如http
  • 反应式表单数组 - 推送新元素时避免验证错误

    我有一个由单个表单数组组成的表单组 ngOnInit this deviceDetailsFormGroup this formBuilder group deviceDetails this formBuilder array this
  • 如何禁用纸浆的计算日志

    我在 python 中使用 pulp 和 GUROBI 来解决一些优化问题 例如 GUROBI的计算日志是 Optimize a model with 12 rows 25 columns and 39 nonzeros Coefficie
  • 从地址字符串中提取邮政编码

    我有一些完整的地址 例如 addr1 5285 KEYES DR KALAMAZOO MI 49004 2613 addr2 PO BOX 35 COLFAX LA 71417 35 addr3 64938 MAGNOLIA LN APT
  • 如何避免 wkhtmltopdf 表格行内分页

    我正在从 html 页面生成 pdf 报告一张桌子 我在用wkhtml转pdf为目的 当pdf生成时在 tr 标记中的任意位置中断 我想避免它 2015 年 9 月 17 日更新 检查您正在使用的版本 据说 wkhtmltopdf 0 12
  • dispatchEvent 不触发 jQuery.on() 事件监听器

    我有以下触发自定义命名事件的代码 elem addEventListener click function event event preventDefault Do some processing stuff var event new
  • 警告:类加载器在 Android Studio 2.1.2 中引用了未知路径

    我是 Android 和 Android Studio 的新手 我在 Android Studio 中创建了一个 HelloWorld 项目 当我在设备上运行该应用程序时 我收到以下警告 如何修复这些警告 6 15 11 21 22 287
  • 使用scikit-learn分类为多个类别

    我正在尝试使用 scikit learn 的监督学习方法之一将文本片段分类为一个或多个类别 我尝试过的所有算法的预测函数都只返回一个匹配项 例如我有一段文字 Theaters in New York compared to those in
  • 如何将数字字符串排序为数字?

    如果你有这样的字符串 file 0 file 1 file 2 file 3 file 4 file 5 file 6 file 11 如何对它们进行排序 以便 file 11 不会出现在 file 1 之后 而是出现在 file 6 之后
  • List<> 元素是否按顺序位于堆状数组中?

    我正在学习C 基本上知道数组和数组之间的区别List最后一个是通用的 可以动态增长 但我想知道 are List元素顺序位于堆状数组中 还是每个元素 随机 位于不同位置 如果这是真的 这是否会影响内存访问和数据检索的速度 如果这是真的 这就
  • 函数内的“static”关键字?

    我正在查看 Drupal 7 的源代码 发现了一些我以前没有见过的东西 我在 php 手册中做了一些初步的查找 但它没有解释这些示例 关键字是什么static对函数内的变量做什么 function module load all boots
  • Vb.net随机数生成器多次生成相同的数字

    我有这个程序从文件中生成名字和姓氏 当我运行该程序时 我在三个文本框中输入信息 前两个是工资低和高 salary1 text salary2 text 最后一个是我想要的 份数 copies text 当我在文本中输入诸如10之类的数字时它