Java (int)Math.random打印第一行设置范围之外的随机数字行
尝试创建一个随机数数组。以下是我到目前为止的情况:Java (int)Math.random打印第一行设置范围之外的随机数字行,java,arrays,math,random,Java,Arrays,Math,Random,尝试创建一个随机数数组。以下是我到目前为止的情况: public static void main(String[] args) { randomArray(5); } public static int randomInt(int low, int high){ int x=0; for (int i=0;i<10;i++){ x= (int)(Math.random ()*high)+low;
public static void main(String[] args) {
randomArray(5);
}
public static int randomInt(int low, int high){
int x=0;
for (int i=0;i<10;i++){
x= (int)(Math.random ()*high)+low;
System.out.print(x);
}
return x;
}
public static int[] randomArray(int n){
int[] a = new int [n];
for (int i = 0;i<a.length;i++){
a[i]=randomInt (0,100);}
printArray(a);
return a;
}
public static void printArray (int[]a) {
for (int i = 0; i<a.length;i++){
System.out.println(a[i]);
}
}
}
这是一条路,超出了范围。有什么想法吗?因为你有一个:
系统。输出。打印(x)
内部randomInt
- 在“randomInt”函数中有一个print语句
- “randomInt”函数中有一个不必要的循环
- 您使用的“randomInt”函数只能产生正确的结果,因为您使用的是low=0
- Ex:高=10;低=5;((Math.random()*高)+低)将产生5到15之间的结果,而不是5到10之间的结果
import java.util.*;
导入java.lang.*;
导入java.io.*;
表意文字
{
公共静态void main(字符串[]args){
随机阵列(5);
}
公共静态int randomInt(int低,int高){
返回值(int)(Math.random()*(高-低))+低;
}
公共静态int[]随机数组(int n){
int[]a=新的int[n];
for(int i=0;iSystem.print()
不添加换行符,所以您只是在同一行上打印一组数字。为什么在您的randomInt
方法中有for循环?您正在生成9个随机数,并将它们扔掉,然后返回第10个?为了稍微说明一下,System.out.print(x)
将打印x
,后面没有回车符。那一行实际上是92
65
95
67
等等。哇,我很笨。一定是在测试期间留下的。谢谢。@iamnotmaynard-我从(基于web的编译器)复制并粘贴了它这一行是在我用来制作示例代码的Java语言模板中。
9265956792478464547638861753937389642303686408882492318499964845942725987325868511898811389
42
49
73
72
import java.util.*;
import java.lang.*;
import java.io.*;
class Ideone
{
public static void main(String[] args) {
randomArray(5);
}
public static int randomInt(int low, int high){
return (int)(Math.random() * (high - low)) + low;
}
public static int[] randomArray(int n){
int[] a = new int[n];
for (int i = 0; i<a.length; i++) {
a[i] = randomInt(0, 100);
}
printArray(a);
return a;
}
public static void printArray (int[] a) {
for (int i = 0; i<a.length; i++){
System.out.println(a[i]);
}
}
}