Random rand =new Random(47);
int i,j,k;
j=rand.nextInt(100)+1;
随机数是不是在47到100之间产生???
如果不是,那赋初值47是什么意思???
int i,j,k;
j=rand.nextInt(100)+1;
随机数是不是在47到100之间产生???
如果不是,那赋初值47是什么意思???
解决方案 »
- 请高手帮我分析一下类的final成员常量的内存分布。谢谢了
- windows下正常的可执行jar在linux 下运行出错,帮忙看下
- 网络通讯中的数据封包问题
- java的当前路径问题!
- 编译通过,运行抛出异常,请指教,在线等
- 我想找个兼职的工作,报酬多少不在乎,但我只能在周末工作
- 最简单的一APPLET,不用JRE的plug-in,为何不能运行,该如何处理?郁闷之极。。。
- 求问个简单的线程问题
- 有谁对CRM感兴趣呀?这里有提供测试。欢迎大家使用
- 菜鸟弱问题:如何把屏幕显示输出全生成到txt文件里去?
- Java 中如何实现倒计时?
- 研究java源代码:AtomicLong是怎么实现同步的(jdk5.0新加的特性)
System.out.println(r.nextInt(3));在试试
Random r = new Random(2);
Random r = new Random(3);
Random r = new Random(2008);刚有人发过帖子讨论过。
作者似乎觉得47是个幸运数字~
Random r1= new Random(1);
Random r2= new Random(1);
Random r3= new Random(2);for(int i=0;i<1000;i++){
int i = r1.nextInt(100);
int j = r2.nextInt(100);
int k = r3.nextInt(100);
}这里面每一次 i和j 都是相等的 因为它们的种子一样 都是1
k就不一样了 因为种子是2
产生的数和种子无关 而是你调用的nextXXX决定的 nextInt(100)就是0~99~~
楼上的有点矛盾了
这里说:这里面每一次 i和j 都是相等的 因为它们的种子一样 都是1 k就不一样了 因为种子是2
而下面又说产生的数和种子无关
k不一样不是因为种子吗???说的有点自相矛盾
如果想要随机数的区间是[1,100),则用如下代码: Random rand = new Random();
int m = rand.nextInt(100);
我说的是循环的每一次i和j都是一样的,而k和i,j不一样。
k与i.j不一样是因为种子不同 种子是构造函数的参数,new Random括号里的1和2~~~
Random r = new Random(47);
for(int i =0;i<10;i++)
{
System.out.println("第"+(i+1)+"次:"+r.nextInt(47));
} 上面的代码不管你执行多个少,他们的结果不会变。。
比如第一次运行为
第1次:22323
第2次:2232323
第3次:223233
第4次:223235
第5次:223237
第6次:223238
第7次:223239
第8次:2232398
第9次:223237
第10次:2232388下次运行也是这样的。
如果是用了
Random r = new Random(); 则不然
int m = rand.nextInt(53) + 47;
这是我运行的结果:
第 0次:85 88 47
第 1次:13 54 4
第 2次:34 6 78
第 3次:48 69 73
第 4次:17 63 62
第 5次:34 92 62
第 6次:96 89 76
第 7次:32 10 99
第 8次:74 59 98
第 9次:53 37 2import java.util.*;
class A
{
public static void main(String[] args)
{
int l,j,k;
Random rand1 = new Random(1);
Random rand2 = new Random(1);
Random rand3 = new Random(3);
for (int i=0;i<10 ;i++ )
{
l = rand1.nextInt(100);
j = rand1.nextInt(100);
k = rand1.nextInt(100);
System.out.println("第 "+i+"次:"+l+" "+j+" "+k);
}
}
}
int random=(int)Math.round(Math.Random()*(100-47)+47)
int random=(int)Math.round(Math.random()*(100-47)+47);
int i=0;
i=random.nextInt(54)+47;
System.out.println(i);吧?
应该是
Random rand = new Random();
int m = rand.nextInt(54) + 47;
l = rand1.nextInt(100);
j = rand1.nextInt(100);
k = rand1.nextInt(100);
System.out.println("第 "+i+"次:"+l+" "+j+" "+k);
“想要获取一个范围内的随机数,首先需要一个种子(其实就是一个数值)” 这句话有误!
如果要获得一个范围内的随机数,并不一定需要一个种子!
Random rand=new Random();
System.out.println(rand.nextInt(10));
这样也能获得一定范围内的随机数!
是28楼的朋友!
“想要获取一个范围内的随机数,首先需要一个种子(其实就是一个数值)” 这句话有误!
如果要获得一个范围内的随机数,并不一定需要一个种子!
Random rand=new Random();
System.out.println(rand.nextInt(10));
这样也能获得一定范围内的随机数!
public class code {
public static void main(String[] args)
{
Random rand=new Random();
int[] a=new int[10];
for(int i=0;i<10;i++){
a[i]=(int) (rand.nextInt(100));//数组内容为99以内的随机数 }
Arrays.sort(a);
for(int i=0;i<10;i++){
System.out.println("第"+(i+1)+"个数为:"+a[i]+" "+"序号为:"+(i+1)); }
}}
l = rand1.nextInt(100);
j = rand1.nextInt(100);
k = rand1.nextInt(100);
这里搞错了,你
int num1 = rand.Next(1, 4);//1到4随机数
Console.WriteLine(num1);