精华内容
下载资源
问答
  • 不重复随机数

    2019-09-22 01:10:22
    Random rd = new Random();...本例通过 Hashtable 排除重复值,即如果随机数已经取过,则重新取随机数,知道不重复。 当然也可以通过认为设置每次取随机数使用的种子值不同,避免取得相同随机数。 ...

    Random rd = new Random(); // Random 如果不指定种子值,默认使用与时间相关的种子值,

    由于运算速度较快,可能连续几次取随机数的时间无限接近,取得的随机数相同。

    本例通过 Hashtable 排除重复值,即如果随机数已经取过,则重新取随机数,知道不重复。

    当然也可以通过认为设置每次取随机数使用的种子值不同,避免取得相同随机数。

     

            /// <summary>
            /// 从1(含)开始到count(含) 取 count 个不重复的随机整数
            /// </summary>
            /// <param name="counts"></param>
            /// <returns></returns>
            public static int[] getRandom(int count)
            {
                Random rd = new Random();
                Hashtable ht = new Hashtable();

                int value = 0;
                int[] intArray = new int[count];

                for (int i = 0; i < count; i++)
                {
                    value = rd.Next(1, count + 1);

                    //已存在则重新取随机数
                    while (ht.Contains(value))
                    {
                        value = rd.Next(1, count + 1);//不包含counts+1
                    }

                    intArray[i] = value;
                    ht.Add(value, value);
                }

                return intArray;
            }

    转载于:https://www.cnblogs.com/gaaban/p/5966507.html

    展开全文
  • php怎么生成不重复随机数php生成不重复随机数的方法:首先利用range函数创建一个包含指定范围的元素的数组;然后利用shuffle函数把数组中的元素按随机顺序重新排列;最后取出数组中的一段元素即可。实现原理:将数组...

    php怎么生成不重复随机数

    php生成不重复随机数的方法:首先利用range函数创建一个包含指定范围的元素的数组;然后利用shuffle函数把数组中的元素按随机顺序重新排列;最后取出数组中的一段元素即可。

    a58ed34665a13ace76ba006c4e9d6495.png

    实现原理:

    将数组顺序随即打乱 ,然取该数组中的某一段。

    (相关视频推荐:java课程)

    方法如下:

    方法一:

    range() 函数创建一个包含指定范围的元素的数组。

    shuffle() 函数把数组中的元素按随机顺序重新排列。<?php

    //range 是将1到100 列成一个数组

    $numbers = range (1,100);

    //shuffle 将数组顺序随即打乱

    shuffle ($numbers);

    //array_slice 取该数组中的某一段

    $result = array_slice($numbers,0,3);

    print_r($result);

    ?>

    方法二:<?php

    $numbers = range (1,20);

    srand ((float)microtime()*1000000);

    shuffle ($numbers);

    while (list (, $number) = each ($numbers)) {

    echo "$number ";

    }

    ?>

    方法三:

    用PHP,在1-20间随机产生5个不重复的值<?php

    function NoRand($begin=0,$end=20,$limit=5){

    $rand_array=range($begin,$end);

    shuffle($rand_array);//调用现成的数组随机排列函数

    return array_slice($rand_array,0,$limit);//截取前$limit个

    }

    print_r(NoRand());

    ?>

    或者不shuffle的话<?php

    $tmp=array();

    while(count($tmp)<5){

    $tmp[]=mt_rand(1,20);

    $tmp=array_unique($tmp);

    }

    print join(',',$tmp);

    ?>

    相关推荐:php培训

    php怎么生成不重复随机数的教程已介绍完毕,更多请关注跳墙网其他文章教程!

    php怎么生成不重复随机数相关教程

    RFID巡更机怎么让枯燥的巡逻变得有趣呢?

    巡逻检查是一份看似简单而责任重大的工作,是人们人身、财产安全的一份保障。特别是在楼宇小区、石油化工领域意义重大。然而一些巡逻人员对巡逻工作有抵触心理,每年因其工作的疏忽而引发的事故不计其数。因此,作为巡检人员必备的巡更机设备,它能使得巡逻

    php如何查询mysql数据并显示

    php查询mysql数据并显示的方法:首先在数据库内创建表并插入多条数据;然后创建文件,使用header方法将页面的编码格式设置为【utf-8】;接着选择要操作的数据库,并将结果集数据转换为数组形式;最后在浏览器打开文件查看结果。 php查询mysql数据并显示的方

    php怎么安装mysqli扩展

    php安装mysqli扩展的方法:1、找到ext目录下的mysqli;2、执行【/usr/local/php7.2/bin/phpize】命令;3、执行【make make install】命令编译安装。 具体步骤如下: (推荐教程:java视频教程) 1、找到php7.2 ext目录下的mysqli 2、输入 /usr/local/php7.2/

    WIN10怎么初始化磁盘

    WIN10初始化磁盘的方法:1、在桌面,找到“此电脑”,右键选择“管理”;2、点击进入到“磁盘管理”,如果有新硬盘,系统就会自动弹出初始化磁盘的提示;3、在弹出的“初始化磁盘”界面选择“磁盘分区形式”,再点击“确定”,等待初始化完成即可。 win10系

    php导出excel出现乱码怎么办

    php导出excel出现乱码的解决方法:在处理完数据之后,输出excel文件之前,利用ob_end_clean()函数清空缓冲区并关闭输出缓冲即可。 解决方法: 在处理完数据之后,输出excel文件之前利用 ob_end_clean() 函数进行处理。 ob_end_clean清空(擦除)缓冲区并关闭

    PHP中如何实现重定向网页跳转页面

    PHP中重定向网页跳转页面的方法:1、利用【header()】函数进行重定向;2、利用HTML头部中的meta标签;3、利用javascript进行跳转。 PHP中重定向网页跳转页面的方法: 第一种:利用header()函数进行重定向,这也是我用的较多的。(注意!locationhe和“:”之

    php怎么去掉字符串两头的引号

    php去掉字符串两头的引号方法:首先确定是否有逗内号和双引号容;然后读取CSV文件,并将数据分割;最后使双引号中的逗号不分开。 php去掉字符串两头的引号方法: 1、在编写CSV文件时,您需要首先确定是否有逗内号和双引号容,并按照以下步骤执行相应的处理代

    win10网络发现已关闭网络计算机和设备不可见怎么办

    解决方法:1、打开“控制面板”,依次选择点击“网络和Internet”-“网络和共享中心”-“更改高级共享设置”;2、在打开的设置界面中选择“启用网络发现”和“启用文件和打印机共享”,再点击“保存更改”即可。 在Windows10系统里发生网络发现已关闭,网络

    展开全文
  • 易语言取不重复随机数源码,取不重复随机数
  • 主要介绍了ASP生成不重复随机数的方法,需要的朋友可以参考下
  • 不重复随机数.rar

    2020-04-06 23:50:34
    不重复随机数.rar
  • 不重复随机数生成器

    2017-04-13 17:42:51
    不重复随机数生成器
  • java产生不重复随机数【史上最直接】①本程序分“包含0”和“不包含0”两种情形,可自由选择。②当“数组长度”大于“不重复随机数个数”程序会自动退出。③若想自定义修改不重复随机数范围,可在源代码自行修改。...

    935bb165bbfb53f470df8935aedb102e.png

    0de2acef684baa8887d7570d86f436c5.png

    java产生不重复随机数【史上最直接】

    ①本程序分“包含0”和“不包含0”两种情形,可自由选择。

    ②当“数组长度”大于“不重复随机数个数”程序会自动退出。

    ③若想自定义修改不重复随机数范围,可在源代码自行修改。

    import java.util.Random;

    import java.util.Scanner;

    public class CSDN_procut {

    public static void main(String[] args) {

    Random suiji = new Random();

    Scanner input = new Scanner(System.in);

    int kz;

    System.out.print("你想生成的不重复随机数范围是?不重复随机数范围包含0请按4,不重复随机数范围不包含0请按6");

    int xz=input.nextInt();

    switch (xz)

    {

    case 4:

    {

    System.out.println("好的,你已经选择包含0");

    System.out.println("你想产生的不重复随机数范围是0到多少?请输入");

    kz=input.nextInt();

    int leng = 0;

    System.out.println("请输入数组长度");

    leng = input.nextInt();

    int[] array;

    array = new int[leng];

    if(array.length>kz+1)

    {

    System.out.println("数组长度大于随机数个数,会有重复的,请保证数组长度小于等于随机数个数");

    break;

    }

    int i=0;

    int k=0;

    int t=0;

    int j=0;

    for(;i

    {

    if(k==0)

    {

    array[i]=suiji.nextInt(kz+1);

    k=k+1;

    }

    else

    {

    t=suiji.nextInt(kz+1);

    for(j=0;j

    {

    if(array[j]==t)

    {

    j=-1;

    t=suiji.nextInt(kz+1);

    continue;

    }

    }

    array[j]=t;

    ++k;

    }

    }

    System.out.println();

    System.out.println();

    for(int kk=0;kk

    {

    System.out.println("第"+(kk+1)+"个数据是:"+array[kk]);

    }

    break;

    }

    case 6:

    {

    System.out.println("好的,你已经选择不包含0");

    System.out.println("你想产生的不重复随机数范围是1到多少?请输入");

    kz=input.nextInt();

    int leng = 0;

    System.out.println("请输入数组长度");

    leng = input.nextInt();

    int[] array;

    array = new int[leng];

    if(array.length>kz)

    {

    System.out.println("数组长度大于随机数个数,会有重复的,请保证数组长度小于等于随机数个数");

    break;

    }

    int i=0;

    int k=0;

    int t=0;

    int j=0;

    for(;i

    {

    if(k==0)

    {

    array[i]=suiji.nextInt(kz)+1;

    k=k+1;

    }

    else

    {

    t=suiji.nextInt(kz)+1;

    for(j=0;j

    {

    if(array[j]==t)

    {

    j=-1;

    t=suiji.nextInt(kz)+1;

    continue;

    }

    }

    array[j]=t;

    ++k;

    }

    }

    System.out.println();

    System.out.println();

    for(int kk=0;kk

    {

    System.out.println("第"+(kk+1)+"个数据是:"+array[kk]);

    }

    break;

    }

    default:

    {

    System.out.println("输入有误,请重新输入");

    break;

    }

    }

    }

    }

    本文地址:https://blog.csdn.net/qweskdldlsg/article/details/112664597

    如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

    展开全文
  • 易语言取不重复随机数.rar
  • C#生成不重复随机数列表实例的代码,需要的朋友可以参考一下
  • sql 生成随机数 以及不重复随机数
                   

    背景:想在表中随机取10条记录,让取出来的数据不重复(表中必须是有个递增列,且递增从1开始间隔为1)。 

    数据表:

    CREATE TABLE testable 

    id INT  IDENTITY(1,1), 
    myname  NVARCHAR(1000), 
    insertedTime DATETIME DEFAULT SYSDATETIME() 
    )

     

    中共有100条数据,如下

    image 省略……

     

     

     

     

    1.     首先想到的是MSSQL自带的newid()

     

    采用这种方法时,需要将表中所有记录与newid()生成的值进行比较从而进行排序。因此,如果表中的记录较多,操作会非常缓慢。

    image

     

     

     

    USE  Gift163DB
    go
    SELECT  TOP  14  * FROM  dbo.testable   ORDER BY NEWID()

     

    缺点:1. 取出的10条数据会出现重复      2.当数据表数据很多的时候,速度将很慢 (每次重新计算newid)

     

     

     

    2. 自定义函数返回一个表,表中记录的是随机生成的N个id值。

     

    1)rand()生成随机数        rand()*count,CEILING,floor用法 

    2)如果临时表中无此数据,则放入,否则重新生成

    3)直到N条记录已经生成

     

    注意:标量函数function内不能出现rand()方法,变通下生成个view  v_random,然后在函数内调用 v_random获取随机数

    create view v_random
    AS
       
       select CEILING(rand()*51) as random    --注意51,生成的是1到51之间的数字,因为事先知道数据库中有51条记录
    go

     

     

    自定义函数代码如下:

     

    ALTER FUNCTION  randomIntStringWithCommaSplit(@counts int) –counts 表明返回的个数          
    RETURNS @t TABLE (filed1 int)  --返回表@t,有个int类型的 field列
    AS
    BEGIN
      
      DECLARE @randomInt INT
      DECLARE @i INT
      SET @i=0
            WHILE @i<@counts
            BEGIN
              
                     select @randomInt= random FROM v_random
              
              --不能是 SET @randomInt=SELECT random FROM v_random
              IF NOT EXISTS(SELECT TOP 1 * FROM @t WHERE filed1=@randomInt)
               BEGIN
                 INSERT INTO @t VALUES (@randomInt)
                 SET @i=@i+1
               END
            END
      RETURN 
      
    END

     

    上面函数返回的是一个表类型,表中有个int字段,存放要查找的N个不同的keyId  (keyId为要查找表的递增列,且递增为1,从1开始递增)

    所以返回的表中存放的数据是 dbo.Articles中的id列的值。

     

     

    使用:调用上面的自定义函数返回10个不重复的id

     

    SELECT * FROM randomIntStringWithCommaSplit(10)

     

    下面是几次的执行结果,可以看到每个结果中都不存在重复的值(fidled1为临时表的唯一列)

    image image image image image

     

     

    最后通过  select * from table  where id in  randomIntStringWithCommaSplit(10) ,这样就可以从table中随机取出10条不重复的数据来了。

     

     

     

     

    3.存储过程取不重复的数据

     

    --dbo.getRandomDataFromTable 
    --输入参数  @tableName  nvarchar(100),--表名 
    ---@dataCount  nvarchar(100)--取N条数据

     

    输出结果集:列id,存放N条要查询的数据

    USE Gift163DB
    GO
    IF OBJECT_ID ( 'dbo.getRandomDataFromTable', 'P' ) IS NOT NULL 
        DROP PROCEDURE dbo.getRandomDataFromTable;
    GO
    CREATE PROC  [dbo].[getRandomDataFromTable]
    @tableName  nvarchar(100),
    @dataCount  nvarchar(100)
    AS
    BEGIN
      --SET NOCOUNT ON;
        
        DECLARE @t TABLE (id INT)   --临时表
        DECLARE @i  INT             --临时变量
        DECLARE @randomInt INT      --每次随机生成的整数
        DECLARE @tableCount INT     --表的行数
        
        --先获取表中最大数据的id
       EXEC(  'SELECT '+@tableCount+'=COUNT(*) FROM  '+@tableName+'')
        SET @i=0
        WHILE @i<@dataCount
        BEGIN
          SELECT @randomInt=CEILING(RAND()*@tableCount)
          
          IF NOT EXISTS(SELECT TOP 1 * FROM @t)
          BEGIN
              
              INSERT INTO @t VALUES (@randomInt)
              SET @i=@i+1
          END
          
        END
        
        
        --打印出取出的表的id
        SELECT * FROM @t
        
           
      
    END
    Go

     

     

    生成测试数据100条

    USE Gift163DB
    GO
    if exists (select 1
                from  sysobjects
               where  id = object_id('testable')
                and   type = 'U')
       drop table testable
    go
    CREATE TABLE testable
    (
    id INT  IDENTITY(1,1),
    myname  NVARCHAR(1000),
    insertedTime DATETIME DEFAULT SYSDATETIME()
    )
    //插入100条数据
    DECLARE @i INT
    SET @i=1
    WHILE @i<100
    BEGIN
      INSERT INTO tesTable (myname) VALUES ('我的名字是'+CONVERT(NVARCHAR, @i) )   --将 varchar 值 '我的名字是' 转换成数据类型 int 时失败。
      SET @i=@i+1
    End
      

     

     

    调用上面的存储过程从表testable取10条不重复id

     

     

    USE Gift163DB
    go
     exec    getRandomDataFromTable  'testable',10

     

     

     

    image image image

    自定义的存储过程不会出现重复的记录

     

     

     

     

     

    4.改进的存储过程,最终存储过程

     

    输入参数3个:表名,表的递增列名 , 要取的N条数据

     

    USE Gift163DB
    GO
    IF OBJECT_ID ( 'dbo.getRandomDataFromTable', 'P' ) IS NOT NULL 
        DROP PROCEDURE dbo.getRandomDataFromTable;
    GO
    CREATE PROC  [dbo].[getRandomDataFromTable]
    @tableName  nvarchar(100),
    @identityKey NVARCHAR(100),
    @dataCount  nvarchar(100)
    AS
    BEGIN
      --SET NOCOUNT ON;
       
        --DECLARE @t TABLE (id INT)   --临时表
        DECLARE @i  INT             --临时变量
        DECLARE @randomInt INT      --每次随机生成的整数
        DECLARE @tableCount INT     --表的行数
       
       
        
        --先获取表中最大数据的id
       DECLARE @str NVARCHAR(3000)
       SET @str='SELECT @tableCount=COUNT(*) FROM  '+@tableName
       exec sp_executesql @str, N'@tableCount int output', @tableCount output
      
      
       create TABLE #sdf (id int)
       
       
       
        SET @i=0
        WHILE @i<@dataCount AND @i<@tableCount
        BEGIN
          SELECT @randomInt=CEILING(RAND()*@tableCount)
          
          IF NOT EXISTS(SELECT TOP 1 * FROM #sdf WHERE id=@randomInt)
          BEGIN
              
              INSERT INTO #sdf VALUES (@randomInt)
              SET @i=@i+1
          END
          
        END
        
         
        --取出数据
        DECLARE @str2 NVARCHAR(2000)
        
        SET @str2=' SELECT  * FROM '+@tableName
            +' where '+@identitykey
            +' in '
            +' (select id from #sdf )'
            
        
        
        
        PRINT @str2
        --select id from  @t
        
        EXEC (@str2)
        --exec sp_executesql @str2,N'@t TABLE',@t OUTPUT
           
           
       
         
      
    END

     

    调用存储过程:随机取10条数据

    image image

     

    最终的存储过程不管你随机取多少条数据(只要每次取的数据数目小于表中行数) 就可以保证每次取的数据不会重复。当然前提是,取的表必须有个递增列,而且以1开始,递增1.

    昂首阔步,不留一点遗憾
               

    再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

    展开全文
  • 我们知道 Random random = new Random() 中可能会获取到重复的随机数那么假设要获取1到33之间的六个不重复随机数应该怎么做呢?首先定义一个数字数组存储1到33int[ ] redBall = new int[33[;for(int i = 0;iredBall...
  • js 不重复随机数 求20--100之间10个不重复的随机数
  • java生成不重复随机数的方法发布时间:2020-07-01 11:00:00来源:亿速云阅读:225作者:Leahjava怎么实现生成不重复随机数 ?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题...
  • 写下面的代码时碰到的一些问题 包括生成不重复随机数和随机数相同 买彩票规则:“双色球”每注投注号码由6个红色球号码和1个蓝色球号码组成。 红色球号码从1–33中选择;蓝色球号码从1–16中选择。 重点是生成不重复...
  • 易语言源码易语言取不重复随机数.rar
  • Js 不重复随机数

    2020-05-12 11:30:25
    * 获取不重复随机数 * @param integer start 随机数最小值 * @param integer end 随机数最大值 * @param integer size 随机数获取数量 最小为1,默认1 * @return integer|array 如 1或者[2,4,7,9] */ ...
  • 获取不重复随机数,自定义取值范围 import java.util.HashSet; import java.util.Set; /** * <p> * 获取不重复随机数 * </p> * * @author passer * @since 2021-02-25 */ public class ...
  • 例如,怎么生成20个,100以内的不重复随机数?五秒时间,思考下怎么做?问题挺简单,做起来还是比较复杂。如果用超级处理器,就非常方便,只需要简单的三步,具体操作步骤如下:操作步奏第一步,打开超级处理器,第...
  • Android 如何生成不重复随机数?就是点击一下鼠标,就生成下一个随机数,但是生成的随机数不与之前出现过的随机数相同。
  • 本文汇总了5种生成不重复随机数的方法,其中方法一、二、三是本人常用的方法,方法四五来至度娘。其余方法还是有的,也欢迎大家将遗漏的方法告之,大家共同进步
  • 一个不错的算法,很简单,但有效。不过如果范围比较大,则占用内存大,就不推荐.../*** 生成不重复随机数的一种算法。***/public class T {public static void main(String[] args) {// 种子你可以随意生成,但不能...
  • VBS 生成不重复随机数代码[0-10]
  • 生成不重复随机数 javajava生成随机数可以使用Math类中的方法。不随机可以使用List进行判断存储。(推荐教程:java教程 )1 . 调用java.lang下面Math类中的random()方法产生随机数新建一个文件后缀名为java的文件,...
  • PHP产生不重复随机数的方法无论是Web应用,还是WAP或者移动应用,随机数都有其用武之地。PHP项目中,PHP程序员是需要经常的和随机数或者随机数组打交道,所以,本文就分享PHP如何产生不重复随机数常用的`几种方法!...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,375
精华内容 1,750
关键字:

不重复随机数