`

获取指定个数指定范围的随机数

阅读更多

我有这样的需求:

我有100道试题,id是0到99,我想从中找出20道试题组成一个试卷,要求试题不重复,打乱顺序:

/**
	 * 产生无重复的随机数    sumInt:总样本 (0....sumInt-1)
	 * resultSum: 产生的随机数个数
	 * 
	 * @return
	 */
	public static int[] randoms(int sumInt, int resultSum) {
		Random r = new Random();

		int temp1, temp2;
		
		//Total sample
		int send[] = new int[sumInt];//0....(sumInt-1)
		for (int i = 0; i < sumInt; i++) {
			send[i] = i;
		}
		int len = send.length;//The length of the total sample
		int returnValue[] = new int[resultSum];//Random number to return
		for (int i = 0; i < resultSum; i++) {
			temp1 = Math.abs(r.nextInt()) % len;
			temp2 = send[temp1];
			returnValue[i] = temp2;
			if (temp1 != len - 1) {
				send[temp1] = send[len - 1];
				send[len - 1] = temp2;
			}
			len--;
		}
		return returnValue;
	}

 

测试:

public static void printArray(int[] ints) {

for (int i = 0; i < ints.length; i++) {

System.out.print(ints[i]);

if (i < ints.length - 1) {

System.out.print(" ,");

}

}

System.out.println();

}

 

@Test

public void test_randoms(){

printArray(SystemUtil.randoms(5, 3));

}

 

分享到:
评论

相关推荐

    shell脚本如何获取随机数random

    获取种子之后,文章中给出了一个名为rnd2的函数来生成指定范围内的随机数。这个函数检查环境变量$RANDOM是否存在,如果不存在则从/dev/urandom获取一个种子,否则使用$RANDOM作为种子。然后,利用awk工具生成一个...

    易语言取指定位数的随机数

    易语言提供了生成随机数的函数,允许开发者根据需求获取指定位数的随机数值。这通常涉及到数学和算法的知识,以及对易语言内置函数的理解。 生成随机数的函数在易语言中通常是通过“随机数”模块实现的,这个模块...

    取指定位数的随机数.rar

    例如,你可以生成一个大于等于0且小于2^n的随机数,然后通过位移操作来获取n位的随机数。 4. 随机数种子: `随机数`函数的随机性依赖于种子。默认情况下,易语言使用系统时间作为种子,但为了得到可重复的随机序列...

    易语言源码取指定位数的随机数.rar

    本资源"易语言源码取指定位数的随机数.rar"是一个与易语言相关的代码示例,用于演示如何在易语言中生成指定位数的随机数。 随机数在计算机编程中广泛应用,如模拟随机事件、加密算法、游戏开发等。在易语言中生成...

    VC获取一定范围内的随机数

    主要介绍了VC的一些基本操作,告诉我们怎么利用VC进行随机数的产生

    Java实现获取指定个数的不同随机数

    "Java实现获取指定个数的不同随机数" Java是一种广泛使用的编程语言,它提供了多种方式来生成随机数。本文将介绍如何使用Java实现获取指定个数的不同随机数。 Java中有多种方法可以生成随机数,包括使用Random类、...

    产生随机数的方法

    如果需要生成指定范围内的随机数,可以结合使用模运算符`%`。例如,`rand()%n`会返回一个0到n-1的随机整数。如果你想生成1到n之间的整数,可以使用`1+rand()%n`,这样可以确保结果不小于1且不大于n。 然而,`rand()...

    36选7的开奖过程,每次从1到36的数中生成一个随机数

    例如,在Python中,可以使用`random`模块的`randint()`函数来生成指定范围内的整数。为了确保每次生成的数字不重复,我们可以使用一个列表来存储已经选择过的数字,并检查新生成的数字是否已存在于列表中。 2. **...

    java中产生随机数的两个方法

    虽然这个方法产生的随机数范围比较小,但是通过一些灵活的处理,可以获取任意范围的随机数。 例如,我们可以先通过 Math.random() 方法生成一个随机数,然后将结果乘以 10,并使用 Int 方法进行转换,以获取一个 0 ...

    golang生成指定位数的随机数的方法

    1.随机数 随机数,是使用一个确定性的算法计算出来随机数序。在程序开发中经常需要产生...3.生成指定位数随机数 以生成六位随机数为例 package main import ( fmt math/rand ) func CreateCaptcha() string {

    猜数字游戏,输入一个数字与随机数比较。

    例如,在Python中,我们可以使用`random`模块的`randint`函数来生成一个指定范围内的整数。 ```python import random target_number = random.randint(1, 100) # 生成1到100之间的随机整数 ``` 2. **用户输入**:...

    (java)指定范围的,不重复的随机数

    在Java编程语言中,生成指定范围内的不重复随机数是一个常见的需求,这通常涉及到数组、集合、以及随机数生成器的使用。以下是一些相关的知识点: 1. **Random类**: Java中的`java.util.Random`类是用于生成...

    C#生成不重复字母数字组合的随机数

    在实际应用中,我们可能需要根据业务需求调整随机数的生成策略,比如改变随机数的范围、使用特定的种子、或者采用更复杂的算法来生成更加随机的字符串。 至于压缩包子文件“WindowsFormsApplication1”,这通常是一...

    .net随机数

    该类位于`System`命名空间下,可以通过创建该类的实例来获取随机数。 ##### 1.1 `Next()` 方法 `Next()` 是`System.Random`类中最常用的方法之一,它用于生成一个介于0(包括)到2147483647(不包括)之间的32位有...

    产生连续的随机数C++函数

    可以使用`std::random_device`来获取一个真正的随机数作为种子,或者使用当前时间,以避免重复的随机序列。分布则决定了随机数的范围和分布特性,如最小值、最大值以及是否连续。 在实现连续随机数的函数时,我们...

    随机数产生(c语言)

    这样的设计允许用户通过`set_random_seed()`设定自定义种子,然后使用`generate_random()`生成指定范围内的随机数。这增加了代码的灵活性和可复用性。 在实际应用中,我们可能还需要考虑到随机数生成的性能、随机性...

    Javascript获取随机数的实现方法

    其次,我们要明白如何根据需要生成一个指定范围内的随机数。在上述内容中,getRandom函数就实现了这样一个功能,它能够返回一个指定范围内的随机整数。这个函数首先通过Number()函数确保传入的参数n和m为数字类型,...

    js生成随机数(指定范围)的实例代码

    本文详细介绍了在JavaScript中如何生成指定范围的随机数,并提供了几个实例代码。在编程中,随机数生成是一个常见需求,它可以用于游戏开发、数据模拟、测试用例生成等多种场景。 首先,我们来看如何生成固定位数的...

Global site tag (gtag.js) - Google Analytics