Eine Wahrscheinlichkeit aus einer Vielzahl Wahrscheinlichkeiten ermitteln?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Du musst Intervalle "abstecken"; und die Prozente dürfen max. 100% ergeben.

Für 5% nimmst Du entsprechend 5 Werte, egal ob Du x<=5 oder z. B. x € {3,7,21,44,65} wählst.
Für die 25%-Wahrscheinlichkeit wählst Du dann 25 Werte, bzw. ein Intervall mit 25 natürlichen Zahlen, also z. B. 6<=x<=30.

Dann bleiben noch 70% übrig, das entspräche x>30.

34

Danke für deine Antwort!

(...) Für die 25%-Wahrscheinlichkeit wählst Du dann 25 Werte, bzw. ein Intervall mit 25 natürlichen Zahlen, also z. B. 6<=x<=30. (...)

Wenn meine Wahrscheinlichkeiten nicht 100% ergeben, also beispielsweise {50,80,90}, kann ich dann die
Wahrscheinlichkeiten zusammenzählen oder irgendwie "ins Verhältnis zueinander" setzen ?

Mein Problem ist, dass meine Wahrscheinlichkeiten völlig ohne Bezug zueinander sind, also beispielsweise nicht 100 = 15 + 10 + 50 + 25, sondern ich mir die einzelnen Wahrscheinlichkeiten von verschiedenen Quellen zusammenziehe und dann so was wie 5 + 78 + 84 + 25 = 192 rauskommt.

Könnte ich dann ebenfalls Intervalle abstecken, so in der Art wie:

z: Zufällige Zahl zwischen 1 und 192
wenn z <= 5, dann sind 5% ermittelt,
wenn z <= 5 + 25, dann sind 25% ermittelt,
wenn z <= 5 + 25 + 78, dann sind 78% ermittelt,
wenn z <= 5 + 25 + 78 + 84, dann sind 84% ermittelt.

Den Begriff "Wahrscheinlichkeit" zu benutzen ist vielleicht falsch und irreführend, vielleicht passt "Gewichtung" besser: Ich möchte, dass ein Objekt mit einer Gewichtung von 5 im Verhältnis zu den Gewichtungen der anderen Objekte ausgwählt wird.

0
35
@Crysali

Das wird so nicht funktionieren; ich weiß aber grad auch keinen Lösungsansatz.

Sobald Du Dein Intervall für die Zufallszahlen absteckst [1;192], dann entspricht diese Gesamtheit 100% aller Werte.

Soll jetzt z eine der ersten 5 Zahlen sein, dann sind das keine 5% mehr. Auch nur mit <= zu arbeiten kann nicht funktionieren, da ja dann z. B. die "gezogenen Zahl" z=3 eigentlich allen Prozenten zugewiesen werden müsste...

0
34
@Rhenane

Danke, ich glaube, mit Wahrscheinlichkeiten zu arbeiten geht in diesem Fall dann gar nicht, ich komme von meiner 5 nicht zu 5%.

Dann mache ich das mit der Summe aller Gewichtungen und ermittle damit einen abhängigen eigenen Prozentwert, ist in meinem Fall kein Drama.

Ja, das war mir zu spät aufgefallen, müsste natürlich immer so etwas wie

wenn z > 5 und z <= 5 + 25, dann sind 25 ermittelt

sein

0
35
@Crysali

Aber auch wenn Du Deinen Objekten eine unterschiedliche Gewichtung zuweist, dann ist die Gesamtheit trotzdem 100%!

Fügst Du z. B. ein Riesenobjekt Deinem "Topf" zu, dann schmälert das nur die Wahrscheinlichkeit/Gewichung der bereits vorhandenen Objekte...

Nichtsdestotrotz: gutes Gelingen bei Deinem "Projekt" :)

1
10
@Rhenane

Ich bin jetzt nicht sicher ob ich das verstanden habe wie du das willst, aber mein Ansatz wäre:

Es gib n Objekte
Für jedes Objekt hast du m(n) Wahrscheinlichkeiten in %


1. Summe aller Wahrscheinlichkeiten aller Objekte bilden
2. Für jedes Objekt seine Wahrscheinlichkeiten summieren + die Summe des vorigen Objektes
3. Zufallszahl von 0..Gesamtsumme erzeugen

