程序员月入百万的真相!

最近知乎有一个问题:“突然彩票中奖五千万你会立刻离职吗?”

在这里插入图片描述

没错,5000w!税后对一个年薪20w的程序员来说也足足少奋斗了200年!
“不仅不会离职,反而会考虑把公司收购了,自己当老板!”

声明:本文娱乐随谈,并非劝或诱导大家去买彩票,量力而行,开心就好。

所以程序员月入百万的真相是靠双色球时来运转吗!?

一.买双色球

这几年家里生意不行,疫情又赔了不少钱。而我有个习惯,就是坚持买彩票。
也不图什么一下就中头奖,就随便玩玩。

毕竟买次彩票也就一包烟钱,却可以让你快乐两天,何乐而不为呢?

摸着兜里吃臭豆腐找的十元零钱,来到了巷口那家熟悉的福彩店。

我:“老头,机选一注,5倍!”

黄老头:“好小子,又来了,今天是你第981天做公益了。”

我冷笑了下,心里暗念:这个糟老头子,几十年了你买的彩票都比我吃的饭多了,
不也还不是没中过。

"今天的号,前区后区都不错,还包含了老夫的生日,秒啊秒啊,不如再追他几十注"

我定睛一看前区03-04-05三连号,后面又是16-32,这不是坑呢么?

我信你个鬼:“不了不了,给我重摇个,你这太离谱。”

黄老头摸了摸胡须:“啧啧,年轻人,行再给你来出。”

攥着彩票,临走我还不忘自信给他说,

“等着老头,今儿晚我就中,明儿后都不会再来了,别太想我!”

…结果当晚看到结果的时候我人就傻了

在这里插入图片描述
在这里插入图片描述
这黄老头怕不是诸葛亮转世,自带观星之术?

二.文明观球

首先我们来了解下双色球的规则:
共由【1-33】区间内6个不重复带数字的红球和【1-16】区间内1个蓝球组成。

一等奖(6+1)中奖概率为:红球33选6乘以蓝球16选1=1/17721088=0.0000056%
二等奖(6+0)中奖概率为:红球33选6乘以蓝球16选0=15/17721088=0.0000846%
三等奖(5+1)中奖概率为:红球33选5乘以蓝球16选1=162/17721088=0.000914%
四等奖(5+0、4+1)中奖概率为:红球33选5乘以蓝球16选0=7695/17721088=0.0434%
五等奖(4+0、3+1)中奖概率为:红球33选4乘以蓝球16选0=137475/17721088=0.7758%
六等奖(2+1、1+1、0+1)中奖概率为:红球33选2乘以蓝球16选1=1043640/17721088=5.889%
共计中奖率:6.71%

我们从程序的角度来模拟:

假设一个彩票店,每天都来人买机选(机器随机生成)5注不加倍(即5条号码,一条2元),
那么第几个人会中奖?

1.先抽取一组红球号和蓝球号作为奖池

用Random.nextInt(33)+1表示 1到33随机生成整数
且要用一个数组记录已出的球数,保证红球不能重复号
最后用一个ArrayList来记录红球并且sort自然排序

同样的,用Random.nextInt(16)+1生成一个1到16的整数作为蓝球

如下图程序输出所示
在这里插入图片描述

2.在循环里模拟彩票中奖的校验

在循环里不断地生成一组又一组ArrayList的红球集合和单独int类型整数蓝球,
一组一组进行比较,
直到红球蓝球都与奖池的数字吻合,说明有人中奖了,跳出。

用循环次数除去5+1,表示出第几个来买机选5注的人。

( 为什么很多彩民喜欢买5注10元双色球?

假如我中了一等奖,现在差不多700万,除了税,还剩下560万…
嗯,北京一套房稍微好点的,我查查…
嗯…
差不多1200万左右?

还是回老家买房子吧,四百万左右,再买辆保时捷,差不多了。。。

嗯,买五注吧,10注太贵了,5注,十块钱买不了吃亏、买不了上当
如果是五个号不一样的,那就纯粹为了增加400%的中奖概率了!
对,中奖概率增加了400%!热血沸腾!

而且十块钱也不需要找零,确实方便一些。

运行结果如下:

在这里插入图片描述
当然,彩票虽有公益性质,其中却是大部分的赌博成分,切记不要抱有侥幸心理去尝试,否则只会越陷越深。还请理性购买,娱乐为主,及时止损。

具体代码如下

/**
 * @author wzx
 * @date 2020/6/17 13:46
 */
public class doubleSeQiu {
    public static void main(String[] args) {
        // 奖池号
        ArrayList<Integer> pool = getRedBalls();
        System.out.println("本期双色球奖池号为:");
        System.out.print("红球:");
        for (int i = 0; i < pool.size(); i++) {
            System.out.print(+pool.get(i) + " ");
        }
        System.out.println();
        int blueBall = new Random().nextInt(16) + 1;
        System.out.println("蓝球:" + blueBall);
        int j;
        for (j = 0; j >= 0; j++) {
            if (getRedBalls().equals(pool) && new Random().nextInt(16) + 1 == blueBall) {
                break;
            }
        }
        System.out.println("机选" + j/5+1 + "次彩票中头奖了!");
    }

    /**
     * 红球摇球
     *
     * @return 红球集合 size:6
     */
    private static ArrayList<Integer> getRedBalls() {
        ArrayList<Integer> redBalls = new ArrayList<Integer>();
        boolean[] distinctRed = new boolean[33];
        //创建一个用于存放红色球的数组
        int[] redArr = new int[6];
        int count = 0;
        while (count < 6) {
            int redNum = new Random().nextInt(33) + 1;
            if (!distinctRed[redNum - 1]) {
                redArr[count] = redNum;
                count++;
                distinctRed[redNum - 1] = true;
                redBalls.add(redNum);
            }
        }
        // 排序
        Collections.sort(redBalls);
        return redBalls;
    }
}
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值