-
for n = 0 to 155
a = int(rnd * 25)
b = int(rnd * 25)
c = y(a): y(a) = y(b): y(b) = c
next 1.你说的是随机数的范围(1-n)。如果要实现任何 n 值,只需将此处的 25 更改为所需的 n 值即可。 RND 生成一个介于 0-1 之间的随机数。 使用 rnd*25 时,该值介于 0 和 25 之间。
2.你说出现n次关闭。 这里的 n 是 155,这里的数组执行任意两个值交换 156 次。
所以你的**会这样做:
const maxvalue = 25 '范围 n 的定义可以更改为任何值。
const maxcount = 155 '交换次数 n 的定义可以更改为任何值。
dim y() as integer
redim y(0 to (maxvalue-1)) as integer
dim p as integer
sub form_load()
dim n as integer, a as integer, b as integer, c as integer
p=0 for n = 0 to maxvalue-1
y(n) = n
next for n = 0 to maxcount
a = int(rnd * maxvalue)
b = int(rnd * maxvalue)
c = y(a): y(a) = y(b): y(b) = c
next end sub
sub com1_click()
msgbox y(p)
p=p+1if p>ubound(y) then end
end sub
-
不太明白你需要做什么,但对于你提到的两个:
1.如果控制随机数在 1 n 的范围内:它应该是:int(rnd * n) +1
2.在程序发生 n 次或发生 n 次时关闭程序?
-
只需保存一个数字并使用它来创建对象??? 但是你所有的数字都可以在一个班级中...... 很简单,你的 n 总是有上限的,它不可能是无限的,然后你定义一个数组,数组的长度就是上限(当然,你可以使用动态数组)。
生成随机数的方法还是使用随机数函数,但是要生成类似于图纸的随机数,那么每次都必须将随机数的数量与前面的随机数进行比较,如果直接丢弃,重新绘制,则一种方法是一样的,但是这个方法以后会运行很多次, 还有一种方法是每次抽取,随机范围为-1,然后下一个随机数找出所有小于或等于这个数字但已经抽到的数字。然后用这个数字把这个数字加起来(相当于在支票的号码中已经抽出的数字被隔开,也就是抽奖箱里没有号码),加完之后,看看有没有和这个号码开的号码一样,如果没有号码就是这个号码, 如果有 +1,然后 than 直到 no,则此方法对每个随机数随机一次,并且其方法之一随机到最后一个
-
1. 数组 a(1) 到 a(n) 被分配从 1 到 n 的初始值
2. 使用随机化使 x=n
3. 生成 1. x 之间的随机整数,交换 a(x) 和 a(n),其中 x 减去 1。
4. 如果 x>1,则转到第 3 步,否则算法结束。
-
x 基数 = 33
x 倍数 = 126-33
randomize
rrandom = rnd(1)。
y 目标 1 = r 随机 * x 倍数 + x 基数。
Y 目标 2$ = CHR(y 目标 1)。
如果不是 y,则目标 2 ="z" then'连接到文本1
目标 2end 如果
第一个完成了''需要调试。
-
相信这就是你想要的结果,随机数范围是1-20,你可以设置它,一组返回7个数字,你也可以设置它,最后给你加一个升序排序,如果可以的话,你可以给它打更高的分。 (*
option base 1 '定义以 1 开头的数组下标。
private sub command1_click()
dim i as integer, j as integer
dim num_array as string
dim str as string
for i = 1 to 5 '输出 5 组。
num_array = rand_num(20, 7)
str = "部分" & i & "群:" & num_array
print str
nextend sub
function rand_num(max as integer, count as integer) as string
max 是随机数的最大范围,count 是组中生成的数字数。
dim i as integer, j as integer, k as integer, t as integer, rand as integer
redim sum(max) as integer
dim str as string
dim min as integer
randomize
if max < count then max = count
for i = 1 to max '为数组总和赋值
sum(i) = i
nextfor j = max to 2 step -1 '打乱 sum 数组中数字的顺序。
rand = int(rnd * j - 1)) 1
t = sum(j): sum(j) = sum(rand): sum(rand) = t
nextmin = sum(1)
for i = 1 to count - 1 '在此示例中,前七个数字按升序排序。
for j = i + 1 to count
if sum(i) >sum(j) then t = sum(i): sum(i) = sum(j): sum(j) = t
nextnext
for k = 1 to count '取出排序后的结果并将它们一起返回。
str = str & sum(k) &" "
nextrand_num = str
end function
-
还没调试,试试这一段**:
添加标签1
dim a1 as integer,a2 as integer,a3 as integer,a4 as integer,a5 as integer,a6 as integer,a7 as integer
dim mystr as string
for a1=1 to 14
for a2=a1+1 to 15
for a3=a2+1 to 16
for a4=a3+1 to 17
for a5=a4+1 to 18
for a6=a5+1 to 19
for a7=a6+1 to 20
doevent
mystr=format(a1,"00 ") &format(a2,"00 ") &format(a3,"00 ") &format(a4,"00 ") &format(a5,"00 ") &format(a6,"00 ") &format(a7,"00 ")
mystrnext
nextnext
nextnext
nextnext
-
嘿,我的调试都是死的,长组数据。
-
您可以创建一个数组,例如 x(i),并为每个数组元素分配要显示的数字。 首先 i=0,每次单击按钮时,将 x(i) 的值分配给文本框,文本框显示 x(i) 的值,并且 i=i+1。 例如,如果要显示 5 组数据,可以每次点击按钮判断是否达到 5,如果 =5,则 i=0
这将使您能够满足您的要求。
-
你是干什么的? 是否要在同一行上显示? 然后使用。
拿起你想展示的内容。
这应该可以解决问题。
-
你想要的**就在这里,并且已经验证好了!!
private sub command1_click()dim num(1 to 6) as integerdim i, j, t as integer'= 获得 6 个大于 1 且小于 33 的不同整数,因为 i = 1 到 6
restart: t = int((33 - 1 + 1) *rnd + 1)
for j = 1 to ubound(num)if num(j) = t then
goto restart
end if
next j
num(i) = t
next i
显示在标签上 = num(1)。
num(2)
num(3)
num(4)
num(5)
num(6)
end sub
未来一起学习和研究!
-
添加一个标签,然后选择它,复制、粘贴,当询问是否要创建控件数组时回答“是”,然后再粘贴 4 次,窗体总共有 6 个 label1。 然后写下下一个**:
private sub command1_click()dim i as integer
randomize
for i = 0 to 5
label1(i).caption = int(rnd * 33) +1
这是 [1,33] 的范围,如果需要 (1,33),请将其更改为 int(rnd * 31) +2
nextend sub
-
总共有10个**,**上写着“0-9”,10个数字吗?
如果是这样的话,用数组 a 10 初始化这 10 并不难。 0 对应于写有“0”的 **,依此类推。
如果获得随机数 21,则 2 和 1 可用于相应的 **。
-
使用 cstr 函数将数字转换为字符串,然后您可以使用 left 和 right 函数来获取部分(在本例中为 left 1 和right 1)。
任何两种低级时尚结合在一起后,如果不出天价,绝对是高级时尚,这是100%,永远不会成为低级时尚。 所以你可以放心。 但是,让我告诉你。 >>>More