网络推广[Email]



在校内看到,关于手机末4位相同概率

同济网论坛 http://bbs.tongji.net
刚刚进入“校内”世界,“同济大学”有一篇帖子
大致意思是大家把自己的手机号码的末4位留下,看看有没有谁比较有缘……(就是末4位相同)

单独来说,4位数字,自己持有一个,再抽取一个,相同的概率是1/10000,乍一看,概率是挺小的
有人同学在报上自己的末4位号码时感慨“概率真的是太小了”

……大概是文科的同学吧…

针对这个问题我编制了一个C++程序……代码在下:
#include "iostream.h"
#include "iomanip.h"
void main()
{
double k=1;
int i=1,n;
cout<<"手机号码末4位相同的概率有多大?"<<endl;
cout<<"多少个手机号码?\t";
cin>>n;
while(i<=n-1)
{
  k=(10000-i)*k/10000;
  i++;
}
cout<<"经过计算,至少有两个手机末4位数相同的概率为"<<setprecision(25)<<1-k<<endl;
}


当参与人数达到50的时候,计算显示至少有两个相同的概率是11.5%
参与100,概率39.1%
参与150,67.4%,2/3概率
参与200,86.5%,已经蛮高了

如果还是以“一万个回帖才能出一对”的观点来看,确实很惊人,所以不明白的看贴者就会觉得很神奇,很“有缘”

BTW:做了一些假设,比如说手机号码是不可挑选的,均匀的……但是实际情况好像不是这样
看到不少8888,可能是高价号……但是我同学笑我,说我死心眼,可能是随便打的…这我就不知道了。
 

更多同济资讯请访问同济大学论坛直接去论坛查看 举报不良信息 广告投放联系
我也来说两句 查看全部回复

