GailHoward

2023-05-16

全球著名彩票预测家美国人GailHoward发明的“旋转系统”选号法已经造就了74个大奖得主,这是一种基于“旋转矩阵”数学原理来构造的选号法,其核心宗旨是:以极低的成本实现复式投注的效果。购买10个号码的复式所需的注数是120注,成本是240元,而用旋转法需要10注,投入也就20元。但应该指出的是:这种方法也有它的缺陷,那就是虽然保住了中6个号码,但很容易漏掉大奖。但比起复式投注大资金大范围捕鱼(有时还空手而归)的做法,明显具有稳扎稳打,投入少见效快的特点,特别适合工薪阶层的彩票玩家。举一个例子:比如你选了10个号码,不妨设为A,B,C,D,E,F,G,H,I,J。你想把他们组合起来进行投注,那么组合号码的方法一般有以下几种:

  1、复式投注:最简单的方法无疑是复式投注,复式投注的好处是可以把这10个号码的所有组合一网打尽,也就是说,如果你选了这10个号码中包含了开出的7个基本号,你可以稳中一等奖。但复式投注的缺点是成本太高,所以所选的号码个数很有限,如果超过12个号码就要超过3000元。 

  2、轮次矩阵:轮次矩阵就是把每个号码都按顺序依次轮一遍,以10个号码为例,轮次矩阵组合的10注如下: 
  A,B,C,D,E,F,G
  B,C,D,E,F,G,H
  C,D,E,F,G,H,I
  D,E,F,G,H,I,J
  E,F,G,H,I,J,A
  F,G,H,I,J,A,B
  G,H,I,J,A,B,C
  H,I,J,A,B,C,D
  I,J,A,B,C,D,E
  J,A,B,C,D,E,F 
  这种组合号码的方法成本很低,而且看过去很美观,把每个号码都排了7遍。但实际上,这种组合号码的方法并太不可取的,因为它很可能漏掉了大奖。比如开出的7个基本号是A,B,D,E,F,H,I或B,C,E,F,H,I,J那么尽管这7个号码在上面的10个号码之内,但上述方法组合出来的10注中,最多只中了四等奖(对了5个号)。 

  3、旋转矩阵:如果用旋转矩阵来进行投注的话,上述情况是永远不会出现的。例如用以下的旋转矩阵,只要买12注,那么,只要开出的7个基本号在你选的10个号码之内,你至少有一注对了6个以上的号。 

  选10个号码,出7中6型旋转矩阵图: 
  A,B,C,D,E,F,G
  A,B,C,D,H,I,J
  A,B,C,E,F,H,J
  A,B,C,E,F,I,J
  A,B,D,E,F,H,J
  A,B,D,E,F,I,J
  A,B,E,F,G,H,I
  A,C,E,G,H,I,J
  B,D,F,G,H,I,J
  C,D,E,F,G,H,I
  C,D,E,F,G,H,J
  C,D,E,F,G,I,J
一、从寇克曼女生问题讲起
  旋转矩阵涉及到的是一种组合设计:覆盖设计。而覆盖设计,填装设计,斯坦纳系,t-设计都是离散数学中组合优化问题。它们解决的是如何组合集合中的元素以达到某种特定的要求。
  为了使读者更容易明白这些问题,下面先从一道相当古老的数学名题讲起。(一)寇克曼女生问题 某教员打算这样安排她班上的十五名女生散步:散步时三名女生为一组,共五组。问能否在一周内每日安排一次散步,使得每两名女生在这周内一道散步恰好一次? 看起来题目似乎很简单,然而它的彻底解决并不容易。事实上,寇克曼于1847年提出了该问题,过了100多年后,对于一般形式的寇克曼问题的存在性才彻底解决。 用1-15这15个数字分别代表这15个女生,下面给出一组符合要求的分组方法:
  星期日:(1,2,3),(4,8,12),(5,10,15),(6,11,13),(7,9,14)
  星期一:(1,4,5),(2,8,10),(3,13,14),(6,9,15),(7,11,12)
  星期二:(1,6,7),(2,9,11),(3,12,15),(4,10,14),(5,8,13)
  星期三:(1,8,9),(2,12,14),(3,5,6),(4,11,15),(7,10,13)
  星期四:(1,10,11),(2,13,15),(3,4,7),(5,9,12),(6,8,14)
  星期五:(1,12,13),(2,4,6),(3,9,10),(5,11,14),(7,8,15)
  星期六:(1,14,15),(2,5,7),(3,8,11),(4,9,13),(6,10,12) 该问题就是最典型的组合设计问题。其本质就是如何将一个集合中的元素组合成一定的子集系以满足一定的要求。表面上看起来,寇克曼女生问题是纯粹的数学游戏,然而它的解却在医药试验设计上有很广泛的运用。 寇克曼女生问题是t-设计中很特殊的一类——可分解斯坦纳设计。下面我会详细解释这几个名词的含义。
