Java 如何制作由1';s和0';s、 长度取自用户

Java 如何制作由1';s和0';s、 长度取自用户,java,arrays,random,Java,Arrays,Random,我正在尝试获取一个数组,该数组由1和0组成,其长度在运行后确定。“arr1.length”是事先从用户处获取的 private double[] arrayGen(int A) { double[] arr1 = new double[A]; for (int i = 0; i < arr1.length; i++) { arr1[i] = (Math.random()); } private double[]arr

我正在尝试获取一个数组,该数组由1和0组成,其长度在运行后确定。“arr1.length”是事先从用户处获取的

private double[] arrayGen(int A) {
        double[] arr1 = new double[A];
        for (int i = 0; i < arr1.length; i++) {
            arr1[i] = (Math.random());
        }
private double[]arrayGen(int A){
双精度[]arr1=新双精度[A];
for(int i=0;i
这就是我到目前为止尝试的,它生成随机的“双精度”,我不能让它随机生成1和0

谢谢你的帮助

约翰改变了

arr1[i] = (Math.random());

arr1[i]=(Math.random()<0.5?0:1);
更改

arr1[i] = (Math.random());

arr1[i]=(Math.random()<0.5?0:1);

如果您想要整数值的双精度,那么生成整数并将其转换为双精度可能会更简单

import java.util.Arrays;
import java.util.Random;

public class Test {
  public static void main(String[] args) throws Throwable {
    System.out.println(Arrays.toString(arrayGen(20)));
  }

  private static Random rand = new Random();

  private static double[] arrayGen(int A) {
    double[] arr1 = new double[A];
    for (int i = 0; i < arr1.length; i++) {
      arr1[i] = rand.nextInt(2);
    }
    return arr1;
  }
}
导入java.util.array;
导入java.util.Random;
公开课考试{
公共静态void main(字符串[]args)抛出可丢弃的{
System.out.println(Arrays.toString(arrayGen(20));
}
私有静态随机兰德=新随机();
专用静态双[]阵列(int A){
双精度[]arr1=新双精度[A];
for(int i=0;i
如果您想要整数值的双精度,那么生成整数并将其转换为双精度可能会更简单

import java.util.Arrays;
import java.util.Random;

public class Test {
  public static void main(String[] args) throws Throwable {
    System.out.println(Arrays.toString(arrayGen(20)));
  }

  private static Random rand = new Random();

  private static double[] arrayGen(int A) {
    double[] arr1 = new double[A];
    for (int i = 0; i < arr1.length; i++) {
      arr1[i] = rand.nextInt(2);
    }
    return arr1;
  }
}
导入java.util.array;
导入java.util.Random;
公开课考试{
公共静态void main(字符串[]args)抛出可丢弃的{
System.out.println(Arrays.toString(arrayGen(20));
}
私有静态随机兰德=新随机();
专用静态双[]阵列(int A){
双精度[]arr1=新双精度[A];
for(int i=0;i
您也可以更换

arr1[i] = (Math.random());

ps:如果将“double[]arr1=new double[A];”更改为“int[]arr1=new int[A];”,则不需要强制转换为int;

您也可以替换

arr1[i] = (Math.random());


ps:如果您将“double[]arr1=new double[A];”更改为“int[]arr1=new int[A];”

您正在调用Math.random(),它将返回一个介于0和1之间的随机双精度。请改为:

Random rand = new Random();
double zeroOne = (double) rand.nextInt(2);

rand.nextInt(2);将随机返回0或1,请务必记住,rand.nextInt(value)返回的是一个介于0和值之间的随机数,但它永远不会返回值本身,该值仅为0。

您正在调用Math.random(),该函数返回一个介于0和1之间的随机双精度。请执行以下操作:

Random rand = new Random();
double zeroOne = (double) rand.nextInt(2);

rand.nextInt(2);将随机返回0或1,请务必记住rand.nextInt(value)返回一个介于0和值之间的随机数,但它不会返回值本身,该值仅为0。

不确定为什么要使用
双精度
。如何处理

public static void main(String[] args){
    Random r = new Random();

    int[] values = new int[10];

    for(int i=0;i<values.length;i++){
        values[i] = r.nextInt(2);
    }

    System.out.println(Arrays.toString(values));
}

不确定为什么要使用
double
。怎么办

public static void main(String[] args){
    Random r = new Random();

    int[] values = new int[10];

    for(int i=0;i<values.length;i++){
        values[i] = r.nextInt(2);
    }

    System.out.println(Arrays.toString(values));
}
/*
*要更改此许可证标题,请在“项目属性”中选择“许可证标题”。
*要更改此模板文件,请选择工具|模板
*然后在编辑器中打开模板。
*/
包javaapplication6;
导入java.lang.reflect.Array;
导入java.util.Random;
导入java.util.Scanner;
/**
*
*@作者阿里
*/
公共类JavaApplication6{
/**
*@param指定命令行参数
*/
公共静态void main(字符串[]args){
//此处的TODO代码应用程序逻辑
扫描仪sc=新的扫描仪(System.in);
国际[]无秩序;
anArray=newint[sc.nextInt()];
对于(int i=0;i
/*
*要更改此许可证标题,请在“项目属性”中选择“许可证标题”。
*要更改此模板文件,请选择工具|模板
*然后在编辑器中打开模板。
*/
包javaapplication6;
导入java.lang.reflect.Array;
导入java.util.Random;
导入java.util.Scanner;
/**
*
*@作者阿里
*/
公共类JavaApplication6{
/**
*@param指定命令行参数
*/
公共静态void main(字符串[]args){
//此处的TODO代码应用程序逻辑
扫描仪sc=新的扫描仪(System.in);
国际[]无秩序;
anArray=newint[sc.nextInt()];

对于(inti=0;iWell,我个人会使用
java.util.Random
,而不是使用
Math
——但所有这些都可以通过调用
Math.Random()
。提示:这将返回一个介于0和1之间的
double
。想想如何从介于0和1之间的
double
变为
double
,即0或1。(不清楚为什么要对只能为0或1的值使用
double
,请注意……)好吧,我个人会使用
java.util.Random
而不是使用
Math
——但所有这些都可以通过调用
Math.Random()来完成
。提示:返回介于0和1之间的
double
。请考虑如何从介于0和1之间的
double
转换为
double
,即0或1。(请注意,对于只能为0或1的值,不清楚为什么要使用
double
nextInt(2)
将永远不会返回2,因此
%2
是无用的。@SashaSalauyou Oops。捕捉良好。更正的
nextInt(2)
将永远不会返回2,因此
%2
是无用的。@SashaSalauyou Oops。捕捉良好。更正