最新回复

  • 大眼小石头 (2008-3-07 00:42:46)

    这个和以前算生日同一天的概率很像,乍一看以为几率很小,其实很大
  • search255 (2008-3-07 07:20:46)

    QUOTE:

    原帖由 大眼小石头 于 2008-3-7 00:42 发表
    这个和以前算生日同一天的概率很像,乍一看以为几率很小,其实很大
    #include "iostream.h"
    #include "iomanip.h"
    void main()
    {
    double k=1;
    int i=1,n;
    cout<<"本程序用于计算如下环境:一年设365天,个人于每天出生概率相同,现在班级中有n名同年出生同学,求其中至少两位同学生日一致的概率。"<<endl;
    cout<<"班上有多少学生?\t";
    cin>>n;
    while(i<=n-1)
    {
      k=(365-i)*k/365;
      i++;
    }
    cout<<"经过计算,至少有两位同学生日相同的概率为"<<setprecision(25)<<1-k<<endl;
    }


  • search255 (2008-3-08 15:04:24)

    http://bbs.tongji.net/thread-532786-1-1.html

    原来到处都有这样的帖子……
  • namelessone (2008-3-10 07:40:20)

    参与人数达到理论上的可能性的平方根时,“碰巧”的概率就相当的大了
  • namelessone (2008-3-10 07:41:26)

    所以基本上每个班级都会有人同一天生日
  • namelessone (2008-3-10 07:41:57)

    我是指小学初中那种50人左右的班级。。。
  • mrbig727 (2008-3-28 13:12:29)

    这个问题,记得n年前在我+数学=聪明上看到过...
  • scythe (2008-4-03 13:31:58)

    光写算法文科的同学依然看不明白的,你们这些理科生啊,果然不善于交流

    那个原理,就是当你只有一个固定号码要去找一万个号码中的重号的话,确实只有万分之一的机会
    但是由于参与的人数不是一,而是远大于一的数字,每一对都有万分之一的机会获得重合的效果,那么就变成了参加人数之间两两组合的总数乘以重合几率了
    再看看50人的情况,C(50,2)=50x49/2!=1225,再乘以万分之一,得12.5%

    ......

    为什么有差别?

    [ 本帖最后由 scythe 于 2008-4-3 14:01 编辑 ]
  • 夏右 (2008-4-05 13:09:36)

    没学过C++,数学也不好。。。
  • search255 (2008-4-05 20:26:17)

    QUOTE:

    原帖由 scythe 于 2008-4-3 13:31 发表
    光写算法文科的同学依然看不明白的,你们这些理科生啊,果然不善于交流

    那个原理,就是当你只有一个固定号码要去找一万个号码中的重号的话,确实只有万分之一的机会
    但是由于参与的人数不是一,而是远大于一的数字,每 ...
    我觉得蛮好看懂的
    就是来了一个人,挑了一个号码,就把一万张椅子坐掉了一张
    然后来第二个人,他挑一个座位,不与第一个重的概率是1- 9999/10000
    来第三人,他挑一个座位,不与第一个与第二个重的概率是1 - (9999x9998/10000x10000)
    ……

    请注意我的表述,“xx人里头至少有一对相同的概率”
  • scythe (2008-4-16 08:56:59)

    自己看自己的当然好懂咯,首先我说的是你感叹的"大概是文科生"他们可能看不懂
    其次,我也知道你那个没问题,不过我的问题是,我那个为什么会错,了解一种做法,不知道其他得出不同答案的结论错在哪里的话,其实也无法证明自己的那个是绝对正确的,对吧
  • search255 (2008-4-16 12:14:12)

    好的,我有空的时候研究一下。
  • 新撰猎手 (2008-4-16 14:44:55)

    2369,有没有相同的。。
  • Jockey (2008-4-16 23:37:38)

    我是Scheme粉丝... > <
    其实这种无聊的小程序平时用Scheme来玩玩更适合...

    CODE:

    ;; calc-dup-p: number[>0] number[>0] -> number
    ;; Calculate the probability of finding at least one pair of duplicates
    ;; in sn samples extracted from space which has ss elements.
    (define (calc-dup-p sn ss)
      ;; sub1: number -> number
      (define (sub1 n)
        (- n 1))
      ;; calc-no-dup-p-iter: number[>=0] number[>=0] number -> number
      (define (calc-no-dup-p-iter sn-iter ss-iter result)
        (if (= sn-iter 0)
            result
            (calc-no-dup-p-iter (sub1 sn-iter) (sub1 ss-iter)
                                (* result (/ ss-iter ss)))))
      (- 1 (calc-no-dup-p-iter (sub1 sn) (sub1 ss) 1)))
    [ 本帖最后由 Jockey 于 2008-4-18 14:30 编辑 ]
  • 五里雾 (2008-6-04 14:36:45)

    程序我完全不懂
    我用阶乘就ok了
    假设我的号末尾4位数任意,
    有200人来抽,有人和我抽中相同尾号的概率是
    1-9999/10000 x 9998/10000 x …… x 9800/10000 x 9799/10000 =1-9999!/9799!/10000的200次方=0.8678
    如果500人来抽,有人和我抽中相同尾号的概率是
    1-9999!/9499!/10000的500次方=0.9999970666
    如果有1000人来抽,有人和我抽中相同尾号的概率是
    1-9999!/8999!/10000的1000次方=0.99999999999999999999996837329152
  • 五里雾 (2008-6-04 14:45:15)

    。。。
    发现11L和我算法一样
    9L那个算法不对
    要用1减去不是同天生日的人的概率的
    就是
    50个人 有人和我同一天生日的概率是
    1-364!/314!/365的50次方=0.9744
    至于为啥要用减的而不能直接照9L乘出来。。。参看一下高中数学的概率部分
  • MaiInverse (2008-6-04 15:27:38)

    QUOTE:

    原帖由 大眼小石头 于 2008-3-7 00:42 发表
    这个和以前算生日同一天的概率很像,乍一看以为几率很小,其实很大
    活了23年还没有认识一个和自己同年同月同日生的人...
    也没有刻意去找过同年同月同日生的人……
  • 天才仁村 (2008-6-04 22:58:05)

    和自己的号码相同的概率确实很小啊。。。
    大的是任意两个相同的号码出现的几率的吧。。。
  • jon_dahl15 (2008-6-05 10:27:50)

    要看清楚问题问的是什么~~~
    完全不同的问题~~~~
    如果问和你手机末4位相同的,那概率就小了,但要在所有参与的人中挑出2个末4位相同的,概率那是相当的大~~~~
  • search255 (2008-6-15 12:28:11)

    QUOTE:

    原帖由 jon_dahl15 于 2008-6-5 10:27 发表
    要看清楚问题问的是什么~~~
    完全不同的问题~~~~
    如果问和你手机末4位相同的,那概率就小了,但要在所有参与的人中挑出2个末4位相同的,概率那是相当的大~~~~
    我没说和自己相同的很大
    我讨论的是一个“社会”效应——就是说“碰撞”出一对之后会有很大的"惊喜"效果
更多同济大学BBS请访问同济大学论坛直接去论坛查看 举报不良信息 广告投放联系