(二)几种组合设计的含义
  所谓t-设计是“策略组态,Tactical Configuration”的简称。
  不妨用数学语言来定义t-设计:
  S={S1,S2,……SV}是一个包含有v个元素的集合;
  B1,B2,……,Bb是S的b个子集,而它们包含的元素个数和都是k个;
  B={B1,B2,……Bb}是由这b个子集组成的集合(子集系),
  对于固定整数t,和S的任意一个t元子集(t≥1),如果包含该子集的B中子集的个数都是同一个常数λt,则称B={B1,B2,……,Bb}是集合S上的一个t-(v,k,λt)设计,简称t-设计。
  如果t-(v,k,λt)设计中,t=2,λ=1,则称为斯坦纳系(Steiner)。在该领域,我国已故的数学家陆家羲作出的巨大的贡献,如今每一本讲组合设计的书讲到这个问题,就不能不提到他的大名和以他的名字命名的定理。至今为止,斯坦纳系仍然存在着许多未解决的问题,至今还没有人证明S(17, 5,4=476)和S(18,6,5=1428)的存在或不存在。虽然它的参数显得很小。 而旋转矩阵涉及的则是另一种更加复杂、参数更多的组合设计——覆盖设计。
  覆盖设计是一种经过精心设计的b个区组组成的子集系,其中每个区组都有k个元素组成。它可以确保如果选出k个元素,有m个在其中,至少有λ个区组中的元素有t个元素符合。区组中元素的顺序与区组的排列顺序不影响覆盖设计本身。
  (c:v,k,t,m,λ=b)
  可以用数学语言来定义比较简单的覆盖设计:
  S={S1,S2,……SV)是一个包含有v个元素的集合;
  B1,B2,……,Bb是S的b个子集,而它们包含的元素个数都是k个;
  B={B1,B2,……Bb}是由这b个子集组成的集合(子集系)。  
  对于固定整数t,和S的任意一个t元子集(t≥1),如果该子集至少包含在B的λ个区组中,则称B={B1,B2,……,Bb}是集合S上的一个c-(v,k,λt)设计,简称覆盖设计。 填装设计是与覆盖设计相反的设计:
  S={S1,S2,……SV)是一个包含有v个元素的集合;
  B1,B2,……,Bb是S的b个子集,而它们包含的元素个数都是k个;
  B={B1,B2,……Bb}是由这b个子集组成的集合(子集系)。
  对于固定整数t,和S的任意一个t元子集(t≥1),如果该子集至多包含在B的λ个区组中,则称B={B1,B2,……,Bb}是集合S上的一个p- (v,k,λt)设计,简称填装设计。 t-设计又叫恰好覆盖与恰好填装。t-设计不一定存在,而覆盖设计一定存在。t-设计中,λ=1,而覆盖设计一般λ>1。此外,t-设计中m= t,所以t-设计只是覆盖设计中比较特殊的一种。 只要b足够大,显然覆盖设计一定存在。而有意义的是找到b的最小值,并找出在上最小值下的覆盖设计,此时的覆盖设计叫做最小覆盖。寻找最小覆盖的问题是组合优化问题的一类,被称为集合覆盖问题(SCP,Set covering problem),与著名的推销员旅行问题或成本最小化、利润最大化问题,都是优化问题的一种。 但是集合覆盖问题往往经这些问题更加困难。因为其它问题往往已经有比较成熟的、固定的方法。而覆盖设计并没有通用的公式,所以大部分的设计即使用如克雷般超级电脑也很难求出,全盘搜索的算法耗用时间将会是一个天文数字。 这方面,算法就显得相当重要。Oester Grad教授创造出一种全新的模拟算法,它大大提高了求解覆盖设计的速度,但它不能保证找到的覆盖设计一定是最小覆盖设计。它具有很强的通用性。而之前的其他算法往往只能解决固定某些参数的特定问题,解决的往往只是一类问题。 对覆盖设计的研究始于19世纪,1835年J?Plue Cker和W.S.B.Wool House(1844)开始研究此类问题。
  到了1969年,人们发现它对军队中布阵与战略设计以及计算机芯片设计都大有用途,因此得到了迅速发展。在统计上,医药设计,农业试验,核研究,质量控制甚至在彩票中都大有用途。 组合设计问题往往来自于智力游戏,对它们的研究也是纯数学的。但是当研究逐渐深入时,人们逐渐地在生产与其他学科中发现了它的用武之地。这样对它的研究就有了更强大的动力,吸引了更多人的注意,成果也就更加丰富。 在选7的彩票涉及的旋转矩阵中,所有的(6,六)型和(5,五)型旋转矩阵都是t-设计。而一般的旋转矩阵都是覆盖设计。由于数学上对t-研究的比较多,所以有时候我们可以利用t-设计生成一些覆盖设计。 如以下的设计即为一个t-(10,3,3)设计,它在有限射影几何中有很广泛的运用。
  B:(2,3,4) (1,5,10) (1,6,9)
  (1,7,8) (2,9,10) (3,8,10)
  (4,8,9) (4,6,7) (3,5,7) (2,5,6) 即1-10每个数字都出现了3次,而且每两个数字恰好一起出现1次。从它可以生成10注10个号(7,六)型矩阵(它相当对称,平衡但不是最优的),具体生成方法很简单,取每一组的剩余的7个数就可以生成对应的一组。
