0

我正在尝试以编程方式在方程式146 + x + y 除以 7 = 28.13% x 中找到 x 和 y 的值,并且 y 包含 19 到 43 之间的任何值。这是我得到的 x 和 y 均为 25 的代码,什么我做错了吗?

Public Class Form1
    Dim percentage, x, y, f As Integer
    Public Function GetRandom(ByVal Min As Integer, ByVal Max As Integer) As Integer
        Dim Generator As System.Random = New System.Random()
        Return Generator.Next(Min, Max)
    End Function
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        percentage = 28.13

        Do Until f = 4
            If (146 + x + y) / 7 = percentage Then
                MessageBox.Show(x)
                MessageBox.Show(y)
                f = 4
            End If
            x = GetRandom(19, 43)
            y = GetRandom(19, 43)

        Loop


    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        x = 19
        y = 19
    End Sub
End Class
4

2 回答 2

2

您正在寻找 (x+y)=50.91,其中 x 在 [19, 43] 中,y 在 [19, 43] 中。

因此,选择一个x,然后y=50.91-x

您显示的方程式没有单一的解决方案。

或者你实际上是在要求别的东西?

于 2012-11-23T22:32:32.797 回答
2

1) 您声明percentage为整数,但试图将其设置为 28.13,这不是整数。

2)不要一直重新创建一个新的随机对象:

Public Class Form1
  Private Generator As New Random()

  Public Function GetRandom(ByVal Min As Integer, ByVal Max As Integer) As Integer
    Return Generator.Next(Min, Max)
  End Function

3)如果你必须等于 28.13,那么如果不将百分比声明为小数,然后在你的等式上使用 Math.Round(...),那可能是行不通的,但即便如此,我认为你不会有任何x 和 y 整数将满足精确相等的方程。

于 2012-11-23T20:17:21.873 回答