`
jackroomage
  • 浏览: 1217533 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

彩票 31 选 7

 
阅读更多

方法一、用集合实现(用了面向对象的思维)。

 

public class Demo4 {
  public static void main(String[] args) {
   List list  =new ArrayList();
   for(int i=1;i<=31;i++){
                  list.add(i);
     }
  
   for(int i=0;i<7;i++){
      //得到谁,移除谁。list的大小是变化,所以不会重复。
   int k= (int)(Math.random()*(31-i));
            System.out.println(list.get(k));
            list.remove(k);
        }
   }
   }

 

-----------------------------------------------------------------------------随机输出数字

 

ArrayList<Integer> hm= new ArrayList<Integer>();  //时间=547
         
            int ui=50000;
            for(int i=0;i<ui;i++){
                 hm.add(i);
            }
       
            int ul=0;
           long  l1 = System.currentTimeMillis();
            for(int i=0;i<ui;i++){
                int it=(int)(Math.random()*(ui-i));
    //            System.out.println(hm.get(it));
                hm.remove(it);
            }
            long  l2 = System.currentTimeMillis();
      
            System.out.println("时间="+(l2-l1));

 

 

------------------------------------------------------------------------------

 

 

 

 

 

方法2、 用数组实现

 

public class Test5 {
  public static void main(String[] args){
//   指定数组的大小
   int n=30;
   int[] a=new int[n];
  
//   给数组赋值
   for(int i=0;i<a.length;i++){
    a[i]=i+1;
   }
//   声明一个放新数的数组。
   int[] k=new int[7];
   for(int i=0;i<k.length;i++){
//   随机生成一个数,用来做旧数组的索引。
   int s=(int)((Math.random())*n);
//   给新数组赋值
    k[i]=a[s];
//        给旧数组(已经取出的那个位置)替换值,就是让数组的最后一位,补上去。
        a[s]=a[n-1];
//    让旧数组大小减一
       n--;
    System.out.println(k[i]);
   }

  }
}

 

 ----------------------------------------  下面是优化数组后的随机输入代码:

 

    public static void main(String[] args){
       
        Long l1=System.currentTimeMillis();
    //   指定数组的大小
       int n=30;
       int[] a=new int[n];
     
    //   给数组赋值
       for(int i=0;i<a.length;i++){
        a[i]=i+1;
       }
    //   指定 随机输入数字的个数(不能大于数组的个数)。
       int nd=7;
       for(int i=0;i<nd;i++){
    //   随机生成一个数,用来做数组的索引。
       int s=(int)((Math.random())*(n-i));
//       System.out.println(a[s]);
//        给已经取出的那个位置替换值,就是让数组的最后一位,补上去。
        a[s]=a[n-i-1];
       }

        Long l2=System.currentTimeMillis();
        System.out.println("运行时间:"+(l2-l1));
       
      }

 

----------------------------------------------------------------------

 

 

下面是:别人总结的:

1、也谈生成不重复数的算法

2、想从1--100之间随机不重复的20个数,赋给a[ ]数组

3、生成不重复的随机数的三种方法

 

 

 

        我只想说一句话,方法还有很多!发挥自己的思想吧!

分享到:
评论

相关推荐

    体育彩票36选7号码分析系统Vb源码版.rar

    体育彩票36选7号码分析系统Vb源码版,里面的排序代码主要参考了别人的代码。数组交换值,保持两个Array的对应关系,Myarray2只是跟随MyArray数组调整。功能:10个号码的出6保5型,15个号码的中7保5型,10个号码的中7保...

    彩票选号系统

    彩票选号系统是针对福利彩票和体育彩票而设计的,它利用已中奖的历史资料,通过概率规则来筛选随机号码,从而生产出组组...这里所针对的彩票选码有两种固定型,即31选7和36选7;但是在初始化时还可以自行设定一种类型。

    模拟32选7彩票抽奖程序

    在编程领域,开发一个“模拟32选7彩票抽奖程序”是一个常见的实践项目,旨在帮助开发者理解和掌握随机数生成、数据处理以及基本的算法应用。在这个项目中,我们主要关注的是Java语言,因此,它是一个用Java实现的...

    31个号码随机产生7个号码

    在很多情况下,我们都需要从一组数字中随机选取若干个数字,比如彩票选号、抽签等场景。这种需求通常涉及到随机数生成及去重的技术实现。本文将通过一个具体的C语言程序示例来讲解如何从31个号码中随机产生7个号码,...

    易语言福建体育彩票分析软件

    该软件提供了对福建体育彩票中两种玩法的分析:1_22选5和1_31选7。这两种玩法分别要求从22个和31个号码中选择一定数量的号码进行投注。软件通过计算每组号码出现的概率,为用户提供了预测参考。计算概率1是指对所有...

    彩排机选(我自己用C#编写的)

    可以机选福利彩票和体育彩票 public partial class 福利彩票 : Form { public 福利彩票(彩票机选 newFrom) { InitializeComponent(); MdiParent = newFrom; } static Random rd = new Random(); static List...

    彩票 课程设计源代码

    这段代码首先生成7个1到31之间的随机数,然后检查这些随机数是否重复,如果不重复则添加到向量`b`中并排序后返回0,否则返回1表示失败。 #### 5. 用户输入验证 ```cpp int trap(){ for (int i = 0; i &lt; 7; i++) { ...

    lottery系统要求说明1

    例如,对于大乐透的5选5模式,如果开奖结果为[04, 07, 11, 19, 23],那么AC值就是(7-4)+(11-7)+(19-11)+(23-19)…=(10-1)=9,但因为存在重复差值,我们只计一次,所以实际AC值为7-(5-1)=3。 3. **特殊数值统计**: ...

    软件学院java上机题及答案

    #### 题目五:生成35选7的彩票中奖号码 **题目描述**: 编写一个Java程序,随机生成7个1至35之间(包括1和35)的不重复整数,并输出。 **解析**: 1. **算法思路**: - 使用HashSet存储已选择的数字,确保不重复...

    C#.net_经典编程例子400个

    28 实例028 为触摸屏程序添加虚拟键盘 29 1.8 窗体效果 30 实例029 半透明渐显窗体 31 实例030 窗口颜色的渐变 32 1.9 窗体动画 33 实例031 窗体中的滚动字幕 33 实例032 动画...

    C#程序开发范例宝典(第2版).part13

    实例007 带背景的工具栏 7 实例008 浮动工具栏 7 实例009 带下拉菜单的工具栏 8 实例010 具有提示功能的工具栏 8 1.3 状态栏设计 9 实例011 在状态栏中显示检查框 9 实例012 带进度条的状态栏 10 实例013 ...

    C#程序开发范例宝典(第2版).part08

    实例007 带背景的工具栏 7 实例008 浮动工具栏 7 实例009 带下拉菜单的工具栏 8 实例010 具有提示功能的工具栏 8 1.3 状态栏设计 9 实例011 在状态栏中显示检查框 9 实例012 带进度条的状态栏 10 实例013 ...

    C#程序开发范例宝典(第2版).part02

    实例007 带背景的工具栏 7 实例008 浮动工具栏 7 实例009 带下拉菜单的工具栏 8 实例010 具有提示功能的工具栏 8 1.3 状态栏设计 9 实例011 在状态栏中显示检查框 9 实例012 带进度条的状态栏 10 实例013 ...

    C#程序开发范例宝典(第2版).part12

    实例007 带背景的工具栏 7 实例008 浮动工具栏 7 实例009 带下拉菜单的工具栏 8 实例010 具有提示功能的工具栏 8 1.3 状态栏设计 9 实例011 在状态栏中显示检查框 9 实例012 带进度条的状态栏 10 实例013 ...

Global site tag (gtag.js) - Google Analytics