(三)组合设计的研究内容
  1.存在性问题
  若给出要求,研究符合要求的组合设计是否存在,以及存在的条件问题。比如,彩票中的覆盖设计问题,它的存在性就不是问题,因为只要注数足够多,总是可以覆盖的(它的上限为复式投注即完全组合,有意义的是它的下限)。而t-设计又叫恰好覆盖,它的存在性就是一个很值得研究的问题,也就是说,参数要符合什么条件,才会存在恰好覆盖一次的设计。
  对存在性的研究更多的是从理论上。然而,对于一般情形的t-设计是否存在的问题,还远远没有解决。
  2.构造问题
  如果已知某种组合设计存在时,如何把它们构造出来?这是与实际应用联系最紧的问题。实际上,最终无论在彩票中,还是新药设计中,人们关心的是构造出的组合设计。经过数学家上百年的努力,现在已经有一些构造方法。如利用有限的射影几何,关联矩阵,数论中的差集等构造出大量的设计。用组合论自身也能解决一些构造问题。然而,对于一般情形的组合设计的构造性问题离解决还相当遥远。比如彩票中覆盖设计问题(即旋转矩阵)当参数变大时,设计的难度是几何级数上升。 对于一般的最小覆盖问题,仍然没有通用的构造方法。也就是说,目前市场上出现的许许多号码比较多的旋转矩阵,都很难保证是最小覆盖设计,也就是无法保证它是最优的。很多旋转矩阵不断地有人刷新它的下限纪录,也就是越来越接近最小覆盖设计。然而,要证明一个旋转矩阵是否已经是最小覆盖设计,是极其困难的,如果号码很少,还可以通过计算机编程用穷举的方式来解决,而号码稍微多一点,用穷举法超级电脑运算所耗用的时间也将是天文数字。 3.组合设计之间的关系
  例如:一个组合设计是否与另外一个组合设计本质上一样的(同构)。比如把组合中某两个数字互换,这两个设计应该算同一种设计。每一种设计的同构设计是非常多的。有些同构是很难直接看出的,所以就需要研究同构的设计有什么特点,如何准确快速的判断和产生同构设计。 组合设计还研究如何由一个组合设计构造出另外一个。
  比如旋转矩阵中存在着这样的问题,比如10个号码01-10,开始我先选定3注:
  01,02,03,04,05,06,07,
  01,03,05,07,08,09,10,
  02,04,06,07,08,09,10
  问如何添上尽可能少的注数,使它成为(7,六)型平衡式矩阵。
  又如一个旋转矩阵与另外一个旋转矩阵是否同构。即使两个旋转矩阵所有参数都相同,也不一定同构。然而,在实际运用中,人们并不关心同构问题。因为只要能用就行了。
  又如10个号码(7,六)型的有8注,比如是01-10这10个号码,问能否在这基础上添上尽可能少的注数,使得它成为11个号码的(7,六)型的旋转矩阵(01-11)。 4.计数问题
  如果已知某类组合设计存在,自然希望知道这类设计的个数。也就是说互不同构的设计的个数。然而,这个问题是一个极其艰难的问题,现在还很少人去研究它。
  比如很简单的10个号码的(7,六)型矩阵,共有多少种。号码一多,这将是一个很困难的问题。 5.最优设计
  在诸多的满足要求的组合设计中,找到一个最优的设计,这是它研究的内容。比如覆盖设计很多,如何找出最小覆盖设计就是一具艰难的问题。旋转矩阵中需要用到组合优化的算法与组合构造算法。
