用Java程序写一个彩票的模拟程序生成6个红球(1-33的随机数),1个蓝球(1-16的随机数),随机数可以重复 5

用Java程序,用Random,off循环语句等基础的Java代码编写,万分感谢... 用Java程序,用Random,off循环语句等基础的Java代码编写,万分感谢 展开
 我来答
百度网友b09bcc1
2013-07-21 · TA获得超过363个赞
知道答主
回答量:168
采纳率:0%
帮助的人:56.6万
展开全部
import java.util.Random;
import java.util.Scanner;

public class DoubleBalls {

public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("是否机选一组双色球号码?(Y/N)");
Scanner input = new Scanner(System.in);
char a = input.next().charAt(0); // 输入一个char字符,0位即是第一位

if (a == 'Y' || a == 'y') {
Random suiji = new Random(); // 创建suiji方法
int blue = suiji.nextInt(16);//从0到16中选一个数字个蓝球
while(blue==0){
blue=suiji.nextInt(16);
}//如果选到了0,再选一次给blue
int red[] = new int[6];// 用一个6个元素的数组装红球
for (int i = 0; i < 6; i++) {
red[i] = suiji.nextInt(33); // 随机分配0到33的整数
if (red[i] == 0) {i--;}
if (i == -1) {i = 0;}
for (int j = 0; j < i; j++) {
while (red[i] == red[j]) {i--;}// 发现相同的从新回去生成一个
}
}
System.out.print("红球:");
for (int k = 0; k < red.length; k++) {
System.out.print(red[k] + " ");// 输出数组red
}
System.out.print("蓝球:"+blue);
} else
System.out.println("fuck you~");
}
}

应该可以了,可以产生一组。。。如果楼主你中头奖了,送我套房好了哈^0^
yuanzhider
2013-07-21
知道答主
回答量:23
采纳率:100%
帮助的人:11.2万
展开全部
public class RandomDemo {
public static void main(String[] args) {
LotteryTicket lt = new LotteryTicket();
int red[] = lt.getRed();
System.out.print("随机生成的红球为:");
for(int i=0;i<6;i++){
System.out.print(" "+red[i]);
}

System.out.print("\t蓝球为:"+lt.getBlue());
}

}

class LotteryTicket{ 彩票生成类
private int[] red = new int[6];
public int[] getRed(){ //返回红球
int i =0;
for(;i<6;i++){
red[i] = (int)(Math.random()*33) +1;
for(int j=0;j<i;j++){ //保证了重复,我个从认为这个彩票好像不能重复吧
if(red[i]==red[j]){
red[i] = (int)(Math.random()*33) +1;
j=0;
}
}
}
return red;
}
public int getBlue(){ //返回蓝球
return (int)(Math.random()*16) +1;
}
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
掌心童话
2013-07-21 · TA获得超过291个赞
知道小有建树答主
回答量:133
采纳率:0%
帮助的人:55.3万
展开全部
private String generateDoubleChrom(){
Random random=new Random();
int redball[]=new int[6];
StringBuffer stringBuf = new StringBuffer();
for(int i=0;i<6;){
int temp =random.nextInt(33)+1;
if(this.isGenerated(redball, temp))
continue;
else stringBuf.append((redball[i++]=temp )+(i==6?"":","));
}

stringBuf.append("|"+(random.nextInt(16)+1));
return stringBuf.toString();
}
private boolean isGenerated(int[] scope,int target){
if(scope==null)return false;
for(int i=0;i<scope.length;i++)
if(target==scope[i])return true;
return false;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a47f6080e
2013-07-20 · TA获得超过458个赞
知道小有建树答主
回答量:127
采纳率:100%
帮助的人:122万
展开全部
关键代码:
Random rand = new Random();
for(int i=0;i<6;i++){
redBall[i] = 1 + rand.nextInt(33);
}
buleBall = 1 + rand.nextInt(16);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
虚之源
2013-07-20 · TA获得超过313个赞
知道小有建树答主
回答量:484
采纳率:50%
帮助的人:191万
展开全部
你都知道用Random for循环写啦,自己写一下就OK啦·
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式