有一定难度的算法问题!500分!虽然现在只有6分,但我宁愿负那么几个月的债,现已重新描述问题五次了,变简单了,难道没有能将问题看完整并提供有实质性帮助的人,不要

  • 主题发起人 主题发起人 ReallyFail
  • 开始时间 开始时间
to 楼主
一、先使用随机生成一个分组。
二、调用输入的中奖号码数组予以验证。如果一旦出现不符合的。跳转到一、,直至由计算机完成。
 
用随机生成分组不太可行,我现在的想法是从1。9,10。18,19。27,28。36这样的
分组,然后逐渐往前推!若已到无解就回蒴!!!!!!
 
看懂了,和我以前只求单线的分布,一回事,你这是找分区概率,不能用穷举来做,否则
这是杀机之举。求最精确的分区是不可能的,但是可以找到比如1,2位的多个分区,在4个分区中
的最可能共集,我不知道怎么描述,思路就是这样,你这种方法用来抓小奖不错
另外,基本上彩家在固定的时间都会更换算法的,比如换一台球机,就类似于更换了物理随机方程
他们的意思很明确,不让你在一个数据范围内进行规律分析,如果你编程分析历史数据,特别是如果
结果图形化了,那么你将发现平缓的地方变得特别了,而该有的规律(别笑)打乱了
所以分析彩票应该分析这种变数,吃饭了88
 
楼主,随机产生个分组有什么不可能?
很简单的。
产生后,再验证,直至符合题意就可以了。
需要给你写例子吗?
 
分组中每组为什么是9个数字,而中奖号码是8个?
有什么特殊意义吗?
 
to cut.fei>>随机产生分组有什么不可能
因为如果用随机的话会产生重复的分组。而且即使有解的话也会是无解,除非瞎猫碰上了
死老鼠,另外DELPHI产生的随机数也是个伪随机数,意义不大这样的代码到不用你来写了,
真的很感谢你,谢谢!!!
我已经有个思路了,你看看,大致如下:
1。先生成一个9个球(1。2。3。4。5。6。7。8。9)做为初试号码!!!
2。以这9个球来对所有输入的中奖号码来检查。看是否都符合条件,如果不符合条件的话
就改变这9个球中的一个,在用输入的中奖号码来检查。看是否都符合条件,如果符合
所有的输入的中奖号码,则接下来生成第2个9个求,在检查(运行期间要用到回蒴)
直到第四组的9个球也出来了,那么解也就出来了。(这中做法能滤掉很多没用的组合)
>>分组中每组为什么是9个数字,而中奖号码是8个?
分组是9个球是因为我朋友玩的是36选7。分成四组的话比较刚好,如果分成8组的话
可能一两期就会无解了。分成两组对其他部分的选号帮助不大!36选7的中奖号码本来
就是8个
 
我的理解...你是不是仅仅要分组的算法??
用整除9来分组不行吗?
(i-1) div 9
1~9 =0
10~18=1
...
 
to xiaoywh:不是!
 
但我觉得上述方法完全能够解决你的要求
 
你能把那个除法写完整点吗?
 
>所有的输入的中奖号码,则接下来生成第2个9个求,在检查(运行期间要用到回蒴)
>直到第四组的9个球也出来了,那么解也就出来了。
不对,到第三组的9个球出来的时候,剩下的就决定了!那么必须在这里一起检查! : )
 
谢谢秀的提醒!!后面18个球的判断会复杂很多!!!!!!
 
Code[]数组里存放的是某一期的中奖号码: 假定为整型吧.
for i:=0 to 7do
//你的八个号
begin
case (Code-1) div 9 of
0: 放入第一组中;
1: 放入第二组中;
3: 放入第三组中;
...
end;
end;
'
 
to xiaoywh:
我要的不是一期的。期数是不定的。可能是50期,也可能是三十期!!!
 
算了!如果明天写出来的话会把代码加进来的,感谢各位的帮助!!
 
to ReallyFail:
我说的方法是针对某一期的...你可以将如下写为一个函数(不管那一期或多少期你循环调用这个函数就得了),至于组你当然要定义一个数组了或其它的了
总之只是提供一种思路,详细的代码只能....:
function toGroup(Code[]):boolean;
begin
Code[]数组里存放的是某一期的中奖号码: 假定为整型吧.
for i:=0 to 7do
//你的八个号
begin
case (Code-1) div 9 of
0: 放入第一组中;
1: 放入第二组中;
3: 放入第三组中;
...
end;
end;
'
end;

然后你再写一个函数根据你的期数得到当期的号码:
function GetPeriod(aPeriodNo):Codes
(
...
//如何取我想不用我写了吧,那要看你的数据在存在什么地方的..如果是表里则查询,文件则定位取值,用户输入当然就最简单了直接付值给返回值即可
)
 
后退
顶部