Zufallsgenerator (bestimmte Zahlen...)

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von Lightsource.

    Zufallsgenerator (bestimmte Zahlen...)

    Hallo :D
    Wie kann ich einen Zufallsgenerator machen,der mir immer vier Zahlen ausgibt,und wenn man die Quersumme der ersten drei Zahlen plus die letzte Zahl rechnet 130 herauskommt?

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „MrYannis“ ()

    Ermittle nur 3 Zahlen addiere sie und ziehe sie von 130 ab.
    Das Ergebnis ist deine vierte Zufallszahl!




    Oder:

    ermittle 4 Zahlen, addiere sie.
    Anschließend rechne

    1te Ergeniszahl = 1te Zahl * 130 / Summe(Zahl1+Zahl2+Zahl3+Zahl4)
    2te Ergeniszahl = 2te Zahl * 130 / Summe(Zahl1+Zahl2+Zahl3+Zahl4)
    3te Ergeniszahl = 3te Zahl * 130 / Summe(Zahl1+Zahl2+Zahl3+Zahl4)
    4te Ergeniszahl = 4te Zahl * 130 / Summe(Zahl1+Zahl2+Zahl3+Zahl4)

    Ok, du hast deinen Beitrag bearbeitet. Jetzt stimmt meine Formel natürlich nicht mehr.

    Das Prinzip bleibt aber das gleiche.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Lightsource“ ()

    Ich weiß nicht, ob ich Dein Problem verstanden habe.
    Die größte mögliche Quersumme einer 4-stelligen Zahl (9999) beträgt 36.
    Lässt sich dies mit der Aufgabenstellung vereinen?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Habe mich jetzt extra noch mal dran gesetzt.
    Teste es mal, ob es nun deinen Ansprüchen gerecht wird. :S
    Du musst die Funktion "VierZahlen" ohne Parameter aufrufen und erhältst einen String
    mit den 4 Zahlen zurück.

    VB.NET-Quellcode

    1. Function quersumme(ByVal zahl As Integer) As Integer
    2. quersumme = 0
    3. Dim str As String = CStr(zahl)
    4. For Each C As Char In str.ToCharArray
    5. quersumme = quersumme + CInt(C.ToString)
    6. Next
    7. Return quersumme
    8. End Function
    9. Function VierZahlen() As String
    10. Dim rn As New System.Random
    11. Dim bereich As Integer = 9999
    12. Dim a, b, c, d, aq, bq, cq As Integer
    13. a = CInt(rn.NextDouble * bereich)
    14. aq = quersumme(a)
    15. b = CInt(rn.NextDouble * bereich)
    16. bq = quersumme(b)
    17. c = CInt(rn.NextDouble * bereich)
    18. cq = quersumme(c)
    19. d = 130 - (aq + bq + cq)
    20. Return a.ToString & " " & b.ToString & " " & c.ToString & " " & d.ToString
    21. End Function