设万维读者为首页 广告服务 技术服务 联系我们 关于万维
简体 繁体 手机版
分类广告
版主:
万维读者网 > 灵机一动 > 帖子
判断样本半数的一个方法
送交者: 田苗 2006年06月11日08:52:06 于 [灵机一动] 发送悄悄话

N个样本,如何判断半数或更多样本是相同的?如果有,并找出这样本。

我这里提出一个方法。肯定能成功。但是否最佳,不确定。最坏情况估计在2.2N左右。

为了便于描述清楚,设有袋子A,B,C,一开始样本全部在袋子A里。另外设有筐子M只,用来放同类样本。

一开始,从A里取两个样本。取一筐子作第一个同类筐子。

1:比较两样本,结果:(a)不一样,(b)一样。

2:如果是(a),把从A里取的样本丢在B里,把从C里取的样本丢在同类筐子里。

如果是(b),则把两样本全丢在C里。这时如果C里的样本已够半数,就可结束(当然如果N是偶数的话,还要确证一下是否另一半也全是一样的)。

3:如果(I):A里已空(C里必定有样本),或者(II):A和C里加起来只有四个或五个样本(取决于N是偶数还是奇数),去4。

否则,如果C里有样本,就分别从A和C里各取一样本。如果C里是空的,则从A里取两个样本。从A里取两个样本时,如果同类筐里不空,则换一个空的。回到1。

4:如果是(I),则把C里的样本定为候选者。如果是(II),则比较A和C里剩下的。如剩下的是四个,如果四个里有两个或两个以上是一样的,就把这样本定为候选者。如四个里有两对,那把这两种样本都定为候选者。如剩下的是五个,里面至少有三个是一样的,那就把这个样本定为候选者。

5:如没有候选者,则样本里没有可达半数的样本。如有候选者,就拿候选者先与同类筐里的样本比较(每个筐里只要比一个就行了;如找到一样的同类筐,就可跳过其余的同类筐),然后如需要,再和B里的样本逐个比较,直到达半数,或者可以确定不可能达半数为止。

注意,如不能设同类筐,则在两样本不一样时,全丢B。最后如有候选者,就拿候选者直接与B里的样本逐个比较。

0%(0)
0%(0)
标 题 (必选项):
内 容 (选填项):
实用资讯
回国机票$360起 | 商务舱省$200 | 全球最佳航空公司出炉:海航获五星
海外华人福利!在线看陈建斌《三叉戟》热血归回 豪情筑梦 高清免费看 无地区限制
一周点击热帖 更多>>
一周回复热帖