不准偏心(一个概率问题)

rusonghe 2009-04-24 04:28:34
我现在遇到的是一个概率问题.

我现在有很多客户,然后我每天都会发一条对部分客户来说有价值的消息,但这条消息只能被一个客户拿到.现在问题来了...

怎么才能实现客户拿到消息的概率相同?或者说我在不偏心的情况下给某一客户消息

其中有几点我要说明下:

首先,每天的消息针对的客户群不同.今天的消息可能只对这部分客户有价值,明天的消息可能又对另一部分有价值.

其次,只能被客户群中一个拿到(这个前面说了.呵呵).



现在要用C#实现这么个功能,或者说"算法".

不知道说清楚没有?





...全文
104 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
红三天 2009-04-25
  • 打赏
  • 举报
回复
1.随机给符合条件的客户

2.将收到消息的客户从表中移除

3.再次构建符合条件的客户数据集,如果不为空,继续随机,如果为空,从所有客户中构造符合条件的数据客户集,然后随机;

jack20my 2009-04-25
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 rusonghe 的回复:]
引用 3 楼 jack20my 的回复:
只要有一个客户看过就把这条消息关闭。这就看谁先走一步了。对你来说都一样,概率都是1。
对客户的概率那就是1/n 了

我现在就是为了避免有这种"抢"的现象,如果有一个客户每次都每一个拿到,这样就不符合现在的要求.
[/Quote]
那你就在加一个操作,将看过消息的客户增加到排除列表,每次筛选客户列表的时候将排除列表中的客户名单做对照,对应排除就可以了
wyman25 2009-04-24
  • 打赏
  • 举报
回复
如果不偏心,就随机~
轮流应该不是很合适,用户群固定的话还可以,如果用户群不固定,那么,未出现,但会出现的用户群就要面临两个情况:出现时间的概率和消息是否适合他的概率,这对他来说不公平,因为他会比已经出现的用户群的拿到的几率小
陌上花花 2009-04-24
  • 打赏
  • 举报
回复
帮顶下,不是很明白
rusonghe 2009-04-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jack20my 的回复:]
只要有一个客户看过就把这条消息关闭。这就看谁先走一步了。对你来说都一样,概率都是1。
对客户的概率那就是1/n 了
[/Quote]
我现在就是为了避免有这种"抢"的现象,如果有一个客户每次都每一个拿到,这样就不符合现在的要求.
rusonghe 2009-04-24
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 coodd 的回复:]
对所有客户轮流给这条信息,今天给你明天给他,给谁了记在数据库里。
[/Quote]
因为每天的客户群不同,所以轮流不太合适..
phommy 2009-04-24
  • 打赏
  • 举报
回复
自杀王算法
建立单向链表N,N包含你的所有客户
每要发送消息m时,从链表头开始遍历,找到第一个可以接受此消息的客户c。如果找不到此舍弃m;否则发送m给c,然后从N中删除c,把c链到N的表尾
coodd 2009-04-24
  • 打赏
  • 举报
回复
对所有客户轮流给这条信息,今天给你明天给他,给谁了记在数据库里。
jack20my 2009-04-24
  • 打赏
  • 举报
回复
只要有一个客户看过就把这条消息关闭。这就看谁先走一步了。对你来说都一样,概率都是1。
对客户的概率那就是1/n 了
rusonghe 2009-04-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 gjw_8888 的回复:]
給客戶編個號,隨機找個數
找到誰就是誰了
[/Quote]
我主要就是不想用随机的方法
gjw_8888 2009-04-24
  • 打赏
  • 举报
回复
給客戶編個號,隨機找個數
找到誰就是誰了

110,524

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