
正文
java代码双色球 java模拟双色球
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
用Java程序写一个彩票的模拟程序生成6个红球(1-33的随机数),1个蓝球(1-16的随机数),随机数可以重复
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字符java代码双色球,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~");
}
}
应该可以了,可以产生一组。。。如果楼主java代码双色球你中头奖了,送java代码双色球我套房好了哈^0^
相关问答
Q1: JAVA双色球问题求解
双色球代码
package tools.ssq;
import java.util.Random;
/**
* 随机生成N组双色球号码
* 红球 33 个球 (01~33) 取 六
* 蓝球 16 个球 (01~16) 取 一
* 结果采用数组存储, 数组可以利用数组扩容追加新的"球号"
*/
public class Ssq {
//定义2个动态数组存储红蓝球结果
private MySet redBall,blueBall;
//初始化数组
public Ssq(){
redBall=new MySet();
blueBall=new MySet();
}
/**
* @param number
* @param size
* 生成number个最大为size不重复的随机数
*/
private void creatRandomNumber(int number,int size){
//定义一个Random拥有生成随机数
Random rd=new Random();
//定义一个数组把redBall赋值给它当number等于1时把blueBall赋值给它
MySet ball=redBall;
if(number==1){
ball=blueBall;
}
//循环生成随机数添加到动态数组中 当数组的长度大于number时退出循环
while(ball.length()number){
ball.add(rd.nextInt(size));
}
}
/**
* 打印结果
*/
private void printNumber(){
//排序打印
redBall.sort();
System.out.println(redBall.toString()+blueBall.toString());
}
/**
* @param number
* 生成number组号码
*/
private void creatNumberGoupSsq(int number){
for(int numberGroup=0;numberGroupnumber;numberGroup++){
creatRandomNumber(6, 33);
creatRandomNumber(1, 16);
printNumber();
redBall.clear();
blueBall.clear();
}
}
public static void main(String[] args){
Ssq ssq=new Ssq();
ssq.creatNumberGoupSsq(1);
}
}
工具随机数组代码
package tools.ssq;
import java.util.Arrays;
/**
* 工具类 动态数组模拟集合 可以动态的对该数组进行增删改查
*/
public class MySet {
//定义一个长度为0的存储集合数组(存储集合)和临时数组(为了实现动态数据创建的临时数组) ,和一个标志位用来返回操作的成功与否,集合索引
private Object[] mySet=new Object[0];
private Object[] tmpArray=null;
private boolean flag;
private int index;
/**
* @param obj
* @return flag
* 把传来的对象添加进存储集合
* 按照需求该集合中不应该存在重复元素
*/
public boolean add(Object obj){
//把标志位设置为否
flag=false;
//判断传进来的队形是否在集合中
if(contains(obj)==-1){
//如果不在把集合中的数据和传进来的对象复制到比集合大一的临时集合中
tmpArray=new Object[mySet.length+1];
System.arraycopy(mySet, 0, tmpArray, 0, mySet.length);
tmpArray[tmpArray.length-1]=obj;
//在把临时集合赋值给存储集合 把标志位设为真
mySet=tmpArray;
flag=true;
}
//返回标志位
return flag;
}
/**
* @param obj
* @return flag
* 如果传进来的对象找存储集合中就把它删除
*/
public boolean delete(Object obj){
//设置标志位为否
flag=false;
//获取传进来的对象的索引
index=contains(obj);
//如果不为-1 创建个临时数组长度为存储集合-1
if(index!=-1){
tmpArray=new Object[mySet.length-1];
//把集合中除了索引所指的数据拷贝到临时数组中
System.arraycopy(mySet, 0, tmpArray, 0, index);
System.arraycopy(mySet, index+1, tmpArray, index, tmpArray.length-index); //length为要拷贝的个数不是下标
//在把临时集合赋值给存储集合
mySet=tmpArray;
//把标志位设为真
flag=true;
}
//返回标志位
return flag;
}
/**
* @return length
* 返回集合的长度
*/
public int length(){
return mySet.length;
}
/**
* 清除集合中所有元素
*/
public void clear(){
mySet=new Object[0];
}
/**
* @param oldObj 被覆盖的对象
* @param obj 覆盖的对象
* @return flag
* 如果被覆盖在存储集合中就拿覆盖对象覆盖它
*/
public boolean update(Object oldObj,Object obj){
//设置标志位为否
flag=false;
//获取被覆盖对象的索引
index=contains(oldObj);
//索引如果不为-1 拿覆盖对象覆盖存储集合索引处的数据,标志位设为真
if(index!=-1){
mySet[index]=obj;
flag=true;
}
//返回标志位
return flag;
}
/**
* @return mySet
* 把集合返回给调用者
*/
public Object[] getAll(){
return mySet;
}
/**
* @param obj
* @return flag
* 判断该对象是否在集合中如果在返回索引不在返回-1
*/
public int contains(Object obj){
//初始化索引为-1
index=-1;
//遍历存储集合
for(int index=0;index=mySet.length-1;index++){
//拿被遍历的集合元素依次跟传进来的对象比较如果相等的话把索引设置为该元素在存储集合中的索引并退出遍历
if(mySet[index].equals(obj)){
this.index=index;
break;
}
}
//返回索引
return this.index;
}
/**
* 让存储集合中的元素进行升序进行排序
*/
public void sort(){
Arrays.sort(mySet);
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
* 把存储集合中的所有元素按字符串依次添加进字符串缓冲区中 然后返回字符串缓冲区的字符串表现形式
* 要求存储集合中的元素是基本类型或者元素对象已经覆盖过toString方法否则很可以能返回的字符串达不到你所要的要求
*/
@Override
public String toString(){
//定义个StringBuffer用来存储存储集合中的所有元素
StringBuffer sb=new StringBuffer();
//添加前缀
sb.append("[");
//遍历存储集合把所有元素添加进StringBffer中
for(Object obj:mySet){
sb.append(obj).append(" ");
}
//添加后缀
sb.append("]");
//返回StringBuffer
return sb.toString();
}
}
Q2: java双色球排列组合算法 - 根据复式列出所有单式号码
你这不就是6个数字随机的排序问题么
1-6的排序打出来+2个篮球
排序:6^5^4^3^2^1 * 2 种
for循环多重嵌套。
位置变1,从上到下循环一边。
你还是自己嵌套吧,我发现如果写主代码的话也要写几十行。
Q3: java怎样让双色球随机6个出来不重复,我刚开始学,有些还没学到,麻烦用最简单的一种方法
方法很多种java代码双色球,最简单理解java代码双色球的就直接便利一下数组就好了
for(int n = 0 ; ni ; n++){
if(a[i]==a[n]){
continue;
}
}
换掉
if(a[i]==a[i-1])
continue;
关于java代码双色球和java模拟双色球的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







