随机生成指定范围内的随机数,放在指定长度的数组内

在群里遇到有人提出一道题:1、创建一个长度为5的空数组arr。

             2、生成一个[2,32]之间的随机整数rand。

             3、把随机整数插入到arr内,如果arr内已存在与rand相同的数,则重新生成随机整数并插入(需要使用递归实现,不能使用for/while等循环)。

             4、最后输出一个长度为5,且内容不重复的数组arr。

首先:生成指定范围的随机整数的公式:

Math.floor(Math.random()*(max-min+1)+min);

之后看完整的方法:

        var arr = new Array(5);
        function generateRand(index,arr){
            if(index>=5){
                return;
            }
            let rand=Math.floor(Math.random()*(32-2+1)+2);
            if(!arr.includes(rand)){
                arr[index]=rand;
                index++;
                generateRand(index,arr);
            }else{
                generateRand(index,arr);
            }

        }
        generateRand(0,arr);
        console.log(arr);

原文地址:https://www.cnblogs.com/fqh123/p/11479270.html

时间: 2024-12-07 23:23:37

随机生成指定范围内的随机数,放在指定长度的数组内的相关文章

随机生成防伪码 带有前缀 可自行设置长度

<?php/* 自动生成防伪码 带有前缀 可自行设置长度 */$length = 10;$result = codingone($length);echo $result;function codingone($num){ /* 判断生成规则 */ $str_arr = array('0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q',

生成N个不同的随机数(C++,范围0~N-1)

做项目的过程往往具有随机选取等过程.此笔记主要给出了随机生成N个不同的随机数的两种方法,然后简单的介绍了C++中随机数主要用到的函数srand,rand和time.最后给出了一个简单的例子,即从一个含有N张图片的文件夹中随机选取K张图片存入另外一个文件夹. 一:产生N个不同随机数的方法 #include <stdio.h> #include <stdlib.h> #include<time.h> #define N 20 #define K 10 void swap(i

在1-10000中随机生成100个数

题意:在1-10000中随机生成100个数,1-10000已经放在数组中,要求时间和空间都要O(1). 思路:因为空间要O(1),所以我们可以想到这一定是在原本数组的基础上操作,时间也要O(1)的话,证明我们无法Hash后再判重.所以我们可以这么想用一个指针表示目前已经生成好的随机数,那么这个指针从1开始,每次都从剩下的数中随机取一个和当前指针交换就可以完成了,自己写了代码,有错求指出来. import java.util.ArrayList; import java.util.HashSet;

统计随机生成的数出现次数

统计随机生成的数出现次数 /** * 功能:定义一个一维数组,其中存储随机生成的1000个1到100以内的整数,统计每个整数出现的次数 * 时间:2014年6月4日16:03:54 * 作者:cutter_point */ package com.lesson4; import java.util.*; public class Demo4_9 { public static void main(String [] args) { //1.生成1000个100以内的整数 int a[]=new

SQL Server生成指定范围内的随机数

在开发中很多时候,我们都会遇到这种需要生成一个指定范围随机数的情况.而且在很多语言中比如Java.C#.SQl等,都会有一个函数生成一个类似于0.234273983423789的随机小数,而所有的随机数都是通过这个最基本的随机数(0.234273983423789)变化过来的. 下面我说一下生成指定范围随机数的思路,比如我要生成一个100-999范围内的随机数,我就要保证我写的生成随机数的表达式所生成的值,最大是999,最小是100.还有就是要明白一个数学里的小道理,0.99去乘一个数字所得的结

C#在一段数字区间内随机生成若干个互不相同的随机数

/// <summary>        /// Random ra=new Random();  系统自动选取当前时前作随机种子:        /// Random ra=new Random(6) 指定一个int型的参数作为随机种子;        /// ra.Next(); 返回一个大于或等于零而小于2,147,483,647的随机数        /// ra.Next(20);返回一个大于或等于零而小于20的随机数        /// ra.Next(1,20); 返回一个大于

python内置的一个好玩的函数-zip,并且巧妙的实现按概率随机生成有限个数的字符串。

python有一个比较有意思的内置函数-----zip,可以把传入的两组list进行一个组合变形,再输出子元素为tuple的list,不过变形的方式比较抽象. 举个例子: A=[1,2,3,4,5,6] B=['a','b','c','d'] v1=zip(A,B) v1的结果为: [(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')] 比较直观的理解就是,A和B是两道拉链上的扣子,生成的list的子tuple,每一组tuple就是一对扣好了的扣子,并且从每组list的

生成指定范围的一组随机数并求平均值

Math.random()是令系统随机选取大于等于 0.0 且小于 1.0 的伪随机 double 值,是Java语言常用代码. 随机数生成20~90之间的数值,并求平均数: public class Random01 { public static void main(String[] args) { int len = 5; int sum = 0; int[] arr = new int[len]; for (int i = 0; i < len; i++) { arr[i] = (int

js中Math.random()生成指定范围数值的随机数

http://www.111cn.net/wy/js-ajax/57062.htm Math.random() 这个方法相信大家都知道,是用来生成随机数的.不过一般的参考手册时却没有说明如何用这个方法来生成指定范围内的随机数.这次我就来详细的介绍一下Math.random(),以及如何用它来生成制定范围内的随机数.w3school的random()教程定义和用法 random() 方法可返回介于 0 ~ 1 之间的一个随机数.语法 Math.random() 返回值 0.0 ~ 1.0 之间的一