VB 隨機數生成問題 緊急

發布 社會 2024-07-22
14個回答
  1. 匿名使用者2024-01-31

    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

  2. 匿名使用者2024-01-30

    不太明白你需要做什麼,但對於你提到的兩個:

    1.如果控制隨機數在 1 n 的範圍內:它應該是:int(rnd * n) +1

    2.在程式發生 n 次或發生 n 次時關閉程式?

  3. 匿名使用者2024-01-29

    只需儲存乙個數字並使用它來建立物件??? 但是你所有的數字都可以在乙個班級中...... 很簡單,你的 n 總是有上限的,它不可能是無限的,然後你定義乙個陣列,陣列的長度就是上限(當然,你可以使用動態陣列)。

    生成隨機數的方法還是使用隨機數函式,但是要生成類似於圖紙的隨機數,那麼每次都必須將隨機數的數量與前面的隨機數進行比較,如果直接丟棄,重新繪製,則一種方法是一樣的,但是這個方法以後會執行很多次, 還有一種方法是每次抽取,隨機範圍為-1,然後下乙個隨機數找出所有小於或等於這個數字但已經抽到的數字。然後用這個數字把這個數字加起來(相當於在支票的號碼中已經抽出的數字被隔開,也就是抽獎箱裡沒有號碼),加完之後,看看有沒有和這個號碼開的號碼一樣,如果沒有號碼就是這個號碼, 如果有 +1,然後 than 直到 no,則此方法對每個隨機數隨機一次,並且其方法之一隨機到最後乙個

  4. 匿名使用者2024-01-28

    1. 陣列 a(1) 到 a(n) 被分配從 1 到 n 的初始值

    2. 使用隨機化使 x=n

    3. 生成 1. x 之間的隨機整數,交換 a(x) 和 a(n),其中 x 減去 1。

    4. 如果 x>1,則轉到第 3 步,否則演算法結束。

  5. 匿名使用者2024-01-27

    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 如果

    第乙個完成了''需要除錯。

  6. 匿名使用者2024-01-26

    相信這就是你想要的結果,隨機數範圍是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

  7. 匿名使用者2024-01-25

    還沒除錯,試試這一段**:

    新增標籤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

  8. 匿名使用者2024-01-24

    嘿,我的除錯都是死的,長組資料。

  9. 匿名使用者2024-01-23

    您可以建立乙個陣列,例如 x(i),並為每個陣列元素分配要顯示的數字。 首先 i=0,每次單擊按鈕時,將 x(i) 的值分配給文字框,文字框顯示 x(i) 的值,並且 i=i+1。 例如,如果要顯示 5 組資料,可以每次點選按鈕判斷是否達到 5,如果 =5,則 i=0

    這將使您能夠滿足您的要求。

  10. 匿名使用者2024-01-22

    你是幹什麼的? 是否要在同一行上顯示? 然後使用。

    拿起你想展示的內容。

    這應該可以解決問題。

  11. 匿名使用者2024-01-21

    你想要的**就在這裡,並且已經驗證好了!!

    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

    未來一起學習和研究!

  12. 匿名使用者2024-01-20

    新增乙個標籤,然後選擇它,複製、貼上,當詢問是否要建立控制項陣列時回答“是”,然後再貼上 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

  13. 匿名使用者2024-01-19

    總共有10個**,**上寫著“0-9”,10個數字嗎?

    如果是這樣的話,用陣列 a 10 初始化這 10 並不難。 0 對應於寫有“0”的 **,依此類推。

    如果獲得隨機數 21,則 2 和 1 可用於相應的 **。

  14. 匿名使用者2024-01-18

    使用 cstr 函式將數字轉換為字串,然後您可以使用 left 和 right 函式來獲取部分(在本例中為 left 1 和right 1)。

相關回答
7個回答2024-07-22

2.游標位於文字的第一頁(第4頁),檢視--頁首和頁尾--將游標轉換為頁尾區域;

8個回答2024-07-22

1. 匯入 Word

公升降機不易開啟。 >>>More

11個回答2024-07-22

建議使用 XML 來儲存此資訊,然後通過操作 XML 來操作此資訊。

28個回答2024-07-22

任何兩種低階時尚結合在一起後,如果不出天價,絕對是高階時尚,這是100%,永遠不會成為低階時尚。 所以你可以放心。 但是,讓我告訴你。 >>>More

8個回答2024-07-22

因為 a 是否定的意思,然後用 a 本身做或操作,所有位都會變成 1,並且所有位都是 1 有符號整數輸出為 -1。 >>>More