二、旋转矩阵的主要算法
(一)对旋转矩阵做出突出贡献的主要数学家
  旋转矩阵是一个看似简单实际却异常复杂的问题,尽管有许许多多的人对它非常感兴趣,然而真正在这个领域内做出了开创性贡献的人却不是很多。要想在此领域有所作为,不仅要对组合设计的经典理论和常用方法有深入的了解,还要在此基础上有所创新。有许多国外的彩票专家,比如美国的盖尔?霍华德女士,声称旋转矩阵是由她首先提出来的。实际上,所有的旋转矩阵都是组合数学家们经过多年的精心研究得出的,而不是霍华德这样的彩票专家所能研究出来的。
  在此领域内做出了突出贡献的主要组合数学家有以下几位:
  1.Patric Osergard
  他的主要贡献是用了全新的模拟冷却算法解决了旋转矩阵的构造问题,运用他的模拟冷却程序,可以很迅速的产生许许多多的旋转矩阵。 2.Alex Sidorenko
  他研究出了许多旋转矩阵和几种产生旋转矩阵的基于图灵理论的一般方法。
  3.Greg Kuperberg
  他注意到线性的[v,t]编码的补集可以给出区组长度不定的覆盖设计,而这可以产生对现有的旋转矩阵的一系列改进。 4.Dan Gordon
  他不仅是覆盖设计领域内多篇经典论文的合作者,而且总结了所有的旋转矩阵的成果,并且时时关注着该领域的最新进展。他收集的旋转矩阵是迄今为止最全面、最权威的。而这一切全凭他个人的兴趣,没有任何经费的支持。 以下我将对以上的数学家作一些介绍:
  Dan Gordon是圣地亚哥的通讯研究中心的研究员。个人兴趣:计数理论、组合学、代数分析。
  Greg Kuperberg是美国加州大学的数学系的副教授。主要研究方向是复杂性分析和微积分。他在覆盖设计的主要论文有:
  (1)Asymptotically optimal covering designs(with Daniel Gordon,Oren Patashnik,and Joel Spe-ncer).J.Combin.Theory Ser.A 75(1996),page 270-280.
  (2)Highly saturated packings and reduced coverings(with Gabor Fejes Toth and Wlodzimierz Kuperberg).Monats.Math.125(1998),page 127-145.
  Patric Ostergard是芬兰赫尔辛基理工大学计算科学和工程系的教授。
  他的兴趣集中在数学和计算机科学中系列问题。他的主要研究方向可分为以下几类:
  (1)组合结构的设计
  编码(覆盖编码,纠错编码等等)
  组合设计
  几何填装和覆盖问题
  (2)局部搜索的优化
  模拟冷却算法
  禁忌搜索
  全局优化的随机方法
  (3)加密与解密
  他是1996寇克曼奖的得主,这个奖是由国际组合学协会颁发的,以已故的著名组合学家寇克曼的名字来命名,用来奖励对组合学有突出贡献的数学家。除此之外,他还是组合设计杂志的编辑。
  他在覆盖设计的主要贡献是彩了模拟冷却方法研究出了全新的构造覆盖设计的全新方法。
  他在此领域的主要论文:
  Nurmela,K.J.and Ostergard,P.R.J.“Constructing Covering Designs by Simulated Annealing”,Helsinki University of Technology Digital Systems Laboratory Series B:Technical Reports,No.10;January,1993.(二)旋转矩阵的主要算法
  旋转矩阵的定义是很容易明白的,一般的业余数学爱好者理解没有任何障碍。然而,如何快速有效的构造旋转矩阵是一个数学家们一直在研究的问题。当然,这其中最关键的就是算法。而近年来最好的算法无疑是模拟冷却算法,它主要是由Patric Ostergard首创,并且得到了许多后来者的发展。
下面我简要介绍一下他论文所用的算法的主要思想。
  1.Simulated Annealing模拟冷却算法
  模拟冷却算法是一种随机搜索方法,它的主要特点是不用穷遍集合中每一种可能性就可以找到最优或几乎最优的状态。它是通过模拟一个分子系统的自然冷却过程来做到这一点的。在每一种状态,它随机地选择了一种相邻的状态,如这种相邻的状态有一个更低的成本,系统将会转移到该状态。如果这种相邻的状态有一个更高的成本,系统将可能会转移到该状态,也可能不会转移到该状态。转移的概率依赖现在的状态的温度参数(该值越高,转移的概率越大)和两个状态之间的成本的差异(差异越大,转移的概率越大)。温度将会渐渐低下来,最终会达到均衡。模拟冷却算法常常用来尝试发现离散数学中一些问题的几乎最优的解。 模拟算法的一般步骤如下:
  (1)给定一个初始状态和初始温度
  (2)外部循环
  A内部循环
  a随机选择一个相邻状态。若相邻状态的成本更低,转移
  b若相邻状态的成本更高,转移的概率为exp{-成本差异/温度}
  B降低温度
  (3)返回所遇到的最优状态
  模拟冷却算法的设计者需要选择以下6个参数:
  初始温度和初始状态
  一种状态的成本函数
  一种状态的相邻函数
  冷却程序
  内部循环方法
  外部循环方法
  初始状态和初始温度实际上对算法影响不大,成本函数一般来说也比较容易定义,尤其是对覆盖设计来说,成本可以定义成重复数字的总个数。相邻函数也可以随机挑选一个向量来解决。而有效的冷却程序一般用T/'=rT,这里T指原来的温度,T/'是新的温度,r是常数,也叫冷却因子。 Patric Ostergard的关于覆盖设计的经典论文基本上就是如此定义模拟算法的参数的。 运用该算法,可以很容易算出一般的旋转矩阵。 除了模拟冷却算法之外,还有另外一些构造旋转矩阵的常用方法。
  2.非连通的集合来结合覆盖设计
  如果对某个v=v1+v2和所有的t1+t2=t,都有大小为N1的覆盖设计(v1,k1,t1)和大小为N2的覆盖设计(v2,k2,t2)存在,那么将有大小为N=N1*N2的覆盖设计存在。然而,可以用这种方法产生的旋转矩阵数量很少,而且构造的过程也很复杂。很少的旋转矩阵是用这种方法产生的。 3.贪婪算法
  这种算法产生了许多许多的旋转矩阵,这种算法的核心思想是:每个区组都尽可能少重复前面区组的数字,一直重复下去,直到你得到一个覆盖设计。你可以用顺序、逆序或灰色、随机的顺序来重复这个过程。或者可以用你所喜欢的其它顺序。事实上,笔者起初的时候正是用这个方法来产生一些比较简单的矩阵,但是这种算法看起来容易,实际上却十分繁琐,如果不用计算机,即使是很简单的矩阵,也要耗费无数的精力。而且,这种算法只能保证可以产生旋转矩阵,却无法保证产生的旋转矩阵一定是最优的。当参数很大时,用它产生的矩阵离最优的矩阵还差的很远。 但是,可以用这种方法产生旋转矩阵,然后利用其他的优化算法对它再进一步优化,这样可以产生比较优良的旋转矩阵。 4.诱致算法
  Greg Kuperberg是这种算法的主要创立者和提倡者。
  先利用一个巨大的参数为(V,K,t)的旋转矩阵,从V个点中按照某种顺序或完全随机的选出v个点,然后将用他们原来的长度为K的区组隔断,得到了每个区组个数不定的一个覆盖。最后,将这个覆盖进行如下的修补即可:对每一个长度为1的区组,将该区组替换成一个(1,k,t)的覆盖设计。这是一种比较复杂的算法,然而,却是迄今最好的算法之一。 运用它可以产生优化程度比较高的矩阵。然而,运用这种算法的一个很大的限制是,必须要有一个参数很大的旋转矩阵和许许多多的参数比它小的矩阵。 这样的条件比较苛刻,所以它的运用不是十分广泛。
三、旋转矩阵如何提高中奖概率
(一)对彩票中一些常用的概率的理解
  彩票之所以能够吸引成千上万的彩民,是因为它给许多人提供了一夜暴富的机会。而且成本很小,两元钱的投入就可能带来数以百万的回报。然而,它的每百万的大奖都是由上百万张没有中奖的彩票提供的。中大奖的机会微乎其微,这正是彩票的本质与魅力根源。
  尽管彩票中大奖的机会都十分小,然而各种不同彩票中大奖的概率还是有大差别的,比如32选7的北京风采中一等奖的概率为:
  而36选7的北京体彩中一等奖的概率仅为:
  简而言之,彩票号码球的个数越少,中大奖的机会就越大,而同样数目的号码球,选5型的比选7型的中大奖的机会更大。当然,天下不会有免费的午餐,中大奖的机会越大,大奖累种的奖金额越小。越难中的大奖,它累积的大奖金额越高。 一些人买彩票的心态可以分为两种,一种是瞄准百万大奖的,梦想着有朝一日可以改变自己的生活。这种彩民一般并不在意中奖的机会有多渺茫,而比较关心本期累积的大奖奖金有多高。另一种则更希望经常在彩市中有所斩获得一些不大不小的奖。这种人比较适合玩中奖机会稍大的彩票,如上海的天天彩与体彩的“四花选四”。这两种彩票中奖机会都比较高。 除了考虑奖金最高的一等奖,还要考虑次等级的二等奖、三等奖,它们的奖金虽不如一等奖那么高,也颇为丰厚。那么,如果买单注的话,中这些级别的奖的概率都可以算出来。但是,如果买多注的话,如何计算中各个级别的概率呢?如果这些注数胡乱买的,相互之间没有经过科学组合,那么应该如何估计中奖概率呢? 旋转矩阵利用科学的组合方式提高了这种中奖概率。
--------------------------------------------------------------------------------
(二)组合投注的中奖概率分析 不妨举个例子,以北京体彩(36选7)为例进行分析。比如我买了一注,那么中二等奖(6个正选号,无特别号)的概率可以用如下方法计算: 现在我想买10个号,如果用复式投注的话,需要买120注,中二等奖的概率可以这样计算:因为只有选的10个号中至少有6个正选号才可能出现二等奖。复式投注实际上由于各注之间重复的号码太多可以效率很低。 如果用旋转矩阵来投注的话,10个号码,需要购买10注。旋转矩阵的含义是,只要选的10个号中包含了7个正选号,一定含有二等奖。如果10个号中包含了6个正选号,也有可能有二等奖。 各种方式具体中奖概率比较: 1.假设用复式投注 若10个号码中含全部正选号;此条件下中二等奖的概率为100%,此条件发生概率为: 若10个号中含6个正选号,此条件下中二等奖的概率为100%,此条件发生概率为: 若10个号中含的正号少于6个,此条件下中二等奖的概率为0; 根据全概率公式,复式投注中二等奖概率为: 也就是说,旋转矩阵用的注数为复式投注的1/12,而中二等奖的概率却是复式投注的1/3,从数字的利用效率来说,旋转矩阵组合号码的效率大约是复式投注的4倍。从成本收益对比来看,旋转矩阵具有明显的优势。
  (三)旋转矩阵中奖的上下限分析 可以分析如果你选中某些正选号的情况下中奖情况(具体见平衡式旋转矩阵那一章)。 旋转矩阵为什么可以提高中奖的概率呢? 实际上,笔者一再强调天下没有免费的午餐。旋转矩阵之所以可以比复式投注与一般组合平均每注中二等奖概率要高,是以它牺牲中二等奖时的注数为前提的。举个例子,就可以明白这个问题了。 比如你准备选01,02,03,04,05,06,07,08,09,10这10个号,买10注有几种组合方式,如: (1)最极端的方式:01,02,03,04,05,06,07,同样的号连买10注。 (2)一般组合方式:如轮次矩阵,10注。表2-1:10个号码组合轮次矩阵1. 01 02 03 04 05 06 07 2. 02 03 04 05 06 07 08 3. 03 04 05 06 07 08 09 4. 04 05 06 07 08 09 10 5. 05 06 07 08 09 10 01 6. 06 07 08 09 10 01 02 7. 07 08 09 10 01 02 03 8. 08 09 10 01 02 03 04 9. 09 10 01 02 03 04 05 10. 10 01 02 03 04 05 06 (3)旋转矩阵方式:10注。表2-2:10个号码(7,六)型旋转矩阵(10注)1. 01 05 06 07 08 09 10 2. 02 03 04 06 07 08 09 3. 02 03 04 05 07 08 10 4. 02 03 04 05 06 09 10 5. 01 03 04 05 06 07 08 6. 01 02 04 05 06 07 09 7. 01 02 03 05 06 07 10 8. 01 02 03 05 08 09 10 9. 01 02 04 06 08 09 10 10. 01 03 04 07 08 09 10
  假设开出的中奖号码正选号即为01,02,03,04,05,06,07,那么显然第一种方法中的奖最多,为10个特等奖;系二种方法次之,有1个特等奖和2个二等奖;旋转矩阵只有3个二等奖。
  假设开出的中奖号码为02,03,04,05,06,07,08 第一种方法有10个二等奖; 第二种方法有1个特等奖和2个二等奖; 第三种方法有2个二等奖。 假设开出的号码为01,02,04,05,07,08,09 第一种方法:没有二等奖; 第二种方法:没有二等奖; 第三种方法:1个二等奖。 从以上可以看出,旋转矩阵的优势在于它比较均匀,只要选对7个正选号,无论是哪7个,它都能保证二等以上的奖。而一般组合方法,在某种情况下,可能会得一堆二等奖,其它情况可能只会得很小的奖。
  当然,从以上例子可以看出,在某些情况下,旋转矩阵得的奖比一般组合方式要少。这是由于旋转矩阵尽量分散了风险所致。实际上,旋转矩阵正如保险一样,它使你的收益更加确定。当然,在某些情况下,你收益可能会减少,但总体来说,稳定的收益更符合人的天性。
  此外,旋转矩阵中蕴含的修习的原理在整个保险的保费确定和保险经营中都得到了应用。实际上,旋转矩阵中蕴含的深刻的组合设计理论近百年来一直吸引着数学家,至今仍有许多这方面未解的难题。旋转矩阵以其无穷的魅力,激励着一代代数学家去突破、解决。
