注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

郑浩 廊坊师范学院信息技术提高班 十一期

腾飞的开始

 
 
 

日志

 
 

十个不重复的随机数  

2014-02-17 21:25:08|  分类: 技术类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
      以前在百例和课本中总是遇见与随机数有关的代码,总是敲出来找到在某个范围内的几个数而已,从没想过还要求不重复,以前认为,随机数就应该可以有重复的吗。昨天米老师在课 结束的时候说让我们找出不重复的10个或几个随机数。这才引起我对随机数的兴趣。
  首先我们找到10个随机数,还是比较简单的,我的长提设计和代码如下:
十个不重复的随机数 - 郑浩 - 郑浩 廊坊师范学院信息技术提高班 十一期
 
Option Explicit

    Dim m As String
    Dim n As String
    Dim x As String
    Dim i As Long
    Dim a(10)
Private Sub Command1_Click()
 m = Text1.Text
    n = Text2.Text
   For i = 1 To 10
        a(i) = Int((n - m + 1) * Rnd + m)
      Label3.Caption = Label3.Caption & Str(a(i))
   Next i
   
End Sub

这样就是产生的随机数里面,常常会有重复的数,为了得到不重复的随机数,代码修改如下:
m = Text1.Text
    n = Text2.Text
    
 
          a(1) = Int(Rnd * (n - m + 1) + m)
         
          Label3.Caption = a(1)
             
         For i = 2 To 10
           flag = 1  '不重复
           temp = Int(Rnd * (n - m + 1) + m)
           For j = 1 To i - 1
                 If temp = a(j) Then
                    i = i - 1
                    flag = 0 '重复
                    Exit For
                 End If
           Next j
         If flag = 1 Then
              a(i) = temp
              Label3.Caption = Label3.Caption & Str(a(i))
         End If
                        
         Next i

这个代码还是可以完成要求的(产生10个不重复的随机数),但是在代码调试过程中 遇到了这样一种奇怪的现象,就是把
flag=1 放在for  i= 2 to10 的前面时 产生数目不同的随机数,7个、9个、
十个不重复的随机数 - 郑浩 - 郑浩 廊坊师范学院信息技术提高班 十一期
 这个问题还没有弄明白到底是什么原因,还希望看到此博客的朋友们能帮忙解释一下............未完 待续
  评论这张
 
阅读(73)| 评论(17)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017