随机数产生与仿真36选7的开奖过程
一、 问题描述
我所选的题目是随机数产生与仿真 36选 7的开奖过程,该题目是有从1到36的36个数
随机从中随机选择7个数,需要注意的是当选了第一个数后,只剩下35个数,每选一个数,基数就变小,直到选完7个数。
总之,对于这个程序,需要实现的功能是
1、 从长度为36的数组中随机选出7个数
2、 将这七个数显示出来
二、 数据结构
定义好数据段的数组如下,37个号码放在一个数组中,为方便输出,每个号码为两位数
DATA SEGMENT
ARR DB 01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18
DB 19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36
INFOR DB 'CHU SHU ZI:$' ;提示信息
DATA ENDS
三、 算法描述:
BX存放当前数组的长度36,CX存放未取的个数,调用int 21h 的7号功能判断是否键盘输入为回车键,2c号功能获得当前系统的时间,由于时间戳存放于dl中,故用dl除以当前数组长度,得到的余数则充当随机数在数组中的下标,并将元素保存到BX中。
1. MOV BX,36 ;记录数组长度
2. MOV CX,7 ;次数
3. ;PUSH CX
4. LP:
5. PUSH BX
6. MOV AH,7
7. INT 21H
8. CMP AL,0DH