我正在嘗試在Visual Basic 2010 express中編寫一段代碼,它生成4個不同的隨機值,它們合計爲100,並偏向實際值中的一個值數值,我知道我將如何使某個值在價值方面受到青睞,但我不確定所有隨機值合計爲100,某人是否可以提供一些原始碼或sudo碼以供我使用請從?Visual Basic Express 2010中的隨機值合計爲100
回答
的典型方式是:
- 生成4個隨機值(R1,R2,R3,R4) - 你可以把這些在數組或四個變量。
- 計算
100/(r1+r2+r3+r4)
- 乘以這個數每個4個值
如果需要整數,有一個機會,四捨五入會導致您的數字加起來的東西不正是100在這種情況下, ,選擇1..4之間的另一個隨機整數,稱這個n,然後從r(n)中加上或減去,這樣總數加起來就是100.
我不太明白,所以我會首先聲明一個4個整數的數組?然後將它們除以100?這將給我留下4個隨機值,這些值已被縮小。我不太明白這對我有什麼幫助,你是否希望我能更多地解釋這種情況? –
你需要整數嗎?這使得它更難一點 - 你必須舍入數值,這可能會使你失去100.使用第五個隨機值來決定,你適應哪個值r1..r4準確地命中100 –
生成3個從0到你的極限的隨機數(100) ,但每次生成隨機數字時都會將其從您的限制中減去。第4號將是限制的剩餘價值,這4個數字加起來也就100
Module Module1
Sub Main()
Dim limit As Integer = 100
Dim rand As New Random
' Generate three random numbers
For i As Integer = 1 To 3
Dim newNumber = rand.Next(0, limit)
' Set your new limit by subtracting the random number
limit = limit - newNumber
Console.WriteLine(newNumber)
Next
' The 4th number will be whatever is left in limit
Console.WriteLine(limit)
Console.ReadLine()
End Sub
End Module
結果:
如果第一個隨機數生成的數字是99? –
它仍然會工作...你最終會有一個新的限制1,這意味着rand.Next將看起來像「rand.Next(0,1)」。 maxValue是獨佔的,因此會生成0。這將導致以下結果:99,0,0,1. – Shar1er80
我知道你的方法有效,但我想知道0或更低的數字會出現不成比例的次數嗎?我的意思是它似乎「不那麼隨意」。 –
- 1. 的Visual Basic Express 2008的隨機
- 2. Visual Basic 2010 Express - 如何在Visual Basic 2010 Express中使用excel函數
- 3. Visual Basic 2010 Express Express到數據庫
- 4. 在Visual Basic 2010 Express中解碼JSON
- 5. 在Visual Basic Express 2010中更新查詢
- 6. 真隨機抽取卡,而不是隨機組? visual basic 2010
- 7. Visual Basic 2010 express不會安裝
- 8. 如何隨機化Visual Basic 2010中的數組?
- 9. Visual Basic生成隨機數
- 10. Visual Basic中的隨機數/模
- 11. Visual Basic 2010 Express:檢查my.settings.username是否具有值
- 12. Visual Basic 2010
- 13. 在Visual Basic 2010
- 14. Visual Basic - 計算隨機數組中數字的出現
- 15. 如何使用visual basic 2010 express中的組合框更改msgbox上的按鈕?
- 16. visual basic 2010中的參數
- 17. Visual Basic 2010 Express中的狀態縮寫代碼
- 18. 在Visual Basic 2010中的WCF服務庫express
- 19. OleDb通過Visual Basic Express 2010中的打開文件對話框
- 20. 在Visual Basic Express 2010中獲取位圖圖像的一部分
- 21. 如何使用代碼停止Visual Basic 2010 Express中的調試?
- 22. 的Visual Basic劊子手隨機函數
- 23. 計數100個隨機數
- 24. 添加到組合框在Visual Basic 2010
- 25. Visual Basic 2010組合框到datagrid
- 26. Visual Basic 2010 - 追加使用計時器
- 27. Visual Basic 2010縮放
- 28. Visual Basic 2010/Sub Procedure
- 29. Visual basic 2010錯誤
- 30. Visual Basic 2010 HMAC SHA1
請加你迄今所以我們可以工作的代碼那 –