如何用java生成十个不相等1-100整数随机数
答案:7 悬赏:30 手机版
解决时间 2021-12-04 10:11
- 提问者网友:富士山上尢
- 2021-12-03 10:51
如何用java生成十个不相等1-100整数随机数
最佳答案
- 五星知识达人网友:琴狂剑也妄
- 2021-12-03 12:29
粗略的看了其他楼的答案,虽然大部分都能实现,但没有精妙的地方,而好的程序在于精妙,这样才能执行的更快速。我看了我6L的,说实话,他的程序还不错,只是他忽略了一点,他的循环只有一次,而如果数字有重复的情况下,SET就很难存到 10 个数字,不信的话,楼主可以吧他程序里的 100 改成 20 试试,问题就很明显了。
以下是我随手写的,相比6L,显得好多了。
public class Test2 {
public static void main(String[] args){
Random ran = new Random();
Set set = new HashSet();
while(set.size()==10?false:true){
int num = ran.nextInt(100)+1;
set.add(num);
}
Iterator it = set.iterator();
int count = 0;
while(it.hasNext()){
System.out.println("第"+ ++count +"个随机数 =="+it.next());
}
}
}追问怎样把这些生成的随机数放入数组
以下是我随手写的,相比6L,显得好多了。
public class Test2 {
public static void main(String[] args){
Random ran = new Random();
Set
while(set.size()==10?false:true){
int num = ran.nextInt(100)+1;
set.add(num);
}
Iterator
int count = 0;
while(it.hasNext()){
System.out.println("第"+ ++count +"个随机数 =="+it.next());
}
}
}追问怎样把这些生成的随机数放入数组
全部回答
- 1楼网友:第幾種人
- 2021-12-03 19:59
public void test2(){
Random ran = new Random();
Set set = new HashSet();
int []num = new int[10];
for(int i=0;i num[i] = ran.nextInt(100)+1;
set.add(num[i]);
}
Iterator it = set.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
set集合是自动排重的。
Random ran = new Random();
Set
int []num = new int[10];
for(int i=0;i
set.add(num[i]);
}
Iterator
while(it.hasNext()){
System.out.println(it.next());
}
}
set集合是自动排重的。
- 2楼网友:一袍清酒付
- 2021-12-03 19:44
import java.util.Set;
import java.util.TreeSet;
public class Hello {
@SuppressWarnings({ "unchecked", "rawtypes" })
public static void main(String[] args) {
Set set = new TreeSet();
while(true){
int a = (int)Math.floor(Math.random() * 100);
if(a > 0 && a <= 100){
set.add(a);
if(set.size() == 10){
break;
}
}
}
System.out.println(set);
}
}
import java.util.TreeSet;
public class Hello {
@SuppressWarnings({ "unchecked", "rawtypes" })
public static void main(String[] args) {
Set set = new TreeSet
while(true){
int a = (int)Math.floor(Math.random() * 100);
if(a > 0 && a <= 100){
set.add(a);
if(set.size() == 10){
break;
}
}
}
System.out.println(set);
}
}
- 3楼网友:梦中风几里
- 2021-12-03 18:47
你先把1到100的整数放到一个list里,然后用Collections.shuffle(另一个只有10个的list);,随机取出10个应该可以吧,一个思路可以试试。
- 4楼网友:第四晚心情
- 2021-12-03 17:18
import java.lang.Math;
public class leibi {
private Math mate;
public static void main(String[] args) {
int[] b=new int[10];
for(int i=0;i b[i]=(int) (Math.random()*100);
for(int j=0;j if((i!=j)&&b[i]==b[j])
b[i]=(int) (Math.random()*100);
}
}
for(int i=0;i System.out.print(b[i]+" ");
}
}
}
public class leibi {
private Math mate;
public static void main(String[] args) {
int[] b=new int[10];
for(int i=0;i
for(int j=0;j if((i!=j)&&b[i]==b[j])
b[i]=(int) (Math.random()*100);
}
}
for(int i=0;i
}
}
}
- 5楼网友:大漠
- 2021-12-03 15:40
StringBuffer resRand = new StringBuffer("");
int maxnum = 0;
while(true)
{
String num = (int)(Math.random()*100)+"";
if(maxnum<10)
{
if(resRand.toString().contains(num))
{
continue;
}
resRand.append(num+",");
maxnum++;
}else
{
break;
}
}
System.out.println(resRand.substring(0,resRand.length()-1));
int maxnum = 0;
while(true)
{
String num = (int)(Math.random()*100)+"";
if(maxnum<10)
{
if(resRand.toString().contains(num))
{
continue;
}
resRand.append(num+",");
maxnum++;
}else
{
break;
}
}
System.out.println(resRand.substring(0,resRand.length()-1));
- 6楼网友:拜訪者
- 2021-12-03 14:01
int array[] = new int[9];//用来存放已经生成的数字
for(int i=0;i<10;i++){
int j = (int)(Math.random()*100);
if(j!==0){
int index = 0;
//分别取出array中的值与生成的值比较,如果不重复则保存到数组中
for(int k=0;k if(j!==array[k]){
array[i] = j;
}
}
}else{
i--;
}
}
数组array中的是随机生成的10个100以内的数,没有调试,需要自己调试一下。
for(int i=0;i<10;i++){
int j = (int)(Math.random()*100);
if(j!==0){
int index = 0;
//分别取出array中的值与生成的值比较,如果不重复则保存到数组中
for(int k=0;k if(j!==array[k]){
array[i] = j;
}
}
}else{
i--;
}
}
数组array中的是随机生成的10个100以内的数,没有调试,需要自己调试一下。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