Bei dieser Aufgabe geht es darum, Code zu schreiben, um eine Wahrscheinlichkeit genau zu berechnen. Die Ausgabe sollte eine genaue Wahrscheinlichkeit sein, die als Bruch in ihrer am meisten reduzierten Form geschrieben wird. Das heißt, es sollte nie ausgegeben werden 4/8
, sondern 1/2
.
n
Betrachten Sie für eine positive Ganzzahl eine gleichmäßig zufällige Zeichenfolge mit einer Länge von 1s und -1s n
und nennen Sie sie A. Verketten Sie nun mit A
ihrem ersten Wert. Das heißt, A[1] = A[n+1]
wenn die Indizierung von 1. A
jetzt Länge hat n+1
. Nun auch eine zweite zufällige Zeichenfolge der Länge betrachten , n
deren erste n
Werte -1, 0 oder 1 , mit einer Wahrscheinlichkeit von 1 / 4,1 / 2, 1/4 und jedes nennen es B.
Betrachten Sie zum Beispiel n=3
. Mögliche Werte für A
und B
könnten A = [-1,1,1,-1]
und sein B=[0,1,-1]
. In diesem Fall sind die beiden inneren Produkte 0
und 2
.
Betrachten Sie nun das innere Produkt von A[1,...,n]
und B
und das innere Produkt von A[2,...,n+1]
und B
.
Ihr Code muss die Wahrscheinlichkeit ausgeben, dass beide inneren Produkte Null sind.
Für n=1
diese Wahrscheinlichkeit ist klar 1/2
.
Es macht mir nichts aus, wie n
im Code angegeben ist, aber es sollte sehr einfach und offensichtlich sein, wie man es ändert.
Sprachen und Bibliotheken
Sie können jede Sprache und Bibliothek verwenden, die Sie mögen. Ich möchte Ihren Code ausführen, daher geben Sie bitte eine vollständige Erklärung an, wie Sie Ihren Code unter Linux ausführen / kompilieren können, wenn dies überhaupt möglich ist.
n=4
zählt sie dann als null, zwei oder drei Bytes? Muss die Ausgabe genau sein a/b
oder wäre [a b]
zB erlaubt?
n
? Ansonsten denke ich, dass das nicht erlaubt ist.
n
wären hilfreich. Vielleicht hilft auch ein explizites Beispiel für A, B und die beiden inneren Produkte.