![]() |
PCDVD數位科技討論區
(https://www.pcdvd.com.tw/index.php)
- 七嘴八舌異言堂
(https://www.pcdvd.com.tw/forumdisplay.php?f=12)
- - 能看出這個簡單程式有什麼問題的人絕對是個高手
(https://www.pcdvd.com.tw/showthread.php?t=816594)
|
|---|
能看出這個簡單程式有什麼問題的人絕對是個高手
會公佈答案
但在公佈答案前 想看看那些高手可以看出問題點 能看出來 真的很不簡單 第一次看到這個程式 發覺寫這程式的人真是利害 樂透程式碼可以寫到這麼短 後來仔細研究才發現這程式碼絕對不能拿來跑樂透 :) 這是個vb6的程式 程式如下 Option Base 1 '樂透,39號取出6個號碼 Private Sub Form_Load() Dim ball(39) As Integer Dim i, b1, num As Integer Randomize '把球編號 1至39號 For i = 1 To 39 ball(i) = i Next num = 39 For i = 0 To 5 b1 = Int(Rnd() * num) + 1 '亂數選號 Text1(i).Text = ball(b1) '選中的號碼,放入Text1文字方塊中 ball(b1) = ball(num) num = num - 1 Next i End Sub :) |
有可能出現5個39號嗎
|
它怎麼沒做號碼重覆檢查?
|
如果Rnd() 這函數回傳介於0~1之間的話
那絕對不會選到....質數... 應該說很的數值都無法乘出 應該用 (int)(Rnd()*1000)%39+1 會比較好..... |
引用:
我前面說過 發覺寫這程式的人真是利害 樂透程式碼可以寫到這麼短 所以不可能有這麼大的漏洞 :) |
引用:
啊宅你還會寫程式 我連程式都不會寫........不能當好人 |
所以阿宅果然有真材實料 :p
|
哈...我好像猜錯了...
我還是沒資格當好人... :cry: :cry: :cry: |
引用:
我剛run一次 跑出來的答案有31、7是值數 36 31 10 30 34 7 :) |
引用:
因為它不會重覆啊~~ |
| 所有的時間均為GMT +8。 現在的時間是02:03 AM. |
vBulletin Version 3.0.1
powered_by_vbulletin 2025。