小tip:生成一组不重复的随机数(去重的方法)

    var arr = [];
  
    for(var i=0;i<150;i++){
        // num为0-100的随机数
        var num = Math.round(Math.random()*100);

        var state  = true;     
        for(var j=0;j<arr.length;j++){     //遍历数组中的每一项,和新添加的num比较,如果重复,则不向数组中添加,i后退一位;否则加入数组中
            if(num==arr[j]){
                state = false;
                i--;
                break;
            }
        }
        if(state){
            arr.push(num);
        }
    }        
时间: 2024-09-29 18:00:22

小tip:生成一组不重复的随机数(去重的方法)的相关文章

论 Java 中获取一组不重复的随机数之性能问题

今天在做一个Java项目, 用到了使用一组不重复的随机数问题, 不管怎么做随机数里面总有几个是重复的. 于是上网去找资料, 在网上找到的资料中大部分都是一个思路: 网上的思路一:(性能不理想) 先生成一个随机数, 然后在生成下一个随机数的时候和以前的随机数进行匹配, 如果里面有当前生成的随机数, 那么重新去生成, 直到之前所生成的随机数组中没有当前所生成的那个数字为止. 这样做虽然能实现生成一组不重复的随机数, 但是性能不是很理想, 假如我们需要生成10个数字, 在生成第一的时候, 不用匹配,

随机生成一组不重复的随机数组

public string RadomNumArray() { Random r = new Random(); int a = 0; int[] num = new int[6]; string text = ""; for (int i = 0; i < 6; i++) {//循环生成6个数字 a = r.Next(0, 99);//随机生成0到99之间的数字 num[i] = a; for (int k = 0; k < num.Length; k++) {//遍历数

js获取一组不重复的随机数的方法

一.基本思路: 建立一个数组,每次随机取走一个,放到新的数组中. 二.实现方法 1.方法一: (1)创建一个数组arr,数组元素为所有可能出现元素的集合: (2)通过num=Math.floor(Math.random()*num_total*first_value)方法获取随机数. 随机数的范围为0-arr.length; (3)通过push[num]获取数组该位置的元素: (4)通过arr.splice(num,1)删除该元素: 完整写法为: function roa(ar) { var a

PHP如何批量生成手机号-使用PHP 如何生成一组不重复的手机号码?

<?php //匹配手机号的正则表达式 #^(13[0-9]|14[47]|15[0-35-9]|17[6-8]|18[0-9])([0-9]{8})$# $arr = array( 130,131,132,133,134,135,136,137,138,139, 144,147, 150,151,152,153,155,156,157,158,159, 176,177,178, 180,181,182,183,184,185,186,187,188,189, ); for($i = 0; $i

如何获取不重复的随机数

注意:如何取一组不重复的随机数,这种方法的前提是取数的这个数组没有重复的数方可. (1)换位排除法 1 /** 2 * @param arr 取数的数组 3 * @param noRepeatNumbers 要获取不重复数的个数 4 */ 5 public static int[] getNoRepeatNumByChanget(int[] arr, int noRepeatNumbers) { 6 7 int[] newArr = new int[noRepeatNumbers]; 8 for

C#生成不重复的随机数(转)

我们在做能自动生成试卷的考试系统时,常常需要随机生成一组不重复随机数的题目,在.net Framework中提供了一个专门用来产生随机数的类System.Random. 对于随机数,大家都知道,计算机不可能产生完全随机的数字,所谓的随机数发生器都是通过一定的算法对事先选定的随机种子做复杂的运算,用产生的结果来近似的模拟完全随机数,这种随机数被称作伪随机数.伪随机数是以相同的概率从一组有限的数字中选取的.所选数字并不具有完全的随机性,但是从实用的角度而言,其随机程度已足够了.伪随机数的选 择是从随

集合之列表:生成不重复的随机数

1 package com.jdk7.chapter4; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 import java.util.Random; 6 7 /** 8 * 指定范围类生成一组指定个数的随机数 9 * 10 * @author Administrator 11 * 12 */ 13 public class UnRepeatRandomNumber { 14 private int min; 15 pri

一亿个不重复的随机数算法

最近浏览“程序员论坛”时发现不少好帖,增长了不少知识,现拿其中一则为例与大家共同分享心得. 某人提出一个问题:怎样才能生成一亿个不重复的随机数? 问题表述起来很简单,似乎只要弄明白什么叫随机数以及怎样用电脑生成随机数,就能解决问题. 随机数,个人理解为一定范围内出现的毫无规律的数,比如扔一个骰子,落在桌面上时朝上的一面所表示的数就是随机数,这个数只能在1到6的范围内,但具体是什么数,谁也不能肯定,因为它没有规律.一组不重复的随机数,对扔骰子来说就是扔出六个不一样的数来,再比如洗一次扑克牌,洗完后

用C#生成不重复的随机数

对于随机数,大家都知道,计算机不可能产生完全随机的数字,所谓的随机数发生器都是通过一定的算法对事先选定的随机种子做复杂的运算,用产生的结果来近似的模拟完全随机数,这种随机数被称 作伪随机数.伪随机数是以相同的概率从一组有限的数字中选取的.所选数字并不具有完全的随机性,但是从实用的角度而言,其随机程度已足够了.伪随机数的选 择是从随机种子开始的,所以为了保证每次得到的伪随机数都足够地"随机",随机种子的选择就显得非常重要.如果随机种子一样,那么同一个随机数发生器产生 的随机数也会一样.一