不重复排列列表的问题,详见内文,谁能完美解决,现金感谢100元
现在要实现这么个功能,有4个视频节目A,B,C,D一段时间内A要播放120次,B 80次,C 300次,D400次。要求排出他们的播放序列,序列要符合两个要求:1.同一个节目不能连续播放,必须有间隔。2、播放次数的多出现的频率高。例如上面提到的总共播放次数是900次,那么各个视频的播放次数不能少,并且不能重复连续播放,要生成一个混合列表
现在我的做法是,先做一个10维数组,其中有1个A,2个B,3个C,4个D,然后随机取这个十维数组的某一位,放入队列,然后随机去第二位,如果与第一个不重复就放入序列,如果重复就重取,这样就能实现要求的功能。
但是现在的问题是:如果播放次数不是100的整数,而是像110,120,150这样的数,就只能从大小为11+12+15这样较大的数组取数,由于随机数回渠道重复的数组,而这个数组有很大,所以造成效率很低,重复取到相同节目的情况很多,程序很久没有响应。
上文为了是问题简化所以说是4个视频,并注明了播放次数,实际问题是视屏数量个能多大几十个,每个的播放次数都是10的整数倍。
那位大侠能帮小弟出出主意,需要的话我把我的例子发出来,VB写的,如果能帮我解决问题,人民币感谢100元,决不食言。谢谢