Wenn Zufallszahl < Summe(0) --> erstes Objekt
Schleife mit x über Objekt 1..n
    Wenn Zufallszahl >= Summe(Objekt(x-1)) Und Zufallszahl < Summe(Objektx)) --> Objekt(x)

So sollte das mit der Gewichtung funktionieren, die Summen sind zwar keine % mehr, aber das ist durch Punkt 3. nicht mehr notwendig

1

Eine Zufallszahl aus einer vorgegebenen Zahlenmenge zu ziehen, oder zu würfeln, impliziert dieselbe Wahrscheinlichkeit für jede der möglichen Zahlen, was das Wort "Zufallszahl" ja auch aussagt. Was willst du da zuordnen?

34

Lies bitte meinen Kommentar zu Rhenane's Antwort, vielleicht ist der verständlicher.

0
30
@Crysali

Ja danke, so ist es verständlicher. Ich verstehe nur noch nicht, was du damit willst, aber das war auch nicht die Frage.

0

Problem bei C++ Programmierung (natürliche Zahl umrechnen in binäre Zahl)?

Hallo

Ich muss ein Programm schreiben welches eine natürliche Zahl in ein binäre Zahl umrechnet. Mein Problem ist aber, dass die binäre Zahl rückwärts ausgegeben wird.

Kann mir da jemand helfen?

ps: Ich will den Code so simpel wie nur möglich halten.

int main()

{

   long long int n;

   long long int b;

   std::cout << "Enter a decimal number: ";

   std::cin >> n;

   std::cout << "The binary equivalent of " << n << " is ";

   while (n > 0)

   {

       b = n % 2;

       n /= 2;

       std::cout << b;

   }

   return 0;

}

...zur Frage

Sinn von "this" in Java?

...

private int x;

Zahl (int points)
{
this.x = points;
}

ODER:

public int getx()
{
return this.x
}



...zur Frage

Java Zahlenspiel programmieren "sehr simple"?

Ich brauche Hilfe bei folgendem Code und Aufgabe die im Code steht.
Am besten für jede Variante ein Beispiel der ersten Zahl 1 von 9. Wäre sehr dankbar für die Hilfe, um das ganze mehr nachvollziehen zu können.

public class Zahlenspiel{
.....
}
public String zahltext_mit_if(int i) {
   String wert="";
   /* Eingabe int wert */
   // Es soll der einstellige Zahlenwert als ausgeschriebene Zahl zurückgegeben werden
   return wert;
}
public String zahltext_mit_case(int i) {
   String wert="";
   /* Eingabe int wert */
   // Es soll der einstellige Zahlenwert als ausgeschriebene Zahl zurückgegeben werden
   return wert;
}
public String zahltext_mit_eingebaut(Integer i) {
   String wert="";
   /* Eingabe int wert */
   i.toString();
   // Es soll der einstellige Zahlenwert als ausgeschriebene Zahl zurückgegeben werden
   return wert;
}
public String zahl_gleich_5(Integer i) {
   String wert="";
   /* Eingabe Integer wert */
   // Es soll das Wort Juchhu ausgeben werden wenn i gleich 5 ist, ansonsten die Zahl als wort;
   return wert;
}
public int string_zu_zahl(String zahl) {
   // Hier soll aus dem String zahl ein int ausgegeben werden, 0 wenn keine Zahl eingegeben wurde
   return 0;
}
public void grafzahl() {
   // In einer for i schleife von 10 auf 0 , und bei auch ein Grafzahl ausgeben
}
...zur Frage

Java Primzahlen Programm

Hey Leute, ich habe mal wieder eine Java-Aufgabe, bei welcher ich den Fehler nicht finde. Ich hoffe ihr könnt mir irgendwie weiterhelfen.

