• 【ASP】在特定的范围内产生N个不同的随机数


    ASP产生一个随机数不难。就两条特定语句:

    <%
    Randomize 
    x=int(20*rnd+1)
    %>

    以上的两条语句。表示从1~20这个范围内产生随机数,而且这些随机数都是整数。

    那么,要在1~20连续产生20个不同的随机数。也就是随机排列1~20。该怎么解决呢?

    首先,我们须要数组来存储这20个不同的随机数。

    ASP能够用例如以下的两种方式定义一个容量为20数组:

    <%
    dim number(20)
    %>

    <%
    dim number
    redim number(20)
    %>
    

    当中。第二组后接number= Session("xx") 能接住前一页面通过Session("xx")=number。传递过来的number数组。

    要在1~20连续产生20个不同的随机数,也就是随机排列1~20的基本思想是:

    首先在1~20产生一个随机数X。然后对这个之前产生的数据进行遍历。推断是否存在有数等于这个新产生的随机数的,假设有,立flag,

    然后对之前的数据遍历完成之后,推断flag是否立起来。

    假设是。就不加入这个随机数进数组。又一次产生随机数并收起flag,再又一次遍历已有的数据中是否已有这个随机数,

    假设否。就加入,直到20个数据产生完成。

    最后输出这个20个数据

    详细实现的代码例如以下:

    <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
    <%
    '禁止缓存'  
    Response.CacheControl="no-cache"  
    Response.Expires=-1  
    Response.Charset="UTF-8"    '配合第一行设定网页编码' 
    
    '核心代码'
    dim RandomArray(20)	'定义一个长20的一位数组'
    i=0
    do while i<UBound(RandomArray,1)
    	Randomize 
    		x=int(20*rnd+1)
    	flag=true
    	For j=0 To UBound(RandomArray,1)
    		if RandomArray(j)=x	then
    			flag=false
    			exit for
    		end if
    	next
    	if flag=true then
    		RandomArray(i)=x
    		i=i+1
    	end if
    loop
    
    '输出数组'
    For i=0 To UBound(RandomArray,1)
    	Response.Write RandomArray(i)&","
    Next
    
    %>

    执行结果例如以下:


    能够发现,每次刷新这个页面,此20个数据都是不同的。

  • 相关阅读:
    安卓开发环境搭建
    css3实现漂亮的按钮链接
    mouseover与mouseenter的区别
    踩了一个在body上添加多个代理事件的坑
    javascript与生活:papago行车记录仪播放器golife无卫星图修复方法
    grunt入门之windows下搭建一个最基本的grunt项目
    一个简单的跨浏览器的弹出窗口的实现
    如何查询mysql中执行效率低的sql语句
    用PHP读写音频文件的信息(支持WMA和MP3)
    PHP功能类[获取客户端IP、页面跳转]
  • 原文地址:https://www.cnblogs.com/claireyuancy/p/6905242.html
Copyright © 2020-2023  润新知