方法一、用集合实现(用了面向对象的思维)。
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));
}
----------------------------------------------------------------------
下面是:别人总结的:
2、想从1--100之间随机不重复的20个数,赋给a[ ]数组
我只想说一句话,方法还有很多!发挥自己的思想吧!
相关推荐
体育彩票36选7号码分析系统Vb源码版,里面的排序代码主要参考了别人的代码。数组交换值,保持两个Array的对应关系,Myarray2只是跟随MyArray数组调整。功能:10个号码的出6保5型,15个号码的中7保5型,10个号码的中7保...
彩票选号系统是针对福利彩票和体育彩票而设计的,它利用已中奖的历史资料,通过概率规则来筛选随机号码,从而生产出组组...这里所针对的彩票选码有两种固定型,即31选7和36选7;但是在初始化时还可以自行设定一种类型。
在编程领域,开发一个“模拟32选7彩票抽奖程序”是一个常见的实践项目,旨在帮助开发者理解和掌握随机数生成、数据处理以及基本的算法应用。在这个项目中,我们主要关注的是Java语言,因此,它是一个用Java实现的...
在很多情况下,我们都需要从一组数字中随机选取若干个数字,比如彩票选号、抽签等场景。这种需求通常涉及到随机数生成及去重的技术实现。本文将通过一个具体的C语言程序示例来讲解如何从31个号码中随机产生7个号码,...
该软件提供了对福建体育彩票中两种玩法的分析:1_22选5和1_31选7。这两种玩法分别要求从22个和31个号码中选择一定数量的号码进行投注。软件通过计算每组号码出现的概率,为用户提供了预测参考。计算概率1是指对所有...
可以机选福利彩票和体育彩票 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 < 7; i++) { ...
例如,对于大乐透的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. **特殊数值统计**: ...
#### 题目五:生成35选7的彩票中奖号码 **题目描述**: 编写一个Java程序,随机生成7个1至35之间(包括1和35)的不重复整数,并输出。 **解析**: 1. **算法思路**: - 使用HashSet存储已选择的数字,确保不重复...
28 实例028 为触摸屏程序添加虚拟键盘 29 1.8 窗体效果 30 实例029 半透明渐显窗体 31 实例030 窗口颜色的渐变 32 1.9 窗体动画 33 实例031 窗体中的滚动字幕 33 实例032 动画...
实例007 带背景的工具栏 7 实例008 浮动工具栏 7 实例009 带下拉菜单的工具栏 8 实例010 具有提示功能的工具栏 8 1.3 状态栏设计 9 实例011 在状态栏中显示检查框 9 实例012 带进度条的状态栏 10 实例013 ...
实例007 带背景的工具栏 7 实例008 浮动工具栏 7 实例009 带下拉菜单的工具栏 8 实例010 具有提示功能的工具栏 8 1.3 状态栏设计 9 实例011 在状态栏中显示检查框 9 实例012 带进度条的状态栏 10 实例013 ...
实例007 带背景的工具栏 7 实例008 浮动工具栏 7 实例009 带下拉菜单的工具栏 8 实例010 具有提示功能的工具栏 8 1.3 状态栏设计 9 实例011 在状态栏中显示检查框 9 实例012 带进度条的状态栏 10 实例013 ...
实例007 带背景的工具栏 7 实例008 浮动工具栏 7 实例009 带下拉菜单的工具栏 8 实例010 具有提示功能的工具栏 8 1.3 状态栏设计 9 实例011 在状态栏中显示检查框 9 实例012 带进度条的状态栏 10 实例013 ...