Java数组
应用1:
大乐透彩票模拟器:
规则: 前区01-35中随机生成5个号码
后区01-12中随机生成2个号码
模拟操作,系统自动生成号码组合,并且按从小到大的顺序输出结果
同时要求可以选择生成多少组(默认选项:生成1组,生成5组,生成10组)
上图为方法一,数组的综合应用,赋值,冒泡排序,和通过循环遍历;
方法一:
常规的方法:
第一步:输出彩票前区的号码,用while循环,一个个随机数字输出,把一个数字赋值进数组第一个位置,因为要保证每一个数字的唯一性,所以之后的输出的数字要做出判断,如果与前面的数字相等,那么需要重新抽取随机数,将每个输出的数字与前面的数字相比,通过循环完成,这样通过判断和循环就能保证输出的每个数字的唯一性,并且将数字赋值给数组;
第二部:通过冒泡法排序,将数组中每两个数字进行比较,将大的数字通过交换放进数组下标大的对应位置,这样通过数组长度-1次的冒泡排序就能将数字进行有序的排列
通过if判断简化循环判断过程,如果两个数字都是经过判断且没有交换位置,那么下次排序判断则不需要做这一重复步骤;
方法2:活用数组的下标
数组的下标是具有唯一且连续性的,满足彩票1-35个数字不相同的要求,将数字的下标看做彩票球号,下标所对应的数字在初始化不赋值的情况下为零,我们可以把抽取的随机数与数组下标做判断,如果输出的随机数字与下表相等那么对相对应的的下标所对应的位置输入数值做为信号标记,所以有信号标记(就是数组值不为0的下标)即是随机数抽取到的数字,那么数组前5个有标记的数组下标即是随机数抽取的前五个前唯一的数字,这样只要遍历输出这个数组那么就能完成前区号码的抽取。因为数组的下标是连续的所以只要循环遍历数组,即可按顺序排序号码
总结
加深对数组的理解后,可以灵活运用其下标对相应的抽取数字类型进行计算,数组的下标具有连续且唯一的性质,而数组的数值可以用来作为信号标记,未赋值的数组初始值都为0,对满足需要条件的下标进行信号标记,通过循环判断输出有信号标记的数组就可以筛选所需要的数字。