-4

编写一个方法以在用户指定大小的 int 数组中生成并返回一组随机值。这些值都应该在 +/- N 之间,其中 N 是一个常数,例如 100。谢谢。这是我的;

import java.util.*;

public class Test
{

    public static void main(String[] args) 
    {
        int limit, numbers;
        Random random = new Random();
        Scanner scan = new Scanner(System.in);

        System.out.print ("Enter your limit value for your array: ");           //Needs to be positive.
        limit = scan.nextInt();

        int[] list = new int[limit];

        for (int i = 0; i < list.length; i++) 
        {
            System.out.print(list[i] + ", ");
        }

        numbers = random.nextInt(limit - (0 - limit)) + (0 - limit);
        System.out.println (numbers);

        System.out.println (list[numbers]);

    }
}
4

1 回答 1

0
public List<Integer> random(int range, int count){
    List<Integer> result = new ArrayList<Integer>();
    for(int i=0;i<count;i++){
        if(Math.random() > 0.5){
            //adding positive value with probability of 0.5
            result.add((int)(Math.random() * (double)range));
        }else{
            //adding negative value with probability of 0.5
            result.add(-1 * (int)(Math.random() * (double)range));
        }

    }
    return result;
}

如果您想创建自己的随机数生成器,最容易实现的将是线性同余生成器。从wiki阅读并尝试自己。在这里询问您是否需要帮助。

于 2014-12-14T03:41:48.857 回答