Array - Wahrscheinlichkeit erhöhen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Array - Wahrscheinlichkeit erhöhen

    Hallo,

    in einem Forum haben wir ein Spiel in Planung, wo ich in der Planung gerade etwas hängen bleibe.
    Wir haben 5 Karten.
    Karte 1 = 100% Wahrscheinlichkeit
    Karte 2 = 80%
    Karte 3 = 60%
    Karte 4 = 40%
    Karte 5 = 20%

    100% soll nun nicht bedeuten, dass immer diese karte kommt, nur eben eine 5-fache gewinnchance dieses karte zu ziehen.
    der gewinn bei karte 5 wäre dann 5x so hoch, weil die gewinnchance nur 1/5 so groß ist.

    Wie kann ich das ganze realisieren, wenn ich per Zufallsfunktion die Karten losen/würfeln/ka will?

    Hatte gedacht, dann karte 1 5x in ein array zu packen....karte 2 4x usw., dann shuffle() aber das erscheint im irgendwie auch nicht so recht sinnig..

    Jemand ne Idee?

    mfg

  • #2
    Re: Array - Wahrscheinlichkeit erhöhen

    Original geschrieben von Blackgreetz
    100% soll nun nicht bedeuten, dass immer diese karte kommt, nur eben eine 5-fache gewinnchance dieses karte zu ziehen.
    Dann nenne es nicht "Prozent", denn das ist dann reichlich unsinnig.


    Eine Möglichkeit wäre bspw., die genannten Werte zu addieren, damit kommst du auf 300 [1].
    Dann ermittelst du eine Zufallszahl im Bereich von 1 bis 300.
    Wenn sie kleiner gleich 100 ist, dann wurde deine erste Karte gezogen, oder
    wenn sie kleiner gleich 180 (100+80) ist, wurde die zweite gezogen, oder
    wenn sie kleiner gleich 240 (100+80+60) ist, wurde die dritte gezogen, oder
    ...



    [1] Kannst natürlich auch vorher nornalisieren, denn wozu unnötig mit so großen Zahlen hantieren.
    5:4:3:2:1 drückt das gewünschte Verhältnis ja ebenso gut aus.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Hmm... wäre sicherlich eine lösung....

      das andere würde das gewünschte verhältnis ebenso ausdrücken, aber damit kann ich ja dann net rechnen.., oder blick ichs net?

      Kommentar


      • #4
        die Lösung ist deutlich besser als die daten redundant in dem array zu speichern.

        aber damit kann ich ja dann net rechnen..,
        Womit willst du rechnen? Und warum meinst du, dass das nicht geht?

        Kommentar


        • #5
          Re: Re: Array - Wahrscheinlichkeit erhöhen

          Original geschrieben von wahsaga
          5:4:3:2:1 drückt das gewünschte Verhältnis ja ebenso gut aus. [/B]
          Das meinte ich.
          War das nur zur Veranschauung oder eben zum Rechnen etc. gedacht?

          @TobiaZ: Schon klar, dass es sinnvoller ist, dass so zu machen, als die Daten redundant in einem Array zu speichern..

          Hab mich nur gefragt, ob es nicht vlt noch eine Lösung gebe(nichts gegen die Lösung, frag nur)

          mfg

          Kommentar


          • #6
            War das nur zur Veranschauung oder eben zum Rechnen etc. gedacht?
            Was willst du überhaupt rechnen?

            Das ist weder zur Veranschaulichung noch zum rechnen gedacht. Das ist dazu da, dein Problem zu lösen und auf unnötig große Zahlen zu verzichten.

            Kommentar


            • #7
              Gut, dann hab ich das "5:4:3:2:1" nicht verstanden :/

              stell mich sicher wieder doof an..^^

              mfg

              Kommentar


              • #8
                hast du denn das
                Eine Möglichkeit wäre bspw., die genannten Werte zu addieren, damit kommst du auf 300 [1].
                Dann ermittelst du eine Zufallszahl im Bereich von 1 bis 300.
                Wenn sie kleiner gleich 100 ist, dann wurde deine erste Karte gezogen, oder
                wenn sie kleiner gleich 180 (100+80) ist, wurde die zweite gezogen, oder
                wenn sie kleiner gleich 240 (100+80+60) ist, wurde die dritte gezogen, oder
                verstanden?

                Dann setze das erstmal um und danach ersetzt du einfach.

                Kommentar


                • #9
                  Das habe ich eigentlich verstanden - ja, aber mir fällt grad ein:

                  Was ist, wenn man zum Beispiel folgendes hat an Wahrscheinlichkeiten:

                  5:5:4:4:3:3:3:2:1:1

                  x < 100 -> 1: 5
                  x < 200 -> 2: 5
                  x < 280 -> 1: 4

                  usw.?

                  Kommentar


                  • #10
                    Dann geht's immer noch genauso - Aufsummieren, und als "Intervallgrenzen" benutzen.
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #11
                      5:5:4:4:3:3:3:2:1:1

                      x < 100 -> 1: 5
                      Wie du bei diesen "Wahrscheinlichkeiten" auf ein x < 100 kommst, ist mir ein Rätsel. Offenbar doch nicht verstanden. Das hat aber was mit reiner Mathematik zu tun...

                      Kommentar


                      • #12
                        na oben hatten wir doch folgendes:

                        5 = 100
                        4 = 80

                        wen ich nun 2x 5 habe, dann kann ich es doch so machen:

                        x < 100 -> die 1. 5..
                        100 < x < 200 ...wäre dann die 2. 5..

                        War das nun nicht so?

                        Kommentar


                        • #13
                          jepp genau...

                          wobei du nicht mal ganze 300 benötigst. du hast ja viel kleinere intervalle

                          5:4:3:2:1 kämst du in deiner schreibweise ja genausogut mi
                          x <=5 : erste
                          5 < x <= 9 : zweite
                          usw. aus

                          dein zweites beispiel funktioniert genauso...

                          es gibt 5 möglichkeiten, die erste karte zu erwischen
                          x<=5
                          es gibt auch 5 möglichkeiten, die zweite zu ziehen
                          5<x<=10
                          dann 4 möglichkeiten für die dritte
                          10<x<=14 und so weiter

                          die logik ist immer die selbe.. nur die intervalle (verteilung) ändert sich

                          greetz, high
                          Good programming is 40% experience, 20% skill, 20% RTFM, 15% caffeine, and 5% attention to detail.
                          When everything else fails, manipulate the data...
                          Beschriftungen / Großformatdruck / Werbemittel

                          Kommentar


                          • #14
                            Du brauchst auch nicht jedes Mal auf 100 < x < 200 abfragen, wenn du das ganze in einer Schleife machst, und aus dieser zum richtigen Zeitpunkt aussteigst - dann genügt jeweils eine kleiner-gleich-Abfrage.
                            I don't believe in rebirth. Actually, I never did in my whole lives.

                            Kommentar


                            • #15
                              Achso...

                              hatte nur gedacht, dass es bei mehreren nich so ging, weil TobiaZ so komisch reagiert hatte, aber okay.

                              @highrise: Danke...wie ich nur so blöd sein konnte, um das nicht zu verstehen, weiß ich nun nichtmehr #einsicht ist der 1. weg der besserung#

                              @wahsaga: dann danke erstmal für die idee...werde morgen oder übermorgen das dann kurz coden und posten

                              mfg

                              Kommentar

                              Lädt...
                              X