public class PrimeNumbers {

static int x = 1000;
private static boolean[] Primes = new boolean[x];

// Hier ist der "statische Konstruktor"
static {
}

private static boolean checkPrime(int number) {

    return false;
}

public static boolean isPrime(int number) {
    int limit=1000;
    int zahl;      
    int zaehler;   
    boolean primzahl; 

    for (zahl = 2; zahl <= limit; zahl++) {
        primzahl = true;

        for (zaehler = 2; zaehler <= zahl/2; zaehler++) {
            if (zahl % zaehler == 0) {
                primzahl = false;
              break;
            }

        }

        if (primzahl) {
            return true;
        }
    }
    return false;
}

Die Primzahlen, welche zu überprüfen sind werden in einer anderen Methode übergeben und abefragt. Ich habe hier das Problem, dass er mir entweder immer true oder immer false returned, egal ob es nun eine Primzahl ist oder nicht. Ich komme einfach nicht weiter, egal wie ich es drehe und wende. Ich hoffe ihr könnt mir weiterhelfen.

Grüße Dubsepp

...zur Frage

Welche Programmiersprache sollte ich erlernen?

Sehr geehrte Gemeinde,

Also es ist so. Ich interessiere mich für das Erlernen wie man Programme bzw. Anwendungen, Scripts und sonstiges schreibt. Ich plane eine konkrete Ausbildung in einer dieser Sprachen zu machen.

Ich bin sehr interessiert daran und weiß auch das es schwer wird, das ist keine Frage.

Ich hab allerdings jetzt keine richtige Ahnung in welcher Sprache ich mein Wissen aufbauen bzw. einen Lehrgang starten soll.

Ich habe mich schon ein wenig informiert und kenne vom Namen folgende gebräuchlichen Programmiersprachen, mit einer von denen ich mich dann auch weiterbilden möchte:

C, C++, C#, Java, Visual Basic oder Visual Basic for Applications (VBA).

Des Weiteren bin an Python interessiert, weil eines meiner persönlichen Lieblingsprogramme in Python geschrieben ist. Mit Python möchte ich aber keinen Lehrgang belegen.

Es wird sich ausschließlich um eine der oberen Programmiersprachen handeln.

Kann jemand von euch, der sich vielleicht schon mit der ein oder anderen oder sogar mehreren von denen auskennt, mir Tipps geben, welche Programmiersprache, die besten Möglichkeiten (auch in der Zukunft) gibt bzw. was für Einschränkungen bei diesen bestehen?

Ich möchte einmal hochleistungsfähige Programme schreiben.

Auf der Einfachheit liegt überhaupt kein Betrachtungspunkt.

Es kann also schwer sein, wenn es dafür entsprechend flexible Möglichkeiten bietet.

Bei Java habe ich schon gehört, dass man hiermit plattformübergreifende Applikationen schreiben kann.

Vielen Dank für Eure/deine Hilfe.

...zur Frage

[C#] Datentyp, um Koordinatensystem darzustellen?

Ich suche nach einer guten Möglichkeit, um ein dreidimensionales Koordinatensystem als Datentyp darzustellen. Man soll in der Lage sein, ein Objekt an der Position (x,y,z) abzurufen. Bisher habe ich das verwendet, ganz klassisch:

private int[,,] objektAnPosition;

Die Probleme mit diesem Datentyp dürften offensichtlich sein. Fixe Größe, jede Menge leere Objekte, die man gar nicht benötigt, und so weiter. Ich habe nun ein wenig gesucht und bin auf diese Lösung gestoßen:

private Dictionary<Tuple<int,int,int>, object> objektAnPosition

Das sieht eigentlich erstmal ganz gut aus, man kann direkt überprüfen, ob an einer Position ein Objekt ist und wenn man alle existierenden Objekte durchlaufen muss, kann man einfach alle keys durchlaufen.

Mich stört allerdings eine Sache. Möchte ich überprüfen, ob ein Eintrag existiert, müsste ich, denke ich, das folgende machen:

var x = 5; var y = 5; var z = 7;
var key = new Tuple<int,int,int>(x,y,z);
if(objektAnPosition.ContainsKey(key){ // mach was }

Das stößt mir irgendwie bitter auf, dass ich jedes mal ein neues Objekt erstellen muss, um eine bestimmte Position zu überprüfen.

Wie würdet ihr mein Problem lösen ? Zusammengefasst:

  • Der Datentyp soll Objekte so sortieren, dass dem Objekt automatisch eine Position (x,y,z) über den Index/ die Indizes zugeordnet wird
  • Ein Objekt an einer Position (x,y,z) soll möglichst effizient gesucht werden ( ob es existiert, Objekt zurückgeben)
...zur Frage

Was möchtest Du wissen?