跪求求解一个算法,非常之急,高手给小弟指点一下

MasterJ 2006-07-12 01:56:48
现遇到一个问题,不知道使用什么算法,各位高手给小弟一个指点,先谢谢各位了。

有n个箱子,每个箱子有m个球,现要从箱子中每次取出一个球,取球的原则和限定条件
1、 每个箱子有优先级限定
2、 当两个箱子的优先级相同时,首先取优先级最高的箱子里面的球
3、 每个周期之后,必须每个箱子至少取出一个球


例1
有三个箱子,A箱子有6个球,优先级1;
B箱子有3个球,优先级2;
C箱子有3个球,优先级3;
取出来的球分别以ABC表示从三个箱子中取出来的球的队列,结果为
ABACABACABACABAC
此时A箱子的数量时1/2,那么取两个球必须有一个出现,B和C为1/4,每四个必须出现一次,且B的优先级比C高,那么B在C之前取出

例2
A箱子有6个球,优先级1;
B箱子有5个球,优先级2;
C箱子有1个球,优先级3;
结果队列应为
ABACABABABAB

例3
A箱子有7个球,优先级1;
B箱子有3个球,优先级2;
C箱子有2个球,优先级3;
结果队列为
ABACABACABAA 此时当其中的N-1个箱子的球取完之后,将剩余箱子的小球全部取出,放到队列后面.


...全文
624 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
MasterJ 2006-09-07
  • 打赏
  • 举报
回复
多谢各位大侠,由于数据比较少,只有12个,现在我使用了列举法将所有可能出现的情况都定义在了数据库里面,用到响应的规则时直接到数据库中获取。
yyfhz 2006-08-01
  • 打赏
  • 举报
回复
同意 AFIC(AFIC) 的意见,请LZ说清楚
1. 当所有前提条件都设置完成了之后,这个次序是否也就完全确定了
2. 次序出现的规则究竟为何
Ichigo 2006-07-28
  • 打赏
  • 举报
回复
????????
AFIC 2006-07-21
  • 打赏
  • 举报
回复
就是先算一个固定出现概率,然后每次都统计之前的概率
然后用固定概率减,剩下大的出现,相同就比较优先级的意思?
如果不是这个意思就不用向下看了。
首先概率有这么计算的吗老兄???
就算按你的说法,
例2本身的概率是(a:6/12;b:5/12;c:1/12)
在出现3次之后,由于a出现2次“用去”了2/3的概率,
所以出现概率是-2/12
b出现了1次用去了1/3的概率,所以剩下1/12的概率,
c没有出现,仍旧保持1/12的概率,
但b比c优先,所以例2第四个应该是b。第6个才应该是c
同样,例一夜没发理解,例3没看。
hchf_1 2006-07-20
  • 打赏
  • 举报
回复
这第一个条件小球数量的比例是不是变化的还是一直按照初始状态的比例呢?
MasterJ 2006-07-19
  • 打赏
  • 举报
回复
如果是如ckc(火)所描述的那种情况的,那么第一个小球应该是B,以第一个例子来讲的话,队列就变成了
BACABACABACA

同理如果优先级为本C:1 B:2 A:3 的话,队列应该是
CABACABACABA



不知道这样能不能描述清楚

取小球时到底取哪个取决于两个:
1.小球数量在总数上的比例
  例:如果是/2那么两次有且只有一次出现,1/3三个小球必须有一次出现,如果其中一个箱子小球比例大于1/2时(只可能有一个箱子的小球数量满足条件),采取的策略是:如果其他箱子的小球都全部取出之后,再将该箱子的小球全部取出放到队列之后.
2.优先级 优先级直接决定了首先取哪个箱子的小球,在比例相同的条件下,首先取出的是优先级比较高的哪个箱
ckc 2006-07-18
  • 打赏
  • 举报
回复
条件2和条件3含义不清,以你第一个例子来说
假设A的优先级是2,B的优先级是1
那么第一个球是A还是B?
MasterJ 2006-07-13
  • 打赏
  • 举报
回复
对于A来讲所占比例是1/2,那么必须两个小球必须出现一次,接着出现B,应该好理解,当到了第三个数的时候也应该是A,到了第四个时由于对于B没有达到1/2的比例那么对于B的出现不可能是两个就出现一次,除非只剩A、B两个箱子有小球的时候才可能出现这种情况。此时A、B都出现了,而C还没有出现,此时应该取C里面的小球
orcd 2006-07-13
  • 打赏
  • 举报
回复
不太明白
MasterJ 2006-07-12
  • 打赏
  • 举报
回复
对于队列小球的顺序是有序的。
MasterJ 2006-07-12
  • 打赏
  • 举报
回复
对于A来讲概率是1/2,那么队列中的两个必须出现一次,而BC两个箱子概率是1/4那么也就是说取四个球的时候,只能取出一个球,但是B的优先级比C要高,因此B先出现
ZeroGts 2006-07-12
  • 打赏
  • 举报
回复
不明白题意

例2第4个怎么不是B
wood87654321 2006-07-12
  • 打赏
  • 举报
回复
看不明白,拿例1说,先取优先级最高的A,BC球相等,B优先级高先取,所以队列前两个为AB没问题,但第三次取A却是根据哪个条件要求?

33,009

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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