Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何制作随机数图案发生器?_Java_Arrays_Random_Numbers_Generator - Fatal编程技术网

Java 如何制作随机数图案发生器?

Java 如何制作随机数图案发生器?,java,arrays,random,numbers,generator,Java,Arrays,Random,Numbers,Generator,我的情况是,我试图找到一个随机数模式生成器代码,但我似乎真的找不到它。我需要使用“1”、“2”、“3”、“4”、“5”和“6”来创建一个具有4位数字的随机模式,如1111、1264、2564等。我尝试了这个,但它不起作用 public static void computer() { List<Integer> template = Arrays.asList(1, 2, 3, 4, 5, 6); for (int i = 0; i < 10; ++i) {

我的情况是,我试图找到一个随机数模式生成器代码,但我似乎真的找不到它。我需要使用“1”、“2”、“3”、“4”、“5”和“6”来创建一个具有4位数字的随机模式,如1111、1264、2564等。我尝试了这个,但它不起作用

public static void computer() {
    List<Integer> template = Arrays.asList(1, 2, 3, 4, 5, 6);
    for (int i = 0; i < 10; ++i) {
        List<Integer> items = new ArrayList<Integer>(template);
            Collections.shuffle(items);
            System.out.println(items);

    }
}
公共静态无效计算机(){
列表模板=Arrays.asList(1,2,3,4,5,6);
对于(int i=0;i<10;++i){
列表项=新的ArrayList(模板);
收藏。洗牌(物品);
系统输出打印项次(项);
}
}
试试这个:

Random r = new Random();
int number = 0;
int d = 1;

while (number < 1000) {

    // generate number between 1-6
    int num = r.nextInt(6) + 1;

    number += num * d;
    // increase the digit (units, tens, hundreds, thousands)
    d *= 10;
}

System.out.println(number);
Random r=new Random();
整数=0;
int d=1;
而(数量<1000){
//生成1-6之间的数字
int num=r.nextInt(6)+1;
数字+=num*d;
//增加数字(单位、十、百、千)
d*=10;
}
系统输出打印项次(编号);
公共静态无效计算机(){
列表模板=Arrays.asList(1,2,3,4,5,6);
随机r=新随机();
StringBuilder random=新的StringBuilder();
对于(int i=0;i<4;++i){
int create=r.nextInt(6);
//在1-6索引之间的数组中查找
int find=template.get(创建);
random.append(String.valueOf(find));
}
系统输出打印项次(随机);
}
Random r=new Random();
字符串s=“”;
while(s.length()<4)
{
int numpick=r.nextInt()%6;
如果(numpick>0)
s+=numpick;
}
返回整数.parseInt;

显然可以稍加修改,但我认为这是发展数字的最佳策略。

你以前在什么地方问过这个问题吗?只是在想对不起。试试@asembansal抱歉,我是新手,这是我的第一篇帖子,所以我想我以前没有问过这个问题。我尝试过搜索,但没有找到随机数模式生成器的解决方案。我被这个代码困住了,不知道如何继续下去。所以我问。如果有,请原谅我。我想学习java编程。没必要抱歉。你试过什么然后就来了。试着阅读我提供的链接。它包含了更多的解释和选择。在学习的过程中,不要仅仅使用一个有效的解决方案,还要寻找它为什么有效的解释。“那样你会学得更好。”谢谢你的帮助和建议。我已经在检查并做笔记了。谢谢,真是足智多谋!为什么数字小于1000?它是四位数,所以应该是10000。这是因为,当数字是3位数,即小于1000时,它进入循环并生成另一个数字,现在它变成了4位数。支票兑现了吗?非常感谢!成功了。非常感谢您。使用而不是
r.nextInt()%6
会更好。
public static void computer() {
    List<Integer> template = Arrays.asList(1, 2, 3, 4, 5, 6);
    Random r = new Random();
    StringBuilder random = new StringBuilder();
    for (int i = 0; i < 4; ++i) {
       int create = r.nextInt(6);
       // find in array between 1-6 index
       int find = template.get(create);
       random.append(String.valueOf(find));
    }
    System.out.println(random);
}
  Random r = new Random();
  String s = "";
  while(s.length() < 4)
  {
     int numpick = r.nextInt() % 6;
     if(numpick > 0)
        s += numpick;
  }

  return Integer.parseInt(s);