实现一个可以在指定范围产生随机数组的函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实现一个可以在指定范围产生随机数组的函数相关的知识,希望对你有一定的参考价值。

C/C++实现

Helper.h

#include <ctime>
#include <cmath>
#include <cstdlib>
#include <cassert>
#include <cstdio>

int* generateRandomArray(int number, int rangeLeft, int rangeRight);

Helper.cpp

#include "Helper.h"

int * generateRandomArray(int number, int rangeLeft, int rangeRight) {
    // 使用完成后应该使用delete[] xxx删除空间
    // 确保rangeLeft小于rangeRight
    assert(rangeLeft < rangeRight);
    int *arr = new int[number];
    srand(time(NULL));
    for (int i = 0; i < number; i++) {
        // 生成随机数
        // rand()函数生成0到最大整数的随机数
        arr[i] = rand() % (rangeRight - rangeLeft + 1) + rangeLeft;
    }
    return arr;
}

main.cpp

#include "Helper.h"
int main() {
    int* arr = generateRandomArray(10, 8, 12);
    delete[] arr;
}

Java实现

Helper.java

import java.util.Random;

public class Helper {
    public static int[] generateRandomArray(int number, int rangeLeft, int rangeRight) {
        int[] arr = new int[number];
        Random random = new Random();
        for (int i = 0; i < number; i++) {
            arr[i] = (random.nextInt(Integer.MAX_VALUE)) % (rangeRight - rangeLeft + 1) + rangeLeft;
        }
        return arr;
    }
}

TestHelper.java

public class TestHelper {

    public static void main(String[] args) {
        int[] arr = Helper.generateRandomArray(10, 10, 20);
        for (int i = 0; i < 10; i++) {
            System.out.println(arr[i]);
        }
    }
}

以上是关于实现一个可以在指定范围产生随机数组的函数的主要内容,如果未能解决你的问题,请参考以下文章

java怎么在几个指定数字里面产生随机数

C# 取指定范围随机数的几种方法

java中产生随机数的函数是啥

C语言中如何用名字存数组,用时间函数模拟随机,实现随机输出一个姓名。

怎样用java产生一个指定范围的随机数?

用rand随机函数怎么求指定范围的随机数?