美文网首页
56个相亲对象凑齐12星座的概率

56个相亲对象凑齐12星座的概率

作者: 自拍的梵谷 | 来源:发表于2018-02-25 10:39 被阅读23次

昨天逛豆瓣看到这篇访谈:相亲了56次,我结婚了文章,除了观摩文章主题本身的独特风格外,里头也提到了一个问题:相亲56次,凑齐12星座的可能性多大?于是我整理了一下思路,写了这篇文章。

我的思路基于以下假设:

  • 每个人是什么星座的概率是相等的,即1/12.
  • 相亲的56个人的星座相互独立.

在上述两个假设的基础上,对于这个群体,其可能包含的星座数为1,2,3,... ,11,12. 那么要求得包含12星座的概率,用必然事件的概率1减去只包含1个,2个,直到11个的概率, 便可得到。即:

p(12/56) = 1 - p(11/56) - p(10/56) - ... - p(2/56) - p(1/56).

其中 p(i/56) = [C(12,i) * i^56] / ( 12^ 56) , C(12,i)是从12个星座中选取i个的组合数,其定义为 C(12,i) = 12!/( i! * (12-i)!) ).

既然p(i/56)的定义公式已经给出,那么其具体算法实现就很简单,以下是一个简单的java实现:

//给定样本总量为n,对于单个样本,其属性有m个可能的取值,且概率相等
    //比如,假设随机相亲了56个人,这56个人是什么星座相互独立,求这56个人集齐了12星座的概率。。
    //这里用到了间接法,即计算只集齐了11,10,9,...,2,1个星座的概率,那么集齐了12星座的概率是1-sum
    public double getNegativeSum(int n, int m){
        double result = 0;
        for(int i = 1; i < m; i++){
            result = result + ( getCombinationSum(m,i) * getPowerValue(i,n) );
        }
        return result / getPowerValue(m,n);
    }

其中getCombinationSum(int m, int i)计算组合数C(m,i),getPowerValue(int m, int n)计算m的n次方,其具体实现如下:

//计算m的n次方
    private double getPowerValue(double m, double n){
        return Math.pow(m, n);
    }

//计算从n个不同元素中取出m个元素的组合数 ( n >= m)
    private double getCombinationSum(int n, int m){
        double tmp_n = getFactorial(n);
        double tmp_m = getFactorial(m);
        double tmp_n_m = getFactorial(n-m);
        return tmp_n / (tmp_m * tmp_n_m);
    }

其中getFactorial(int m)是计算m的阶乘,其具体实现如下:

//计算m的阶乘
    private double getFactorial(int m){
        int result = 1;
        if (m == 1 || m == 0){
            return result;
        }
        for(int i = 1; i < m ; i++){
            result = result * (i+1);
        }
        return result;
    }

所以问题56个相亲对象凑齐12星座的概率的答案是:
1 - getNegativeSum(56,12),约等于0.91.
具体源码请点击这里.

相关文章

  • 56个相亲对象凑齐12星座的概率

    昨天逛豆瓣看到这篇访谈:相亲了56次,我结婚了文章,除了观摩文章主题本身的独特风格外,里头也提到了一个问题:相亲5...

  • 我就是颜好有钱又喜欢浪,才去留学的呀!

    “相亲对象是女留学生,接盘的概率大吗?” 问这种问题的人,是个xx的概率大吗? ...

  • 年华仍在,天涯不远

    走天涯: 嗨,好久不见,别来无恙! 听说你仍然奔波在相亲路上,这是你见的第多少个相亲对象了?有没有从26个字母凑齐...

  • 十二星座(3)

    又聊到12星座了大家找了一些关于12星座的资料了吗?找到对象了分享分享吧今天我也找到了一些关于12星座的资料希...

  • 对星座的执念

    曾经,特别迷信星座,总觉得金牛女的性格特征和自己特别相符!甚至,别人介绍的相亲对象,还会比对一下星座相合指...

  • 你不是不努力,你只是数学不好

    从相亲视角来说,面试和相亲大体上是一个逻辑。 而生活中,你有多大概率会遇到第一个相亲对象就选择发展恋情?还是至少相...

  • 你不是不努力,你只是数学不好

    从相亲视角来说,面试和相亲大体上是一个逻辑。 而生活中,你有多大概率会遇到第一个相亲对象就选择发展恋情?还是至少相...

  • 星座揭秘:当12星座决定放弃你了

    12星座对爱的态度 如何看穿12星座在说谎 12星座什么时候不是人 12星座能吃的小吃货 当12星座决定放弃你了 ...

  • Coupon Collector's Problem

    简单化的问题: 问:一个有理想抱负的女生交男朋友,交到所有12个星座的男朋友的期望是多少(假设每个星座的概率是1/...

  • 1、[VBA入门到放弃笔记]对象属性方法事件

    一、概念1.1对象:和相亲对象的“对象”一样的概念,你相亲的对象是高富帅还是白富美?1.2属性:相亲对象的属性--...

网友评论

      本文标题:56个相亲对象凑齐12星座的概率

      本文链接:https://www.haomeiwen.com/subject/hajlxftx.html