找回密码
 新注册用户
搜索
楼主: 碧城仙

查查全中国有多少人的名字和你一模一样

[复制链接]
发表于 2005-2-10 01:11:17 | 显示全部楼层
您输入的名字是: 布平布平我爱你!!! ,全中国与这个姓名相同的人数少于:306

回复

使用道具 举报

发表于 2005-2-10 10:47:03 | 显示全部楼层
dis  在 2005-2-10 01:11 发表:

您输入的名字是: 布平布平我爱你!!! ,全中国与这个姓名相同的人数少于:306



回复

使用道具 举报

发表于 2005-2-10 10:47:08 | 显示全部楼层
全中国与您姓名相同的人数为:6436
回复

使用道具 举报

发表于 2005-2-10 10:47:21 | 显示全部楼层
是一个程序而已。
回复

使用道具 举报

 楼主| 发表于 2005-2-10 11:39:55 | 显示全部楼层
是一个数据库查询程序,在其 blog 主页上可以看到相关介绍,作者是一个专攻搜索技术的牛人。
回复

使用道具 举报

发表于 2005-2-10 14:24:50 | 显示全部楼层
上当的不少啊
回复

使用道具 举报

 楼主| 发表于 2005-2-10 16:40:51 | 显示全部楼层
作者的 blog 地址:http://www.wespoke.com/archives/000898.html  (搜索引擎研究)
该 blog 尽管日志数量不并多,但绝对都是技术精品!
目前作者正在进行中文分词的研究........
回复

使用道具 举报

发表于 2005-2-10 23:03:24 | 显示全部楼层
全中国与这个姓名相同的人数少于:303 !-!
回复

使用道具 举报

发表于 2005-2-11 11:39:11 | 显示全部楼层
少于314
回复

使用道具 举报

头像被屏蔽
发表于 2005-2-13 17:24:56 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

 楼主| 发表于 2005-2-13 17:40:30 | 显示全部楼层

以下是作者的回复

其实我并不能收录全中国的所有的姓名, 我这里收录的大约是20万多个名子, 随着时间的推移, 我大约可以收集到100万左右的名子, 因此只能给出一个名子的大致推算的数目(例如6000),特别少用的名子的结果都会是少于多少多少...是因为计算的误差太大了. 只能得到一个上限.

Posted by: 6e at February 4, 2005 12:42 PM from 129.119.200.36
回复

使用道具 举报

 楼主| 发表于 2005-2-13 17:45:05 | 显示全部楼层

以下是作者关于统计结果算法的详细说明

转自:  http://www.wespoke.com/archives/000911.html

关于中国人姓名的算法说明
February 10, 2005  卢亮


这个事情本来是不原意提起的,只是很多人认为我做到姓名的搜索误差太大,这里也就说明一下,以免让大家认为蒙在鼓里。

1. 查查全中国有多少人的名字和你一模一样 是纯粹的娱乐性产品。

2. 计算机非人口普查部门和公安部门,因此任何输入的词语都将给予解释。

下面介绍本系统的算法,如果你系高中毕业,对概率统计有一定的认识,可以继续:

算法A :
前文已经声明,我通过网络采集了大约40多万人的姓名,这期间大约有20万的姓名是独立的,现在这个数据库还在变大,今天已经大约有100万的姓名了。

我们假设在这100万的姓名分布和全国13亿人的姓名的分布相近,那么当你搜索“张三”这样一个姓名的话,如果我的数据库里有70个张三的话,那么全国按照样本的分布就应该是 70*1300000000/1000000 = 91000 就是说全国有91000个人都叫张三。

误差分析 Sigma = f_sigma(70) + f_sigma(1300000000) + f_sigma(1000000) = 11050 就是说,全国张三最多是 91000+11050 = 102050 个张三,最少91000-11050 = 79950 个张三,以上为70%左右的置信区间。

算法B:
根据姓名的概率 = 姓的概率*名的概率
建立在姓和名的概率分布是独立的分布,P(姓, 名) = P(姓) * P(名)

在100万的数据里,我大约收集到2800个姓,和24000个名,这样关于姓和名的分布就很合理的建立起来了。例如当我们输入“张三”的时候,算法将是先计算“张”作为姓的概率,然后计算“三”作为名的概率,然后将两者相乘,再乘以全国的总人数就得到多少个张三。

P(张) = 0.602% , "三"作为名的概率为 P(三) = 0.4%,因此 Num(张三) = P(张) * P(三) *1300000000 = 31200

因此根据此算法得到张三全国一共有31200个。

误差分析,误差来源主要是来自2方面,姓、名的统计误差,姓与名之间的非独立分布的系统误差。例如一个人名子可以叫“刘八”却一般不会叫“王八”,因此实际上姓和名是一个关系的分布。

后续:
1] 对于这样一个查询自己姓名的系统,我花了大约1个小时写代码和算法,结果完全没有想到后续竟然有那么大的波澜,在短短的几天内,差不多有30万的人访问查询,最后不得不将我blog上的页面直接定向到了booso.com并且关闭了留言。

2] 由于这30万人的访问,又给我的数据库里添加了大约30万的数据,这样实际上数据将更加趋于完整和实效,数据源的扩大,将进一步提高查询的精确度。
回复

使用道具 举报

发表于 2005-2-14 16:46:12 | 显示全部楼层
这个算法太容易了,不准
回复

使用道具 举报

发表于 2005-2-17 00:16:15 | 显示全部楼层
全中国与这个姓名相同的人数少于:277
回复

使用道具 举报

头像被屏蔽
发表于 2005-2-19 10:26:19 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 新注册用户

本版积分规则

论坛官方淘宝店开业啦~

Archiver|手机版|小黑屋|中国分布式计算总站 ( 沪ICP备05042587号 )

GMT+8, 2024-11-6 09:35

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表