java利用随机数java生成随机数50以内的整数进行加减

java里面产生1-100随机数都有哪些方法?_百度知道
java里面产生1-100随机数都有哪些方法?
需要利用seed number来初始化random number generator
我有更好的答案求助知道网友
new Random().nextInt(100) +1;//不加1 则得到的是 0——99之间的随机数
加 1 则得到的时1——100之间的随机数
Random random = new Random(System.currentTimeMillis()); int iRandom = random.nextInt(100)+1;
public class Test { public static void main(String[] args) { int i = (int)(Math.random()*100); System.out.println(i); } }
本回答被提问者采纳
1条折叠回答
为您推荐:
其他类似问题
随机数的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。java产生随机大整数
java产生随机大整数
原来java里是有随机产生大整数的方法的,真笨,当时还自己写了一个。。。
构造子索引
把一个包含着(带正负号)整数的二进制补码的字节数组翻译为 BigInteger 。
把一个整数的 sign-magnitude 表示法翻译为 BigInteger 。
(int, int,
返回有指定 bitLength(可能是素数)的随机选择的 BigInteger 。
返回一个随机数,均匀分布在 [0, 2**numBits - 1] 之间 (假设由 rndSrc 提供一个公平的随机源)
把一个字符串翻译为一个 BigInteger ,该字符串包含可选的负号,后面跟着一个或多个十进制数字序列。
把一个字符串翻译为一个 BigInteger ,该字符串包含可选的负号,后面跟着一个或多个指定进制的数字序列。
这里Random用其子类继承的java.security.SecureRandom。该类提供了一个基于 SHA-1
散列算法的加密性强的伪随机数生成器。从 Random 继承的调用的实现加强了原有的功能。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。Java_随机整数的生成_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
Java_随机整数的生成
&&Java 随机整数生成方法
你可能喜欢博客分类:
一、JAVA中生成随机数的方式
1、在j2se中使用Math.random()令系统随机选取一个0~1之间的double类型小数,将其乘以一个数,比如25,就能得到一个0~25范围内的随机数,这个在j2me中没有;
int randomNumber = (int) Math.round(Math.random()*(max-min)+min);
2、在System类中有一个currentTimeMillis()方法,这个方法返回从号0点0分0秒到目前的一个long型的毫秒数,可作为一个随机数,还可以将其对某些数取模,就能限制随机数的范围;此方式在循环中同时产生多个随机数时,会是相同的值,有一定的局限性!
long randomNum = System.currentTimeMillis();
int randomNumber = (int) randomNum%(max-min)+
3、使用java.util.Random类来产生一个随机数发生器,这个也是我们在j2me的程序里经常用的一个取随机数的方法。它有两种形式的构造函数,分别是Random()和Random(long seed)。Random()使用当前时间即System.currentTimeMillis()作为发生器的种子,Random(long seed)使用指定的seed作为发生器的种子。随机数发生器(Random)对象产生以后,通过调用不同的method:nextInt()、nextLong()、nextFloat()、nextDouble()等获得不同类型随机数。 如果两个Random对象使用相同的种子(比如都是25),并且以相同的顺序调用相同的函数,那它们返回值完全相同。
Random random = new Random();
int randomNumber =
random.nextInt(max)%(max-min+1) +
二、随机给定范围内N个不重复的数
1、方法一:最简单最易理解的两重循环去重
public static int[] randomCommon(int min, int max, int n){
if (n & (max - min + 1) || max & min) {
return null;
int[] result = new int[n];
int count = 0;
while(count & n) {
int num = (int) (Math.random() * (max - min)) +
boolean flag = true;
for (int j = 0; j & j++) {
if(num == result[j]){
flag = false;
result[count] =
2、方法二:利用HashSet的特征,只能存放不同的值
public static void randomSet(int min, int max, int n, HashSet&Integer& set) {
if (n & (max - min + 1) || max & min) {
for (int i = 0; i & i++) {
int num = (int) (Math.random() * (max - min)) +
set.add(num);
int setSize = set.size();
if (setSize & n) {
randomSet(min, max, n - setSize, set);
3、方法三:排除已随机到的数
public static int[] randomArray(int min,int max,int n){
int len = max-min+1;
if(max & min || n & len){
return null;
int[] source = new int[len];
for (int i = i & min+ i++){
source[i-min] =
int[] result = new int[n];
Random rd = new Random();
int index = 0;
for (int i = 0; i & result. i++) {
index = Math.abs(rd.nextInt() % len--);
result[i] = source[index];
source[index] = source[len];
调用实例:
public static void main(String[] args) {
int[] reult1 = randomCommon(20,50,10);
for (int i : reult1) {
System.out.println(i);
int[] reult2 = randomArray(20,50,10);
for (int i : reult2) {
System.out.println(i);
HashSet&Integer& set = new HashSet&Integer&();
randomSet(20,50,10,set);
for (int j : set) {
System.out.println(j);
浏览 10831
浏览: 84940 次
来自: 耒阳
初学oracle的飘过!!
&div class=&quote_title ...
让程序员醒悟什么?
francisyc 写道外包,非外包都待过,觉得外包并没有那么 ...
&div class=&quote_title ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'→ 如何生成20个50-100之间的不重复随机数?
选取类型:
观点标题:
观点内容:(不支持HTML)
请以客观、真实地作出评论,并注意语言文明;
观点发表后不能作出更改;
您是本帖的第 3520 个阅读者
如何生成20个50-100之间的不重复随机数?
等级:初生婴儿
如何生成20个50-100之间的不重复随机数?
如何用java基础生成20个50-100之间的不重复的随机数
等级:幼儿园
public class test14 {
public static void main(String[] args){
boolean flag=
int counter=0;
int numb[]=new int[20];
numb[0]=(int)(Math.random()*51)+50;
counter++;
while(counter&20){
numb[counter]=(int)(Math.random()*51)+50;
System.out.print(counter+":"+numb[counter]+"\n");
for(int i=0;i&i++){
if(numb[i]==numb[counter]){
counter++;
for(int i=0;i&i++){
System.out.print(numb[i]+"\t");
}}//大概思路吧,生成51以内的随机数,然后加50,就是50~100的了。然后遍历验证,如果没有重复就留着,有重复就丢弃,再随机取就ok了。//前面弄的有点问题,修改后经过测试,木有问题了
[此贴子已经被作者于 10:41:19编辑过]
等级:初生婴儿
我的思路:取随机数很简单。在此基础上新建个数组,然后用循环结构把随机数存进数组。为了不重复,就需再存进数组的同时用判断结构和循环结构把此次生成的随机数同数组里所有的成员比较,如果一样就再随机。[此贴子已经被作者于 12:49:46编辑过]
等级:学前班
二楼的程序特占内存,运行起来42%狂飙92%。
等级:初生婴儿
我是初学者只会这些语句生成50-100的随机整数,用人头担保写出来用MyEclipse运行了结果没问题import java.util.Rpublic class suijishu {&public static void main(String[] args){&&int[] arr=new int[20];&&&&&&&&& arr[0]=(int)(Math.random()*51+50);&&&&&for(int i=1;i&=arr.length-1;i++){&&&&boolean x=&&&&&&&while(x==true){&&&&&arr[i]=(int)(Math.random()*51+50);&&&&&for(int j=0;j&i;j++){&&&&&&&&&&&&&if(arr[i]==arr[j]){&&&&&&&&x=&&&&&&&&&&&& /*出现a[i]与前面a[0] a[1].......a[j]任何一个相等的情况x=true,马上break退出并重新while循环,重新生成a[i]=(int)(Math.random()*51+50),直到x=false一次循环结束。*/&&&&&&&}else{&&&&&&&&x=&&&&&&&}&&&&&&&&&&}&&&&&&&}&&&}&&for(int i=0;i&=arr.length-1;i++){&&&&&&&&&&&&&&&&&&&&&&System.out.print(arr[i]+"\t");&&&&}&}&}其中一组结果如下:62&97&88&55&82&52&68&96&75&65&&&&& &84&50&95&57&70&99&98&83&54&63
[此贴子已经被作者于 9:27:55编辑过]
等级:学前班
java编程时尽量避免使用do while();你这程序也太复杂了,有许多没有必要的东西,话说你后面i&8啥的有啥用啊?我是没看出来,能简话一点嘛?
等级:初生婴儿
请再参考5楼程序,我重新修改过了,绝对能运行正常。我初学只会这些语句,但可以保证:运行正常和结果准确
[此贴子已经被作者于 9:22:36编辑过]
等级:幼儿园
谢谢指正,原来的有问题,已经改正了。
本论坛言论纯属发表者个人意见,与本站立场无关,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! 粤ICP备号
Copyright © 2007
Powered By
页面执行时间 0.12500 秒, 4 次数据查询}

我要回帖

更多关于 java随机数生成1到100 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信