| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 646 人关注过本帖
标题:小程序,求助大家
只看楼主 加入收藏
SkyBird
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2005-10-30
收藏
 问题点数:0 回复次数:9 
小程序,求助大家
求助
要求在1到29之间产生随机数字,不许重复
2005-10-30 18:40
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
SkyBird,
老师傅啊, 你的题目都没表达清楚啊.想好了重新再发言.

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2005-10-30 18:59
SkyBird
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2005-10-30
收藏
得分:0 

其实就是做一个彩票的程序
每次运行的时候都会产生随机的7个数字(在1到29之间)
要求每次这7个数字不能重复


2005-10-30 19:11
飘飘叶子
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:597
专家分:10
注 册:2005-8-17
收藏
得分:0 
使用random产生随机数,但他只能产生0~1之间的一个数字,要产生1~37之间的某一个数字的话,自己想一想下要如何实现吧……不是很难
这个当然是在一个循环里完成的,在循环后再判断是否跟前面的数字有重复,重复就重新来一次,不重复则附值。
没空给你写代码……忙死了………………

向着软件工程师的目标前进!
2005-10-30 20:37
qijiayan7
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2005-10-30
收藏
得分:0 
import java.util.*;
public class test{
public static void main(String arg[]){
int a;
boolean[] t=new boolean[27];
for(int i=0;i<7;i++)
{
do
{
a=(int)(Math.random()*27);

}while(t[a]);
t[a]=true;
System.out.println(a);
}

}
}

楼主看看这样可以么?我不确定.
2005-10-30 21:43
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
给你说个算法:
1)建立一个 integer 数组,长度为29
2)对数组赋初值,用一个 for loop, 这样这个数组中就有1到29 这些数
3)用一个 for loop 执行7次,
每次产生一个数,这个小于等于28 大于等于0, 这个数就是 index 数
判断该 index 下的数是否为零, 如果是继续产生0到28 的数
如果不是
输出该index下的数, 也可以存在另外一个数组中
将该index下的数字设为零
4)跳出 for loop, 程序结束




自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2005-10-31 02:12
wutaoandy
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2005-10-18
收藏
得分:0 

import java.util.*;

public class algorithm_2
{
public static void main(String[] args)
{
ArrayList num = new ArrayList();
int[] result = new int[7];
for(int i = 0; i<29; i++)
num.add(i,Integer.toString(i+1));


for(int j= 0;j<7;j++)
{
int n = (int)(Math.random()*num.size());
result[j] = Integer.parseInt((num.get(n).toString()));
num.remove(n);
}

for(int i= 0;i<7;i++)
{
System.out.println(result[i]);
}
}
}
你试试


2005-10-31 17:17
SkyBird
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2005-10-30
收藏
得分:0 

可以的,谢谢


2005-10-31 19:02
SkyBird
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2005-10-30
收藏
得分:0 
但是7楼的涉及到容器了,对于容器我现在还不是特别的明白,请问还有别的方法么

2005-10-31 19:04
SkyBird
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2005-10-30
收藏
得分:0 

回复五楼
可以 谢谢,但是我发现有的时候会随机选到0,但是彩票是没有0的,所以改一下
a=(int)(Math.random()*27)+1;

十分感谢大家啊!!!


2005-10-31 19:21
快速回复:小程序,求助大家
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018076 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved