[发明专利]一种通过系统随机数洗牌的方法无效
申请号: | 200910085574.2 | 申请日: | 2009-05-25 |
公开(公告)号: | CN101901296A | 公开(公告)日: | 2010-12-01 |
发明(设计)人: | 刘立军;王磊;张守文;陶勇胜 | 申请(专利权)人: | 灰熊(北京)科技有限公司 |
主分类号: | G06F19/00 | 分类号: | G06F19/00 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 102218 北京市昌*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 通过 系统 随机数 洗牌 方法 | ||
技术领域
本发明涉及一种通过系统随机数打乱一副牌的排序方法,特别涉及一种通过加密产生不重复的随机数来将一副排序好的牌进行洗牌的方法。
背景技术
目前通过计算机语言来产生系统随机数的方法主要有以下两种:
1、通过“伪随机数生成器”来生成随机数。
这种方法实现简单,主要是通过设定随机数种子来获得伪随机数。但获得的随机数精度不高,不够随机,容易产生大量的重复的随机数。这样所得到的随机数只能满足:所要求的随机数不是很多,而且允许重复的情况。这种应用在对随机数要求不高的项目中被广泛采用。而在需要大量的随机数,而且并发量大的项目中,会因随机数不能加密,不够随机,重复数多而被放弃使用。
2、通过“加密随机数生成器”来生成随机数。
这种方法使用加密服务提供程序(CSP)来实现加密随机数生成器(RNG)。通过加密手段产生的随机数精度高,安全,重复数少,而且足够的随机。但它的缺点是只能产生0到256之间的随机数。
发明内容
本发明所要解决的技术问题是提供一种加密产生不重复的随机数来将一副排序好的牌进行洗牌的方法。一张扑克牌对象通常有两个属性,即:牌的花色和牌的值。一副完整的扑克牌有54张,在生成这54张牌对象时,所采用的方法是利用计算机语言中的循环技术来顺序新建54个牌对象,并将其存储在对象数组中,然后打乱数组中的牌的次序,发放给用户。
本发明所述的一种通过系统随机数洗牌的方法,该方法至少包括如下的步骤:
步骤1:确定一张扑克牌对象,该对象包括牌的花色和牌的值这两个属性。
步骤2:利用循环技术顺序产生54张扑克牌对象。
步骤3:利用加密随机数生成器生成54个随机数,然后存储到数组中。
步骤4:新建一个集合对象,该对象拥有泛型键值对(key/value)和按键(key)排序(sort)顺序输出的特征。
步骤5:将随机数数组中的元素作为集合的键(key),将54张顺序的牌对象作为集合的值(value),顺序添加(add)到集合中。
步骤6:运用集合的按键排序属性将集合中存储的以随机数作为键(key),以扑克牌作为值(value)的牌对象顺序取出,存储到牌对象的数组中,洗牌完成。
本发明涉及的一种通过系统随机数洗牌的方法,使得将一副按顺序排序的牌进行了洗牌操作,高效的利用了安全的随机数和集合对象的属性。
具体实施方式
本发明的主要步骤如下:
步骤1:新建两个枚举类型,分别为牌的花色,包括黑、红、花、片四个属性,和牌的值,包括2-10和J、Q、K、A、SmallKing、BigKing这15个值。
步骤2:新建一张扑克牌类,该类对象包括牌的花色和牌的值这两个属性;利用二层循环新建54个牌的对象,其中每个牌对象都有两个属性,一个为牌的花色枚举值,一个为牌值枚举值。
步骤3:利用加密随机数生成器生成54个随机数,然后存储到数组中;生成时要判断是否和历史生成的随机数重复,有重复则重新生成。
步骤4:新建一个泛型的集合对象,该对象拥有排序顺序输出的方法。
步骤5:利用循环机制将随机数作为泛型集合对象的键,将54张牌对象作为泛型集合的值添加到集合中。
步骤6:调用集合的按键排序方法,顺序输出54张牌。洗牌完成。
上述的技术方案实施时将一副按顺序排序的牌进行了洗牌操作,高效的利用了安全的随机数和集合对象的属性。
最后所应说明的是,以上实施例仅用以说明而并非限制本发明所描述的技术方案;因此,尽管本说明书参照上述的实施例对本发明已进行了详细的说明,但是,本领域的普通技术人员应当理解,仍然可以对本发明进行修改或者等同地替换;而一切不脱离本发明的精神和范围的技术方案及其改进,其均应涵盖在本发明的权利要求范围当中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于灰熊(北京)科技有限公司,未经灰熊(北京)科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910085574.2/2.html,转载请声明来源钻瓜专利网。
- 同类专利
- 专利分类
G06F 电数字数据处理
G06F19-00 专门适用于特定应用的数字计算或数据处理的设备或方法
G06F19-10 .生物信息学,即计算分子生物学中的遗传或蛋白质相关的数据处理方法或系统
G06F19-12 ..用于系统生物学的建模或仿真,例如:概率模型或动态模型,遗传基因管理网络,蛋白质交互作用网络或新陈代谢作用网络
G06F19-14 ..用于发展或进化的,例如:进化的保存区域决定或进化树结构
G06F19-16 ..用于分子结构的,例如:结构排序,结构或功能关系,蛋白质折叠,结构域拓扑,用结构数据的药靶,涉及二维或三维结构的
G06F19-18 ..用于功能性基因组学或蛋白质组学的,例如:基因型–表型关联,不均衡连接,种群遗传学,结合位置鉴定,变异发生,基因型或染色体组的注释,蛋白质相互作用或蛋白质核酸的相互作用