诚求计算11选5彩票中奖号码更强的方法
借宝地一用,谢谢~~ 不知道啥原因发不了帖子, csdn老是"无法响应你的请求"
在网上找到一个, 黄金分割法根据上期出号计算11选5彩票中奖号码, 不过这个方法只是简单利用几个黄金分割数计算,
不够强, 小弟诚求计算11选5彩票中奖号码更强的方法, 并与各位Csdner一同分享...
#include <iostream>using namespace std;void saveIt(int *save_Arr, int s){ int i = 0; while(s >= 1) { if (s%10 == 1) { save_Arr[0] = 1; save_Arr[10] = 11; s=s/10; i++; continue; } if (s%10 == 0) { save_Arr[9] = 10; s=s/10; i++; continue; } save_Arr[s%10-1] = s%10; s=s/10; ++i; }}void cp(int *arr, int gold_num){ int save_Arr[11]; int nArr[5]; int i; for(i=0; i<5; i++) { nArr[i] = arr[i]; } for(i=0; i<11; i++) { save_Arr[i] = -1; } int sum = 0; for(i=0; i<5; i++) { sum+=nArr[i]; } int s1 = sum * gold_num; int s2 = arr[2] * gold_num; saveIt(save_Arr, s1); saveIt(save_Arr, s2); int nCount = 0; for(i=0; i<11; i++) { if(save_Arr[i] != -1) { ++nCount; } } if (nCount != 5) { return; } for(i=0; i<11; i++) { if(save_Arr[i] != -1) { cout << save_Arr[i] << " "; } } cout << " ";}void output(int *arr){ int sArr[5]; for(int i=0; i<5; i++) { sArr[i] = arr[i]; } for(int j=0; j<5; j++) { for(int k=0; k<5-j-1; k++) { if(sArr[k] > sArr[k+1]) { int tmp = sArr[k]; sArr[k] = sArr[k+1]; sArr[k+1] = tmp; } } } for(i=0; i<5; i++) { cout << sArr[i] << " "; } cout << " ";}int main(void){ int arr[78][5] = { {9,11,1,6,2} }; int cnt = 0; for(int i=0; i<sizeof(arr)/sizeof(arr[0]); i++) { if (arr[i][0] != 0) { output(arr[i]); cp(arr[i], 191); cp(arr[i], 809); cp(arr[i], 500); cp(arr[i], 382); cp(arr[i], 618); cout << endl; if (0 == cnt%8) { cout << endl; } ++cnt; } } return 0;}
//要求1:从给出来的不同的六组数字中,从每组任意挑选一个数字,最后组成一个六个数字的数组。//将所有的数组全部列出来。//同时,排除全部为偶数、全部为奇数的数组。//排除四个数字递增连续(比如8、9、10、11)的数组。//如下://第一个数字从这12个数字中挑选:,1,3,2,4,5,6,7,8,9,10,11,12//第二个数字从这17个数字中挑选:,8,7,5,9,6,4,11,10,12,13,3,14,17,2,16,15,18//第三个数字从这21个数字中挑选:,13,10,15,16,18,11,14,12,7,19,21,17,8,22,9,20,6,23,5,24,25//第四个数字从这20个数字中挑选:,22,23,18,20,16,17,15,21,14,26,19,24,27,25,12,13,11,10,28,29//第五个数字从这19个数字中挑选:,26,25,27,29,30,28,23,24,20,22,19,31,21,17,18,32,13,15,16//第六个数字从这14个数字中挑选:,32,33,30,31,29,28,27,26,25,24,23,22,18,21//要求2://请输入第1个数字的选择范围:(可以手动输入任意几个空格间隔的数字,最多30个)//请输入第2个数字的选择范围:(可以手动输入任意几个空格间隔的数字,最多30个)//请输入第3个数字的选择范围:(可以手动输入任意几个空格间隔的数字,最多30个)//请输入第4个数字的选择范围:(可以手动输入任意几个空格间隔的数字,最多30个)//请输入第5个数字的选择范围:(可以手动输入任意几个空格间隔的数字,最多30个)//请输入第6个数字的选择范围:(可以手动输入任意几个空格间隔的数字,最多30个)//然后回车,输出结果到cp.txt//要求3://保证同一组数据的数都不相同。//比如,第一个数为6时,第二个数或其他的数都不能再为6;第二个数为10时,第三个数或其他的数都不能再为10,以此类推……//要求4://增加一个条件:在产生的每个数组A1A2A3A4A5A6中,要求A1<A2<A3<A4<A5<A6#include <stdio.h>#include <stdlib.h>#include <string.h>int v[6];int n[6]={12,17,21,20,19,14};int d[6][30]={ {1,3,2,4,5,6,7,8,9,10,11,12}, {8,7,5,9,6,4,11,10,12,13,3,14,17,2,16,15,18}, {13,10,15,16,18,11,14,12,7,19,21,17,8,22,9,20,6,23,5,24,25}, {22,23,18,20,16,17,15,21,14,26,19,24,27,25,12,13,11,10,28,29}, {26,25,27,29,30,28,23,24,20,22,19,31,21,17,18,32,13,15,16}, {32,33,30,31,29,28,27,26,25,24,23,22,18,21},};int i,j,i0,i1,i2,i3,i4,i5,s;char ln[100],*t;FILE *f;int main() { for (i=0;i<6;i++) { printf("请输入第%d个数字的选择范围:",i+1); fgets(ln,100,stdin); j=0; t=strtok(ln," "); while (1) { if (NULL==t) break; if (0==t[0]) continue;//跳过多个空格间隔时取出的空串 d[i][j]=atoi(t); j++; if (j>=30) break; t=strtok(NULL," "); } n[i]=j; } f=fopen("cp.txt","w"); if (NULL==f) { printf("无法生成cp.txt!\n"); return 1; } printf("正在生成cp.txt..."); for (i0=0;i0<n[0];i0++) { for (i1=0;i1<n[1];i1++) { for (i2=0;i2<n[2];i2++) { for (i3=0;i3<n[3];i3++) { for (i4=0;i4<n[4];i4++) { for (i5=0;i5<n[5];i5++) { v[0]=d[0][i0]; v[1]=d[1][i1]; v[2]=d[2][i2]; v[3]=d[3][i3]; v[4]=d[4][i4]; v[5]=d[5][i5]; if (0==(v[0]%2) && 0==(v[1]%2) && 0==(v[2]%2) && 0==(v[3]%2) && 0==(v[4]%2) && 0==(v[5]%2)) continue;//排除全部为偶数 if (1==(v[0]%2) && 1==(v[1]%2) && 1==(v[2]%2) && 1==(v[3]%2) && 1==(v[4]%2) && 1==(v[5]%2)) continue;//排除全部为奇数 for (i=0;i<5;i++) { for (j=i+1;j<6;j++) { if (v[i]==v[j]) goto NEXT;//保证同一组数据的数都不相同 } } NEXT: if (i>=5) { for (i=0;i<5;i++) for (j=i+1;j<6;j++) if (v[i]>v[j]) {s=v[i];v[i]=v[j];v[j]=s;}//从小到大排序 if ((v[0]+1==v[1] && v[1]+1==v[2] && v[2]+1==v[3]) || (v[1]+1==v[2] && v[2]+1==v[3] && v[3]+1==v[4]) || (v[2]+1==v[3] && v[3]+1==v[4] && v[4]+1==v[5])) continue;//排除四个数字递增连续 fprintf(f,"%2d,%2d,%2d,%2d,%2d,%2d\n",v[0],v[1],v[2],v[3],v[4],v[5]); } }}}}}} fclose(f); printf("\n生成cp.txt完毕\n"); return 0;}//如果文件in.txt的内容为//1 3 2 4 5 6 7 8 9 10 11 12//8 7 5 9 6 4 11 10 12 13 3 14 17 2 16 15 18//13 10 15 16 18 11 14 12 7 19 21 17 8 22 9 20 6 23 5 24 25//22 23 18 20 16 17 15 21 14 26 19 24 27 25 12 13 11 10 28 29//26 25 27 29 30 28 23 24 20 22 19 31 21 17 18 32 13 15 16//32 33 30 31 29 28 27 26 25 24 23 22 18 21//可以在cmd窗口里面输入命令//cp <in.txt//得到要求1对应的结果//BTW:中了一定要分我六成啊!嘿嘿!(^=^)
[解决办法]
这个东西做好了都自己用,谁会拿出来分享呢
[解决办法]
http://news.50018.com/news/13/26383.html
http://www.caimincun.com/caimin/wzhyy-tzjq/22x5/726587.shtml
[解决办法]
牛啊 这都可以........
[解决办法]
黄金定律中除了黄金周期循环外,还有另外一个组成部分,即黄金分割优选法。这两者构成了黄金定律。无数数学大师们经过精确运算,将0.191、0.382、0.5、0.618、0.809这些特定的比例划定为常用的黄金数字比例,黄金分割法就在某个固定单位中运用上述比例划分数字的方法。 如果我们将广东的36选7、26选5看成2个不同的单位,则它们的黄金点号码各有不同。 以36选7为例,位于0.191、0.382、0.5、0.618、0.809这5个黄金分割点的相关号码为: 0.191=6、7;0.382=13;0.5=18;0.618=22;0.809=29,即得到6、7、13、18、22、29这6个数字。 26选5则为:0.191=5;0.382=9、10;0.5=13;0.618=16;0.809=23,即得到5、9、10、11、23这6个数字。 理论上来说,这2组数字是36选7、26选5玩法中最均衡的号码。然而实践中,由于号码始终处于运动状态,因而这种静态计算出来的号码的实践意义有待商榷。但我们可以将36选7中的6、7、13、18、22、29,26选5中的5、09、10、13、16、23视为该种玩法的胆码,根据最近5期号码的走势确定胆码的变化,运用加减乘除等方法进行微调,就有可能契合开奖号码。大家不妨一试。
[解决办法]
概率又不变,计算有什么用
[解决办法]
[解决办法]