如何平均分布几个色球?(100分)

  • 主题发起人 主题发起人 呆非4
  • 开始时间 开始时间

呆非4

Unregistered / Unconfirmed
GUEST, unregistred user!
现有4个色球,其中红色球(A)有20个,蓝色球(B)有13个
绿色球(C)有8个,白色球(D)有3个。
如何将这些球平均分布于20+13+8+3个长形球道内,
使每种球的间距大致相等。即将每种色球大致均匀分布到
球道内。不致于有的地方聚中了几个同色球而其他地方
这种色球又较少。
 
顺序插入即可!
 
顺序插入只能保证前面几个是平均的,但后面的即
很集中。
如:ABCABCABCABABABABABABABABABAB
因为C色球只有三只,所以这三只要间隔的距离大。
有其他好的算法吗?
 
先把二○个A摆好,然后用20 div 13得到一个基数,从头开始把13个B按基数为间隔进行
插入,再用(20+13)div 8 得到基数把8个C插入,最后用(20+13+8)div 3得到的基数
插入3个D,收工。慢一点而已
 
先相对均匀的摆数量小的,D球(其位置应该是{7,21,35}),再依次摆数量多的,先忽略
已经摆上的球的位置,均匀分布,计算其位置号,当与已摆的球出现位置竞争时,让后摆的球
前(后)移动一个位置,知道有合适的位置将其摆下。依次论推。。。。。
 
多人接受答案了。
 

Similar threads

D
回复
0
查看
753
DelphiTeacher的专栏
D
D
回复
0
查看
659
DelphiTeacher的专栏
D
D
回复
0
查看
652
DelphiTeacher的专栏
D
D
回复
0
查看
824
DelphiTeacher的专栏
D
后退
顶部