Numeric Recipes in C 代码库集(算法程序库)
http://d.download.csdn.net/source/773897
里边包含:
1 线性代数方程组求解
2 内插法和外推法
3 函数数值积分
4 函数求值
5 特殊函数
6 随机数
7 排序
8 求根和非线性方程组
9 函数极值
10 特征系统
11 FFT
12 傅立叶谱的应用(含小波)
13 数据的统计分析
14 最小二乘法
15 常微分方程组
16 两点边界问题
17 积分方程与反演理论
18 偏微分方程
19 少数的数值算法
希望能找到解决方案

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GailHoward 的相关文章

  • C语言细节之定义与声明

    什么是定义什么是声明 xff0c 似乎这俩个东西一样但是又有所区别 xff0c 思考一下 xff0c 如果你不能直接说出这二者的根本区别 xff0c 那么本文对你还是有点用处的 首先什么是定义 xff1f C 43 43 Primer 第四
  • 关于数据存储大小端模式的C语言题目

    int main int a 5 61 1 2 3 4 5 int ptr1 61 int amp a 43 1 int ptr2 61 int int a 43 1 printf 34 x x 34 ptr1 1 ptr2 return
  • 窥探引用和指针

    C语言面试题里面经常会出现一道题目 xff1a 向某个指定的内存地址写入特定的数据 xff0c 譬如向0x1234写入100 xff0c 做法如下 int 0x1234 61 100 解释一下就是将0x1234利用 int 强制转换为地址
  • STM32F101xxT6中VBAT 管脚上的怪现象

    转自 xff1a http bbs elecfans com forum php mod 61 viewthread amp tid 61 458808 amp extra 61 问题 xff1a 问题由某 UPS 制造公司提出 其工程师在
  • ST-LINK接口定义

    ST LINK接口定义 https www cnblogs com jieruishu p 9980350 html ST LINKIII管脚定义及接法 xff1a ST LINK IIILED灯三种状态含义 xff1a 常亮 xff1a
  • 罗德里格斯公式推导

    罗德里格斯公式推导 第一部分 向量 v 61 v x v
  • Ubuntu中的vi

    Windows中的常用编辑器 xff0c 如自带的notepad 比较好用的notepad 43 43 xff0c UltraEditor xff0c SlickEditor Linux中常用编辑器 xff0c 自带的最古老的vi 比较好用
  • 关于C++中的友元函数的总结

    转载自 xff1a http www cnblogs com BeyondAnyTime archive 2012 06 04 2535305 html 关于C 43 43 中的友元函数的总结 1 友元函数的简单介绍 1 1为什么要使用友元
  • 拷贝构造函数

    拷贝构造函数是重载构造函数的一种重要形式 xff0c 它的功能是使用一种已经存在的对象去初始一个新创建的同类对象 xff0c 它可以将一个已有对象的数据成员的值拷贝给正在创建的另一个同类的对象 拷贝构造函数与类同名 xff0c 没有返回值
  • cp: omitting directory ‘sp/’

    在linux中使用命令复制文件夹的时候出现的错误 xff1a cp omitting directory sp 解决办法 xff1a 使用递归拷贝 xff0c 在cp命令后面加上 r参数 xff0c 形如 xff1a cp r sp ica
  • LDR和ADR

    转自 xff1a https www douban com note 331036776 ARM汇编有ldr指令以及ldr adr伪指令 xff0c 他门都可以将标号表达式作为操作数 xff0c 下面通过分析一段代码以及对应的反汇编结果来说
  • 在显示屏上显示的数字的方法

    在现实屏上显示的数字的时候经常需要对数据进行分解 xff0c 得到数据 的每一位再依次显示 xff0c 方法有很多种 xff0c 下面介绍经常用到的3种方法 第一种方法 xff1a 不断的利用取整运算与取余运算得到每一位 void disp
  • 可变参数列表的简单实现

    使用可变参数列表实现一个sum函数 include lt stdio h gt define AUPBND sizeof int 1 define ADNBND sizeof int 1 define bnd X bnd sizeof X
  • 函数指针实例

    include lt stdio h gt void fun1 void printf 34 I 96 m fun1 n 34 void fun2 void printf 34 I 96 m fun2 n 34 void fun3 void
  • makefile小试牛刀

    使用make编译两个 c文件 div span style font size 14px a c void fun1 void int main fun1 return 0 span div div span style font size
  • 线程,进程,程序的区别

    转载自 xff1a https mp weixin qq com s O6 cZ9t8aJUMyeb7TbcbTQ 任务是代码运行的一个映象 xff0c 从系统的角度看 xff0c 任务是竞争系统资源的最小运行单元 任务可以使用或等待CPU
  • ubuntu14.04 samba服务器安装配置

    Data 2016 12 19 Author cjh Theme samba install andconfiguration 在介绍如何安装配置samba之前 xff0c 先简单介绍linux中两个命令的区别分别是update和upgra
  • 在数组中进行图形绘制

    include lt stdio h gt define k 2 43 1 define 2 define s 0 static unsigned short stop 61 s k k k k k k k s k k k k k k k
  • socket函数

    转自 xff1a http blog csdn net guoping16 article details 6584382 1 基本套接字函数 xff08 1 xff09 socket函数原型 socket 建立一个socket文件描述符
  • 进程与线程

    第一章 xff1a 计算机系统漫游 进程 xff1a 进程是操作系统对一个正在运行的程序的一种抽象 xff0c 一个系统可以同时运行多个进程 xff0c 看上去是CPU并发的执行多个程序 xff0c 实际上是通过进程切换来实现的 xff0c

