Die Vorschau ist Dein Freund. ☺
Was spricht denn dafür die erste Ziehung zu berücksichtigen? Wenn wir mit kleinen Zahlen operieren:
Es gibt Total 500.
Davon ziehen wir in einem ersten Durchgang 10.
In einem zweiten versuchen wir bei genau 5 Ziehungen eine der Ziffern der ersten Ziehung zu treffen.
Darauf hat doch keinen Einfluß welche Ziffern wir im ersten Zug gezogen haben.
Wir können einfach annehmen im ersten Zug ziehen wir die Zahlen 0-9, und versuchen im zweiten Zug bei 5 Ziehungen eine Zahl < 10 zu treffen.
Ziehen wir andere Zahlen als 0-9 im ersten Zug, so ändert sich ja nur der Name der Zahl die wir suchen - nicht aber die Chance eine Zahl zu treffen. Anders ausgedrückt können wir die erste Zahlengruppe ziehen, und taufen die Zahlen um auf die Namen 0-9. Die Namen 0 bis 9 der Ausgangsmenge, wenn sie nicht in der gezogenen Menge sind, vergeben wir neu mit den überschriebenen Zahlen. Würde sich jemand für den Namen der ursprünglichen Zahlen interessieren, so könnten wir die Kugeln auspacken, und den alten Namen herausfinden - aber niemand will den alten Namen wissen. (Das sind alles Ignoranten ☺ ).
Dem X über Y konnte ich nicht ganz folgen, obwohl ich mich daran erinnere, sowas gekonnt zu haben, und daß das ein häufiger Trick ist, die Komplementärmenge zu bestimmen.
Hello World meint:
50000 | | 49900 | | 49000 | | 50000 | | 50000 |
| * | | * | | / | | * | |
100 | | 900 | | 400 | | 1000 | | 500 |
(naja - war zugegebenermaßen keine Freude das einzugeben, und sieht auch nicht einleuchtend aus.
Das will ich mal mit den 10,5,2,1-Werten testen. Die allgemeine Formel lautet doch:
Aus einer Liste von M Objekten (50.000, 10)
zieh N (500, 5)
und prüfe, ob P (100,1) davon < O (1000, 2)
die erste Zahl jeweils aus Aufgabenstellung, die zweite als Testbeispiel.
Allgemein:
M | | M-P | | M-O | | M | | M |
| * | | * | | / | | * | |
P | | O-P | | N-P | | O | | N |
Beispiel:
10 | | 10-1 | | 10-2 | | 10 | | 10 |
| * | | * | | / | | * | |
1 | | 2-1 | | 5-1 | | 2 | | 5 |
ergo:
10 | | 9 | | 8 | | 10 | | 10 |
| * | | * | | / | | * | |
1 | | 1 | | 4 | | 2 | | 5 |
Mit Fakultäten:
10! | | 9! | | 8! | | 10! | | 10! |
––––– | * | –––– | * | –––– | /( | –––- | * | –––––) |
1!*(10-1)! | | 1!(9-1)! | | 4!(8-4)! | | 2!(10-2)! | | 5!(10-5)! |
Gelebte Subtraktion sieht so aus:
10! 9! 8! 10! 10!
----- * -- * ----- /( --- * -----)
1!*9! 8! 4!*4! 2!8! 5!*5!
und ein paar offensichtliche Vereinfachungen:
10 9 8*7*6*5 10*9 10*9*8*7*6
----- * -- * ------- /( ---- * ----------)
1 1 4*3*2*1 2 5*4*3*2
es schrumpft zusammen
90 7*2*5 5*9 9*2*7*2
----- * ------- / (---- * -----------)
1 1 1 1
90 * 70 /( 9 * 9*2*5*7*2 )
und
90 * 70
------------
( 9*9*70*2 )
\⇒
5
-----
( 9 )
5/9 - das entspricht meiner Programmausgabe. (0 Komma Periode 5).
Daraus schließe ich mal, daß die Formel stimmt. ☺
bremer schrieb:
Ist die Fragestellung überhaupt korrekt formuliert? Denn wenn man je aus 50.000 Elementen einmal 1000 Elemente und einmal 500 Elemente zieht, ist eine Schnittmenge von 100 Elementen doch utopisch. Die Wahrscheinlichkeit dafür muss nahe 0% liegen.
Deshalb wird die Frage ja erst interessant. Wenn ich 10 Läufe meines Programms ansetze, dann schwankt es munter um die 10 o.s.ä. und sieht aus, als könnte es noch sehr lange dauern, bis die 100 getroffen wird. Geschweige denn, daß sie so oft getroffen wird, daß man Aussagen über die Häufigkeit wagen würde.
anz = 14 ? = 100
anz = 12 ? = 100
anz = 13 ? = 100
anz = 12 ? = 100
anz = 8 ? = 100
anz = 15 ? = 100
anz = 3 ? = 100
anz = 10 ? = 100
anz = 11 ? = 100
anz = 8 ? = 100
Ausrechnen geht gewiß schneller.