当前位置: 技术问答>java相关
有关随机数的问题
来源: 互联网 发布时间:2015-10-24
本文导语: 请教有关随机数函数的问题,如何取1-52的随机数,怎样避免每次reset后取的随机数一样?有没有这样的函数? | int i=(int)(Math.random()*53); t.setText(String.valueOf(i)); | 后边跟一个循...
请教有关随机数函数的问题,如何取1-52的随机数,怎样避免每次reset后取的随机数一样?有没有这样的函数?
|
int i=(int)(Math.random()*53);
t.setText(String.valueOf(i));
t.setText(String.valueOf(i));
|
后边跟一个循环检查产生的随机数,如果是相同,那么就重新Generate一个……
|
还有楼上的兄弟有个小小的错误:
int i=(int)(Math.random()*52 +1);
下面那一行要它干什么?
int i=(int)(Math.random()*52 +1);
下面那一行要它干什么?
|
同意 mercury1231(人生如梦)
要想产生的随机数不相同就一定要自己编一段程序了.
要想产生的随机数不相同就一定要自己编一段程序了.
|
//要产生真正的随机数好像是比较苦难,
//能不能投机
//先 取出当前时间的任意一位,最好是毫秒数的最后一位!
//那这个作为基数!
//再在这个基础上生成一个1-53的结果!
Calendar calendar = null;
calendar = Calendar.getInstance();
Date temp = new Date();
calendar.setTime(temp);
int i = calendar.get(Calendar.SECOND);//我所取的是秒数,你可以把它换成毫秒数就更准确些!
String s = String.valueOf(i);
s = s.substring(s.length()-1,s.length());
if(s.equals("0")) s="1";
i = Integer.parseInt(s);
out.print((int)(Math.random()*(44+i)));//因为i 是一个1-9的值
//能不能投机
//先 取出当前时间的任意一位,最好是毫秒数的最后一位!
//那这个作为基数!
//再在这个基础上生成一个1-53的结果!
Calendar calendar = null;
calendar = Calendar.getInstance();
Date temp = new Date();
calendar.setTime(temp);
int i = calendar.get(Calendar.SECOND);//我所取的是秒数,你可以把它换成毫秒数就更准确些!
String s = String.valueOf(i);
s = s.substring(s.length()-1,s.length());
if(s.equals("0")) s="1";
i = Integer.parseInt(s);
out.print((int)(Math.random()*(44+i)));//因为i 是一个1-9的值