精华内容
下载资源
问答
  • VB6.0制作的一个生成随机数的程序,点击开始后,每个标签框不停转动,随机生成1~10以内的一位数字,点击停止,则转动停止,这个程序主要应用于活动时抽奖需要,下面是整个程序功能的实现。程序界面主要如下图所示:...

    VB6.0制作的一个生成随机数的程序,点击开始后,每个标签框不停转动,随机生成1~10以内的一位数字,点击停止,则转动停止,这个程序主要应用于活动时抽奖需要,下面是整个程序功能的实现。

    程序界面主要如下图所示:其中包含6个标签、一个计时器、两个用于开始和停止的按钮。

    e36351f3226a4df96b83d755530c7f3c.png

    代码实现:

    1,定时器

    1. Private Sub Timer1_Timer()

    2. Dim i As Integer

    3. Randomize'初始化随机数产生器

    4. For i = 0 To Label.Ubound

    5. Label(i).Alignment = 2'数字居中

    6. Label(i).Caption = Int(Rnd * 10)'Label(i)中显示产生的一个0-10的随机数

    7. Next i

    8. End Sub

    定时器代码中用到了Randomize(x)即随机函数,Rnd(x)是一个系统内部定义的随机函数,它能产生一个0~1(不包括0和1的)之间的单精度随机数,但是,一般的随机数都是指定范围的,这个时候我们用系统指定的随机数乘以指定范围的最大数,即可得到指定范围的随机数,其书写格式为:

    Rnd()* x

    例如,要产生一个1~12之间的随机数,可以用以下代码实现:

    1. Private Sub Form_Click()

    2. Randomize

    3. Print Rnd() * 12

    4. End Sub

    2,开始按钮代码:

    1. Private Sub Image1_Click()

    2. Timer1.Enabled = True

    3. End Sub

    3,结束按钮代码:

    1. Private Sub Image2_Click()

    2. Timer1.Enabled = False

    3. End Sub

    程序功能演示:

    7daf66746431682667dd46efea3ebde9.png
    展开全文
  • VB利用随机函数抽取幸运数字示例代码,使用INT及Rnd函数,互相配合,生成随机数,再由Timer控制秒级循环不断生成随机数,有此完成幸运数字抽奖程序。由此我们可改造成用户抽奖、手机号码抽奖、幸运观众投资等众多...
  • VB6.0制作的一个生成随机数的程序,点击开始后,每个标签框不停转动,随机生成1~10以内的一位数字,点击停止,则转动停止,这个程序主要应用于活动时抽奖需要,下面是整个程序功能的实现。程序界面主要如下图所示:...

    VB6.0制作的一个生成随机数的程序,点击开始后,每个标签框不停转动,随机生成1~10以内的一位数字,点击停止,则转动停止,这个程序主要应用于活动时抽奖需要,下面是整个程序功能的实现。

    程序界面主要如下图所示:其中包含6个标签、一个计时器、两个用于开始和停止的按钮。

    210bcf6c9e06b0bd7bc9359d068b3757.png

    代码实现:

    1,定时器

    1. Private Sub Timer1_Timer()

    2. Dim i As Integer

    3. Randomize'初始化随机数产生器

    4. For i = 0 To Label.Ubound

    5. Label(i).Alignment = 2'数字居中

    6. Label(i).Caption = Int(Rnd * 10)'Label(i)中显示产生的一个0-10的随机数

    7. Next i

    8. End Sub

    定时器代码中用到了Randomize(x)即随机函数,Rnd(x)是一个系统内部定义的随机函数,它能产生一个0~1(不包括0和1的)之间的单精度随机数,但是,一般的随机数都是指定范围的,这个时候我们用系统指定的随机数乘以指定范围的最大数,即可得到指定范围的随机数,其书写格式为:

    Rnd()* x

    例如,要产生一个1~12之间的随机数,可以用以下代码实现:

    1. Private Sub Form_Click()

    2. Randomize

    3. Print Rnd() * 12

    4. End Sub

    2,开始按钮代码:

    1. Private Sub Image1_Click()

    2. Timer1.Enabled = True

    3. End Sub

    3,结束按钮代码:

    1. Private Sub Image2_Click()

    2. Timer1.Enabled = False

    3. End Sub

    程序功能演示:

    480a50f732d89c0e0d4d5f87b5d062c5.png
    展开全文
  • VB6.0升级到VB.NET后,发现随机数函数也发生了变化,在VB.NET中Random类是一种能够产生满足某些随机性统计需求的数字序列的伪随机生成器。 在代码把光标定位到单词Random,点F1键获取帮助。 一、Random类常用...

    VB6.0升级到VB.NET后,发现随机数函数也发生了变化,在VB.NET中Random类是一种能够产生满足某些随机性统计需求的数字序列的伪随机数生成器。
    在代码把光标定位到单词Random,点F1键获取帮助。
    一、Random类常用知识点(以下内容来源于帮助,点击进入Random类帮助网页):
    1、构造函数:
    (1)、Random()
    使用与时间相关的默认种子值,初始化 Random 类的新实例。
    (2)、Random(Int32)
    使用指定的种子值初始化 Random 类的新实例。
    参数为种子值,数据类型为Int32,用来计算伪随机数序列起始值的数字。 如果指定的是负数,则使用其绝对值。
    2、方法:
    (1)、Next:返回一个随机整数。
    A、无参数:Next()——返回一个非负随机整数。
    B、一个参数:Next(maxValue) ——返回一个小于所指定最大值的非负随机整数。
    参数(maxValue):类型为Int32,要生成的随机数的上限(随机数不能取该上限值)。maxValue 必须大于或等于 0。
    返回值:类型为Int32,大于或等于零且小于 maxValue 的 32 位有符号整数,即:返回值的范围通常包括零但不包括 maxValue。 但是,如果 maxValue 等于 0,则返回 maxValue。
    C、两个参数:Next(minValue,maxValue)——返回在指定范围内的任意整数。
    参数(minValue):类型为Int32,返回的随机数的下界(随机数可取该下界值)。
    参数(maxValue):类型为Int32,返回的随机数的上界(随机数不能取该上界值)。 maxValue 必须大于或等于 minValue。
    返回值:类型为Int32,一个大于等于 minValue 且小于 maxValue 的 32 位带符号整数,即:返回的值范围包括 minValue 但不包括 maxValue。 如果 minValue 等于 maxValue,则返回 minValue。
    (2)、NextBytes:用随机数填充指定字节数组的元素。
    NextBytes(buffer)
    参数(buffer):Byte[],包含随机数的字节数组。
    说明:字节数组的每个元素设置为随机数字大于或等于 0,且小于或等于MaxValue。
    (3)、NextDouble:返回一个大于或等于 0.0 且小于 1.0 的随机双精度型浮点数。
    没有参数,返回值类型为Double。
    3、使用方法:
    要生成各种类型的随机数,必须先得到它的实例对象,然后再生成随机数。注意只实例化一个对象,可以多次方法调用,生成的数字分布均匀,每个数字返回的可能性均相等。
    二、Random类生成随机数的弱点
    Random类生成随机数是伪随机数,所以在Random的内部产生机制中还是有一定规律的,并非是真正意义上的完全随机。 如果种子值相同则每次均产生相同的随机数。如下面代码在构造函数中指定了种子值:

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            Dim rand As Random = New Random(66)
            For i As Integer = 0 To 10
                Me.Label1.Text = Me.Label1.Text & rand.Next() & Environment.NewLine
            Next
        End Sub
    

    每次运行程序均生成相同的随机数序列,如下图所示,不信你就测试一下。
    伪随机数
    三、怎样才能每次运行程序时均生成不同的随机数?
    其实很简单,就是每次运行程序时改变Random类的构造函数的种子值,可以有以下做法:
    第一种方式: 使用无参数的Random()构造函数;
    默认种子值是使用DateTime.Now.Ticks作为种子值的,如果触发Random函数间隔时间很短, 就有可能造成产生一样的随机数。
    第二种方式: 使用RNGCryptoServiceProvider生成种子值;生成速度较慢。
    在帮助里有看到推荐,如下图:
    RNGCryptoServiceProvider
    第三种方式: 使用Guid生成种子值; 生成速度快。
    测试代码如下:

    Public Class Form1
        ''' <summary>
        ''' 通过RNGCryptoServiceProvider获取种子值
        ''' </summary>
        ''' <returns></returns>
        Private Shared Function GetRandomSeed() As Integer
            Dim bytes As Byte() = New Byte(3) {}
            Dim rng As System.Security.Cryptography.RNGCryptoServiceProvider = New System.Security.Cryptography.RNGCryptoServiceProvider()
            rng.GetBytes(bytes)
            Return BitConverter.ToInt32(bytes, 0)
        End Function
        
        ''' <summary>
        ''' 通过Guid获取种子值
        ''' </summary>
        ''' <returns></returns>
        Private Shared Function GetRandomSeedbyGuid() As Integer
            'Return New Guid().GetHashCode()
            Return Guid.NewGuid().GetHashCode()
        End Function
    
        ''' <summary>
        ''' 默认种子值生成随机数
        ''' </summary>
        ''' <param name="sender"></param>
        ''' <param name="e"></param>
        Private Sub BtnTime_Click(sender As Object, e As EventArgs) Handles BtnTime.Click
            Dim rand As Random = New Random()
            Me.Label1.Text = ""
            For i As Integer = 0 To 10
                Me.Label1.Text = Me.Label1.Text & rand.Next() & Environment.NewLine
            Next
        End Sub
        
        ''' <summary>
        ''' RNGCryptoServiceProvider种子生成随机数
        ''' </summary>
        ''' <param name="sender"></param>
        ''' <param name="e"></param>
        Private Sub BtnRNG_Click(sender As Object, e As EventArgs) Handles BtnRNG.Click
            Dim rand As Random = New Random(GetRandomSeed())
            Me.Label1.Text = ""
            For i As Integer = 0 To 10
                Me.Label1.Text = Me.Label1.Text & rand.Next() & Environment.NewLine
            Next
        End Sub
        
        ''' <summary>
        ''' Guid种子生成随机数
        ''' </summary>
        ''' <param name="sender"></param>
        ''' <param name="e"></param>
        Private Sub BtnGuid_Click(sender As Object, e As EventArgs) Handles BtnGuid.Click
            Dim rand As Random = New Random(GetRandomSeedbyGuid())
            Me.Label1.Text = ""
            For i As Integer = 0 To 10
                Me.Label1.Text = Me.Label1.Text & rand.Next() & Environment.NewLine
            Next
        End Sub
    End Class
    

    四、生成数字和字母组合的随机数
    开始想到用ASCII码,但数字、小写字母及大写字母的ASCII码是不连续的,觉得不是很理想,下面的方法感觉还不错,做个笔记。

    Public Function GetAlphanumeric() As String
            Dim str As String = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
            Dim rnd As New Random()
            '返回数字
            'Return rnd.[Next](10).ToString()
            '返回小写字母
            Return str.Substring(10 + rnd.[Next](26), 1)
            '返回大写字母
            'Return str.Substring(36 + rnd.[Next](26), 1)
            '返回大小写字母混合
            'Return str.Substring(10 + rnd.[Next](52), 1)
            '返回小写字母和数字混合
            'Return str.Substring(0 + rnd.[Next](36), 1)
            '返回大写字母和数字混合
            'Return str.Substring(0 + rnd.[Next](36), 1).ToUpper()
            '返回大小写字母和数字混合
            'Return str.Substring(0 + rnd.[Next](61), 1)
        End Function
    

    五、生成不重复随机数
    1、 从N个数中随机取出一个数,与数组第N个数调换;
    2、 从前N-1个数中随机取出一个数,与第(N-1)个数调换;
    ……
    代码通过_end-1,把生成过的数用最后一个数代替,省去删除移动的开销。
    代码如下:

    Public Function GetRandomSequence(ByVal total As Integer) As Integer()
            Dim sequence As Integer() = New Integer(total - 1) {}
            Dim output As Integer() = New Integer(total - 1) {}
    
            For i As Integer = 0 To total - 1
                sequence(i) = i
            Next
    
            Dim random As Random = New Random()
            Dim _End As Integer = total - 1
    
            For i As Integer = 0 To total - 1
                Dim num As Integer = random.[Next](0, _End + 1)
                output(i) = sequence(num)
                sequence(num) = sequence(_End)
                _End -= 1
            Next
    
            Return output
        End Function
    

    本文参考了以下博文:
    不重复随机数列生成算法
    学习过程得到网友uruseibest的帮助,表示感谢!

    展开全文
  • 随机生成一张布雷图(保证每个九宫格雷数小于5) 采用一个数组来描绘整个程序的状态, 左击\右击\双键合击 -----改变数组状态 然后用一个显示程序来显示状态, 整个程序逻辑流程够简单吧.(没有记时与排行,因为我不...
  • 滚动条模块,与 VB 的滚动条比较, 该模块支持动态生成, 支持触发消息(7KB) 22,srchlist.zip 在 list 控件里进行增量查询(3KB) 23,devfltbt.zip 可爱的按钮(141KB) 24,treedrag.zip TreeView 中节点拖动、增加、删除...
  • 滚动条模块,与 VB 的滚动条比较, 该模块支持动态生成, 支持触发消息(7KB) 22,srchlist.zip 在 list 控件里进行增量查询(3KB) 23,devfltbt.zip 可爱的按钮(141KB) 24,treedrag.zip TreeView 中节点拖动、增加、删除...
  • 凯撒加密解密程序 1个目标文件 1、程序结构化,用函数分别实现 2、对文件的加密,解密输出到文件 利用随机函数抽取幸运数字 简单 EJB的真实世界模型(源代码) 15个目标文件 摘要:Java源码,初学实例,基于EJB的真实...
  • Java开发技术大全(500个源代码).

    热门讨论 2012-12-02 19:55:48
    HelloNative.obj 用VB编译生成的目标文件 HelloNativeTest.java 测试本地化是否成功的类文件 instanceVar.java 定义一个实例成员变量 invokeByObject.java 对象实参传递示例程序 invokeByValue.java 传值调用...
  • 程序本身就不多说了、应用很基础、代码里的注释也比较详细、、 而且基本是使用api完成、所以改VB/VC++等都是很容易的 至此、也基本了解了扫雷程序的工作原理(猜测) 1.随机产生列阵、等待用户...

    程序本身就不多说了、应用很基础、代码里的注释也比较详细、、

    而且基本是使用api完成、所以改VB/VC++等都是很容易的
    至此、也基本了解了扫雷程序的工作原理(猜测)
    1.随机产生列阵、等待用户
    2.判断用户首次左键单击位置是否为雷区、如果不是则继续、若是的话、重新排列列阵、让用户首次单击区域不为雷区(我猜想是为了不让游戏这么快的结束)
    3.一旦首次判断完成、列阵则已经被确定、不再更改
    4.扫雷程序界面上提示的数字、预先并没有生成、只是在用户将要把他翻开时判断四周9个点、才显示出来的、

    “自动完成”部分我没写完、应该是坐标的判断有点问题、也就不弄了、有兴趣的同学可以参考重写(照着我这个修改可能比你重写还难)、这也是我第一次弄这方面的、所以写的很乱、、


     以下文字提示的意义
     全部采用全角字符显示、为了对齐好看
     “确”表示是程序没有预判的结果、
     13: st:='?';//用户标记的“?”
     14: st:='错';//用户标错为雷、即他本身并不是雷
     15: st:='不';//未确定、可能会改变、应该就是未翻开、但也不是雷的区域
     64: st:='空';//Hex 40 已翻开
     //151: st:='空';//未翻开
     65: st:='1';//Hex41
     66: st:='2';//程序标出的数字
     67: st:='3';
     68: st:='4';
     69: st:='5';
     70: st:='6';
     71: st:='7';
     72: st:='8';
     73: st:='9';
     142: st:='标';//用户标记为雷、并且正确的
     143: st:='雷';//真正的雷
     138: st:='未';//游戏结束后、你没有挖出的雷
     204: st:='中';//游戏结束后、你已经踩中的雷

     

    以下是代码

    展开全文
  • java源码包---java 源码 大量 实例

    千次下载 热门讨论 2013-04-18 23:15:26
     Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
  • java源码包2

    千次下载 热门讨论 2013-04-20 11:28:17
     Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
  • java源码包3

    千次下载 热门讨论 2013-04-20 11:30:13
     Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
  • java源码包4

    千次下载 热门讨论 2013-04-20 11:31:44
     Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
  • 凯撒加密解密程序 1个目标文件 1、程序结构化,用函数分别实现 2、对文件的加密,解密输出到文件 利用随机函数抽取幸运数字 简单 EJB的真实世界模型(源代码) 15个目标文件 摘要:Java源码,初学实例,基于EJB的真实...
  • 凯撒加密解密程序 1个目标文件 1、程序结构化,用函数分别实现 2、对文件的加密,解密输出到文件 利用随机函数抽取幸运数字 简单 EJB的真实世界模型(源代码) 15个目标文件 摘要:Java源码,初学实例,基于EJB的真实...
  • JAVA上百实例源码以及开源项目

    千次下载 热门讨论 2016-01-03 17:37:40
     Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
  • 实例012 保存程序并生成可执行文件 1.3 控件注册和对象引用 实例013 添加ActiveX控件 实例014 引用对象 实例015 添加第三方控件 实例016 加载和使用API阅览器 实例017 定制模板库 1.4 趣味程序 实例018 ...
  • 实例012 保存程序并生成可执行文件 1.3 控件注册和对象引用 实例013 添加ActiveX控件 实例014 引用对象 实例015 添加第三方控件 实例016 加载和使用API阅览器 实例017 定制模板库 1.4 趣味程序 实例018 ...
  • vc++ 开发实例源码包

    2014-12-16 11:25:17
    生成图标,运行到鼠标图标。 cutscene win32下实现视频播放。 C视频源代码 视频教程步骤源码 DDraw DirectX 实例 DES加密算法源代码 如题。 Detected memory leaks 检查内存泄漏源码 DigiStatic_src 自绘...
  • vc++ 应用源码包_2

    2012-09-15 14:27:40
    p2p vb实例。 p2p+technology文档。 P2P视频技术源码(含开发文档) PcShare 内含远程控制、进程管理、文件操作、视频控制、注册表操作、客户端服务器端。 redui_src_v0.9.130(DirectUI 3D) DirectUI 3D界面库...
  • vc++ 应用源码包_1

    2012-09-15 14:22:12
    p2p vb实例。 p2p+technology文档。 P2P视频技术源码(含开发文档) PcShare 内含远程控制、进程管理、文件操作、视频控制、注册表操作、客户端服务器端。 redui_src_v0.9.130(DirectUI 3D) DirectUI 3D界面库...
  • vc++ 应用源码包_6

    2012-09-15 14:59:46
    p2p vb实例。 p2p+technology文档。 P2P视频技术源码(含开发文档) PcShare 内含远程控制、进程管理、文件操作、视频控制、注册表操作、客户端服务器端。 redui_src_v0.9.130(DirectUI 3D) DirectUI 3D界面库...
  • vc++ 应用源码包_5

    2012-09-15 14:45:16
    p2p vb实例。 p2p+technology文档。 P2P视频技术源码(含开发文档) PcShare 内含远程控制、进程管理、文件操作、视频控制、注册表操作、客户端服务器端。 redui_src_v0.9.130(DirectUI 3D) DirectUI 3D界面库...
  • vc++ 应用源码包_4

    2012-09-15 14:38:35
    p2p vb实例。 p2p+technology文档。 P2P视频技术源码(含开发文档) PcShare 内含远程控制、进程管理、文件操作、视频控制、注册表操作、客户端服务器端。 redui_src_v0.9.130(DirectUI 3D) DirectUI 3D界面库...
  • vc++ 应用源码包_3

    2012-09-15 14:33:15
    p2p vb实例。 p2p+technology文档。 P2P视频技术源码(含开发文档) PcShare 内含远程控制、进程管理、文件操作、视频控制、注册表操作、客户端服务器端。 redui_src_v0.9.130(DirectUI 3D) DirectUI 3D界面库...
  • 数据库操作支持库增加读写长整数字段的功能,但受限于系统接口暂不能读写超出整数范围的数值。 7. 修改高级表格支持库,通过鼠标调整行高列宽时不改变当前光标行列号。 8. 修改BUG:在IDE中打开源代码文件(.e)后...
  • 计算机应用技术 实用手册 Xnllz 2011.7.29 ...1.STANDARD CMOS SETUP(标准CMOS设定)用来设定日期、时间、软硬盘规格、工作类类型。...5.PNP/PCI Configurations 即插即用与PCI设备设定,一般为默认。...

空空如也

空空如也

1 2
收藏数 30
精华内容 12
关键字:

vb随机生成数字代码