双色球算法
来源:互联网 发布:win10视频桌面软件 编辑:程序博客网 时间:2024/04/30 09:28
前言
首先说明一下,博主是没有能力预测双色球的,只是看最近支付宝、京东等客户端均有随机选彩票(双色球)的功能,想着模拟实现一下这个随机选号的算法。
之前看到有人说博主比较乐观,都是咬牙坚持的,博主也各种屌死,各种幻想,例如中了双色球一等奖开着宝马去阿里写代码,哈哈,我还是挺喜欢写代码的。(ps:真蛋疼,大论文还没写完,在这里搞神马双色球啊)
双色球随机算法思路
最近我每周也会买一注双色球,玩了2期之后,知道红球是33选6,蓝球是16选1,因此中奖的概率为:1 / (C(6, 33) × C(1, 16)) = 1 / 17721088 。好久没搞概率了,这么简单的概率题目,应该没算错。
以33选6为例子,我们的算法只需要模拟如下的过程:
- 初始化数组,数组内容为:[1...33]
- 从数组下标1到33中随机选取一个下标,例如7,则交换下标为7和当前最后一位的数(即下标为32),将下标为7的数放入结果数组中
- 再从数组下标1到32中随机选取一个数,交换该数和倒数第二位数的位置
- ......
- 直到6个数均选出为止
至于Rondom类大家可以用java自带的Random类即可,提供一个种子,估计客户端都是用的时间戳,这里我也用时间戳,大家还可以考虑生日神马的。
双色球随机算法
import java.util.ArrayList;import java.util.Random;/** * 双色球随机算法类 * * @author zhengyi.wzy * */public class DoubleBall { public static void main(String args[]) { // 获取红球 ArrayList<Integer> redBalls = getBalls(1, 33, 6); // 获取蓝球 ArrayList<Integer> buleBalls = getBalls(1, 16, 1); // 打印输出 System.out.println("本期双色球中奖号码为:" + redBalls + ", " + buleBalls); } private static ArrayList<Integer> getBalls(int min, int max, int size) { ArrayList<Integer> result = new ArrayList<Integer>(); ArrayList<Integer> stores = new ArrayList<Integer>(); for (int i = min; i <= max; i++) { stores.add(i); } for (int i = 0; i < size; i++) { int index = getRandomIndex(stores.size() - i); result.add(stores.get(index)); swapNumbers(stores, index, stores.size() - i - 1); } return result; } private static int getRandomIndex(int max) { Random random = new Random(System.currentTimeMillis()); return random.nextInt(max); } private static void swapNumbers(ArrayList<Integer> stores, int index, int last) { int tmp = stores.get(index); stores.set(index, stores.get(last)); stores.set(last, tmp); }}
后记
实验了几组数据,还是能够很好的保持随机性的,哈哈,其实我也就是写不进论文去,然后突然想写个双色球的随机算法,大家平时还是要靠自己的坚持努力获取别人的认可,双色球这种东西有人说是一种低智商税,我感觉可以作为生活中的小调味剂,和女友一起买一注,然后讨论一下中大奖以后的生活,还是挺美好。当然了,买完了该加班加班,该写代码继续写代码,博主继续写论文去了。
对了,我这期买的号码就是用这个算法随机算出来的:
本期双色球中奖号码为:[22, 17, 23, 4, 12, 20], [9]
大家如果用这个算法中奖了,可别忘了请我吃顿饭哈。
1 0
- 双色球算法
- 双色球算法
- 双色球核对算法
- 双色球随机算法
- 双色球算法实现
- 双色球旋转矩阵算法
- 算法
- 算法
- 算法
- 算法
- 算法
- 算法
- 算法
- 算法
- 算法
- 算法
- 算法
- 算法
- 收到货发动机和积分换个
- SupremeWord进度33.1%
- 不root权限的情况在用adb打开databases
- 位域(Bit Field)
- Python快速学习08:模块的操作
- 双色球算法
- winform 时间控件显示 时分秒
- JavaWeb hibernate3.0 tomcat7 诡异的问题 已解决
- HDU 2819 (二分匹配)
- 设计模式——结构型模式(包含7种)
- inverse 与 cascade 属性使用详解、
- CVPR 2012 Papers
- 第八周项目一(2)-友元 重载
- mfc 对话框拉伸