随机推荐

  • GDI GDI+ 的区别

    转载自 xff1a http www cnblogs com lidabo p 3701252 html GDI 43 是GDI的下一个版本 xff0c 它进行了很好的改进 xff0c 并且易用性更好 GDI的一个好处就是你不必知道任何关于
  • GDI GDI+ 的区别

    转载自 xff1a http www cnblogs com lidabo p 3701252 html GDI 43 是GDI的下一个版本 xff0c 它进行了很好的改进 xff0c 并且易用性更好 GDI的一个好处就是你不必知道任何关于
  • 使用的DockPanel的心得

    使用这个控件的时候后一定要先Show this DockPlan1 才能使用DockTo this DockPlan1 DockStyle Bottom 固定位置 xff0c 否则会抛出异常
  • C#使用双缓冲解决绘图闪屏的问题

    最近在工作需要使用C 绘制图形 xff0c 看了一下绘制的函数觉得很简单就开始着手工作了 xff0c 但是在实际应用的时候发现鼠标进行绘制的时候会闪屏 xff0c 原因是图元重绘的时间不一致 xff0c 百度一下有很多更详细的 xff0c
  • 关于捕获键盘信息的processDialogkey方法

    转载自 xff1a http blog csdn net lucifinil s article details 6318189 在一些控件里的keydown方法 xff0c 没有办法捕获所有的按键消息 比如自己写一个窗体控件库 xff0c
  • C#泛型委托

    因为项目原因最近要使用C 进行编程 xff0c 于是每天现学现卖一点一点的进行开发 之前很长的时间一直使用C和C 43 43 进行编程 xff0c 于是转到C 一开始开始不是特别适应的 xff0c 特别是C 这门语言没有了指针 xff0c
  • 基于windows的Ubuntu双系统安装

    Data 2016 12 19 Author cjh Theme Ubuntu dual system installation 前期准备 1 Ubuntu相关版本镜像ios 2 UltraISO 用于制作U盘启动盘 3 EasyBCD 2
  • 汇编文件.S和.s的区别

    c C 原始程序 xff1b 预处理 编译 汇编 C C 43 43 原始程序 xff1b 预处理 编译 汇编 ccC 43 43 原始程序 xff1b 预处理 编译 汇编 cxx C 43 43 原始程序 xff1b 预处理 编译 汇编
  • 串口网口数据帧解析(支持连包、断传、错误数据过滤)

    本文转载自 xff1a https blog csdn net hwb 1988 article details 45872379 嵌入式系统中 xff0c 关于数据接受部分确实思考了很多 xff0c 下面总结下个人经验 关于串口传输 xf
  • Use of $Super$ $  and$Sub$ $to patch symbol definitions

    在无法修改现有符号的情况下 xff0c 可以使用特殊模式 现有符号无法修改 xff0c 例如 xff0c 如果它位于外部库或ROM代码中 在这种情况下 xff0c 您可以使用 Super 和 Sub 模式来修补现有符号 修补函数foo xf
  • RT-Thread内核移植

    记录代码移植过程 xff0c 成功一步记录一步 第一步 xff1a 建立裸机程序 使用STM32CubeMx建立一个裸机程序 生成MDK5工程 第二步 xff1a 参考0 bare metal完成board c board h文件 在Dri
  • C#委托和事件框架封装简写 delegate、event、Action、EventHandler

    曾经 Net大佬只有一个Delegete 委托 xff0c 别人想用委托的时候 xff0c 必须得用delegate关键字来定义一个委托 xff0c 就像这样 span class token comment 定义一个无返回值的 xff0c
  • CentOS 7 firewalld使用简介

    学习apache安装的时候需要打开80端口 xff0c 由于centos 7版本以后默认使用firewalld后 xff0c 网上关于iptables的设置方法已经不管用了 xff0c 想着反正iptable也不会用 xff0c 索性直接搬
  • 通过VNC访问docker容器的图形界面

    https hub docker com r dorowu ubuntu desktop lxde vnc https github com fcwu docker ubuntu vnc desktop docker ubuntu vnc
  • 阿里云产品图标

    2022年最新 最全的阿里云产品图标 xff0c 矢量图哦 xff0c 留下你的邮箱 xff0c 我发给你 2022年最新阿里云产品图标 有200多个图标 随时可以拿来用 为了可以审批通过 我在这里多写点字 我平时都是用这些图标 用来做设计
  • 论文引用:参考文献GB/T 7714、APA、MLA的自动生成

    一 谷歌学术 1 谷歌学术镜像 xff1a 谷歌学术镜像 Google学术搜索导航 64 思谋学术 xff0c 随意点进去一个链接 2 搜索需要的论文 xff0c 点击下方引用小标志 3 根据自己需要的引用标准 xff0c 选择复制 注 x
  • 人工智能与安全论坛:智能与安全的融合与对抗

    前几天随公司参加了互联网安全大会 xff08 ISC xff0c Internet Security Conference xff09 xff0c 虽然只参加了半天的会议 xff0c 感觉收获不 更重要的是偶遇师兄 xff0c 人生无处不相
  • Jetson TX1刷机历险记

    Data 2016 12 19 Author cjh Theme Jetson TX1 Brush 这两天刚到了英伟达的jetson tx1 开发板 xff0c 之前也看了写资料 xff0c 感觉应该很充分刷机应该没有问题才对 xff0c
  • curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused 解决方法

    问题 xff1a 报错 curl 7 Failed to connect to raw githubusercontent com port 443 Connection refused 解决方法 xff1a 参考 xff1a https
  • GailHoward

    全球著名彩票预测家美国人 xff27 xff41 xff49 xff4c xff28 xff4f xff57 xff41 xff52 xff44 发明的 旋转系统 选号法已经造就了 xff17 xff14 个大奖得主 xff0c 这是一种基