Board logo

標題: [發問] 隨機產生 竟依序都一樣? [打印本頁]

作者: lyc43210    時間: 2015-6-19 22:27     標題: 隨機產生 竟依序都一樣?

不好意思 我新手又來發問了

我這次想寫一個 在範圍內隨機位置產生數字 紀錄"辨識反應速度"的程式
寫完後卻發現 雖然好像有隨機沒錯
但每次開啟測試 隨機產生的數字和位置竟然依序都會是一樣的!
我搞不清楚為何會發生這樣子的事
希望各位高手前輩能指導相助 感謝

附上檔案
[attach]21215[/attach]


另外還有兩個問題想請教一下
1.設定檔案開啟時,隱藏工作表只顯示程式表單畫面。卻又忘記設計顯示的按鈕,若發現程式需要做修改時,要怎麼再開啟編輯器?
2.假設我在一個100*100的範圍內,放一個10*10的按鈕。設定按鈕位置在(90,90)卻不是在最右下角? 但設(0,0)就是最左上角啊

謝謝
作者: lyc43210    時間: 2015-6-21 00:44

直接執行表單 確實都會是隨機不一樣
但設成檔案開啟時即啟動表單做測試 每次開啟時都會是固定的順序

認真求解
拜託
作者: GBKEE    時間: 2015-6-21 17:04

回復 2# lyc43210
  1. Rnd 函數
  2. 傳回一型態為 Single 的值,其內容為一亂數值。
  3. 語法
  4. Rnd [(number)]
  5. 選擇性引數 number 可以是一型態為 Single 的值,或任何數值運算式。
  6. 傳回值
  7. 如果 number 的值是 Rnd 傳回的亂數值
  8. 小於 0 每次都是使用 number 當做亂數種子的相同結果。
  9. 大於 0 亂數序列中的下一個亂數值。
  10. 等於 0 最近一次產生過的亂數值。
  11. 省略 亂數序列中的下一個亂數值。
  12. 請注意
  13. Rnd 函數傳回的亂數值介於 0 和 1 之間,可等於 0,但不等於 1。
  14. number 的值會影響 Rnd 傳回亂數值的方法。
  15. 給定一個亂數種子後,便會產生一特定的亂數序列,因為每呼叫一次 Rnd 函數,它就會使用先前呼叫時所產生的亂數值當成新的亂數種子以產生新的亂數值。
  16. **********請看這裡 VBA說明中有範例  ********************************
  17. 在使用 Rnd 之前,最好先呼叫 Randomize 陳述式,但不要給任何引數,如此便會以作業系統的時間當作亂數種子來起始亂數產生器。
  18. 若想產生在某個範圍內(非 0 到 1)的亂數值,可使用下列公式:
  19. Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
  20. ************************************************

  21. 上述公式中,upperbound 是亂數範圍的上限,而 lowerbound 則是亂數的下限。
  22. 附註 若想得到重覆的亂數序列,可以在呼叫 Randomize 之前先呼叫 Rnd 並且傳入一小於 0 的引數值。光是用同樣的亂數種子呼叫 Randomize 兩次的話,並不會得到兩次相同的亂數序列。
複製代碼

作者: lyc43210    時間: 2015-6-22 17:32

回復 3# GBKEE

謝謝 詳細解說
加了Randomize 後 就成功解決了!

可以麻煩版主
再解釋一下我後面兩個另外的問題嗎?
感謝




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)