易语言取不重复的随机数假设有30个数字我要取两组数字,每一组有5个数,我要怎么判断两组数取的随机数都不同比如第一组=1,

易语言取不重复的随机数
假设有30个数字
我要取两组数字,每一组有5个数,我要怎么判断两组数取的随机数都不同
比如
第一组=1,2,3,4,5
第二组=6,7,8,9,10
要求
第一组的数字各不相同,并且与第二组的数字也不要重复
第二组的数字同上
每一组要取的数量也不相同
阿布拉的馕 1年前 已收到1个回答 举报

flashcity 幼苗

共回答了7个问题采纳率:85.7% 举报

方法一.数组arr[arrlen]存储要取出的数值.
arrlen为数组arr的长度,取随机数
r=[0,arrlen-1],取出arr[r],将arr[r]
赋值为arr[arrlen-1],然后arrlen--,直至取完.
方法二.
你可以试试遍历数组,然后每次取一个随机数,用该随机数的下标数组值与当前遍历数组值交换.
这样就可以乱序其中的30个数字,你只要取前10个分两组就好了

1年前 追问

5

阿布拉的馕 举报

有代码吗...

举报 flashcity

下面是方法二的实现方法:

.版本 2


.局部变量 num, 整数型, , "30"

.局部变量 numlen, 整数型

.局部变量 i, 整数型

.局部变量 randnum, 整数型

.局部变量 temp, 整数型

.局部变量 str, 文本型


置随机数种子 ()

numlen = 取数组下标 (num, )

.计次循环首 (numlen, i)

num [i] = i

.计次循环尾 () ' 这里是输入数组的值,根据你需要改

' 乱序

.计次循环首 (numlen, i)

randnum = 取随机数 (1, numlen)

temp = num [i]

num [i] = num [randnum]

num [randnum] = temp

.计次循环尾 ()

' 分组,根据需要修改输出方式

.计次循环首 (10, i)

str = str + 到文本 (num [i]) + “ ”

.如果 (i % 5 = 0)

str = str + #换行符

.否则


.如果结束


.计次循环尾 ()

输出调试文本 (str)



可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 0.043 s. - webmaster@yulucn.com