我正在尝试在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
请加你迄今所以我们可以工作的代码那 –