java中math.random()随机生成的数怎么全是0?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中math.random()随机生成的数怎么全是0?相关的知识,希望对你有一定的参考价值。
楼主我估计你是这样操作了(int)(Math.random()),所以出现都是0
random()方法,是返回一个[0,1)的浮点数。
一般我们是这样运用的,比如我要取一个1~9的随机数
int a=(int)(Math.random()*10)
注意是是乘上10再转。
但不是
int a=(int)(Math.random())*10
因为你的=(int)(Math.random())值永远为0,0乘上任何数都会是0 参考技术A public class test16
/**
* @param args
*/
public static void main(String[] args)
// TODO Auto-generated method stub
int[] a=new int[10];//定义初始化一个10元素的整型数组a
int max;
int min;
for(int i=0;i<9;i++)
a[i]=(int)(10*Math.random());//取10以内的整数给数组a赋值
System.out.println(a[i]);
max=a[0];
for(int i=0;i<9;i++)
if(max<a[i]) max=a[i];
min=a[0];
for(int i=0;i<9;i++)
if(min>a[i]) min=a[i];
System.out.print("数组最小值是");
System.out.println(min);
System.out.print("数组最大值是");
System.out.println(max);
参考技术B (int)(Math.random()*100) 正确
(int)Math.random()*100 等于 0 参考技术C random()方法是生成0-1之间的小数,,,你要是赋给一个整数,输出稳定是0。。
System.out.println(Math.random()); 直接这样输出 参考技术D math.Random() 表示 [0~1)
JS中,输出1-10之间的随机整数,用Math.random()咋搞呢
使用Math.floor(Math.random()*10+1)函数实现。
1、floor():返回小于等于x的最大整数。
2、函数返回一个浮点, 伪随机数在范围[0,1),也就是说,从0(包括0)往上,但是不包括1(排除1)。实现将初始种子选择到随机数生成算法,它不能被用户选择或重置。
实例演示如下:
1、html代码如下,绑定生成函数:
2、函数代码如下:
2、随机演示效果如下:均为1-10之内的整数。
扩展资料:
生成不重复的10个随机数,可以用数组存储已经生成的数,新生成的数据若不在数组中就满足条件。
1、函数代码如下:
2、同理,绑定一个button用于测试:
2、演示:点击按钮直到产生10个数字。一次随机数据生产如下:(10个不重复)
参考资料:
百度百科--math.random()
JavaScript获取[n-m]之间的随机整数简单高效的方法:
var min = 5;var max = 10;
var rand = Math.floor(Math.random()*(max-min+1))+min;
思路如下:
1. `Math.random() `取0-1之间的随机小数(float);
2. 然后再乘以 n-m 之间的数字个数`(max-min+1)`;
3. 然后两者相乘向下取整 `Math.floor(Math.random()*(max-min+1))`;
4. 最后再加上最小值即可:`Math.floor(Math.random()*(max-min+1))+min`。
下面是演示代码:
<script>let min = 5;
let max = 15;
let randArr = [];
for(let i=0;i<100;i++)
let rand = Math.floor(Math.random()*(max-min+1))+min;
randArr.push(rand)
console.log(randArr.join(','))
</script>
> Chrome运行结果
12,14,11,13,15,8,5,15,11,7,15,11,10,11,6,5,6,12,9,
11,11,7,14,14,15,10,13,7,14,14,5,15,5,10,9,5,6,13,5,
6,15,9,11,6,11,9,15,13,14,13,8,5,8,5,10,6,15,12,12,6,
11,10,15,5,13,9,14,7,5,7,11,9,15,10,8,10,11,8,7,
13,5,11,12,12,9,8,12,6,12,6,5,15,15,7,10,9,6,12,6,8 参考技术B <script>
document.write(parseInt(10*Math.random())); //输出0~10之间的随机整数
document.write(Math.floor(Math.random()*10+1)); //输出1~10之间的随机整数
function RndNum(n)
var rnd="";
for(var i=0;i<n;i++)
rnd+=Math.floor(Math.random()*10);
return rnd;
document.write(RndNum(4)); //输出指定位数的随机数的随机整数
引用部分:
1. 从1开始 至 任意值parseInt(Math.random()*上限+1); 2. 从任意值开始 至 任意值parseInt(Math.random()*(上限-下限+1)+下限);
function fRandomBy(under, over)
switch(arguments.length)
case 1: return parseInt(Math.random()*under+1);
case 2: return parseInt(Math.random()*(over-under+1) + under);
default: return 0;
document.write(fRandomBy(1,100)); //输出指定范围内的随机数的随机整数
</script> 参考技术C Math.randInt(1,10);
在Math里面有函数可以直接产生,不用自己写。 参考技术D var i=Math.random() //获得0-1的随机数
document.write(math.ceil(i*10)) //乘以10并向上去整
以上是关于java中math.random()随机生成的数怎么全是0?的主要内容,如果未能解决你的问题,请参考以下文章
JS中,输出1-10之间的随机整数,用Math.random()咋搞呢
Java中Math.random()与Random类生成随机数及源码分析
java程序中Math.random();的取值范围是多少?(是0到1double型吗?)