Thread N Zahlen ermitteln mit Gesamtwert 100
(44 answers)
Opened by RPerl at 2008-05-10 23:36 Dubu+2008-05-11 02:13:46-- Richtig, bei meiner Methode wirds nur ein klein wenig komplizierter, man darf halt nicht zwo gleiche Zwischensummen zulassen, sondern muss dann eben nochmal würfeln. Was ihr bei euren Rest-Methoden alle überseht ist, dass egal wie lang die Sequenzen sind, immer mehr als die Hälfte aller Sequenzen ein Intervall enthält das größer als die Hälfte ist. Dann nochmal die Hälfte mit ner Sequenz größer als ein Viertel, usw. Ich kann mir nicht vorstellen dass man sowas will, dass ist ziemlich langweilig und unrepresentativ und außerdem hat man dann bei längeren Sequenzen oft lauter Nullen (oder Einsen je nach dem). Zur Veranschaulichung den Algo von Gast für 5er-Sequenzen genommen und die ersten 20 Ergebnisse ausgegeben: Code: (dl
)
1 94 5 0 0 1 bitte vergleichen mit Code: (dl
)
1 0 8 15 25 52 ermittelt mit Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 use strict; use warnings; ($\,$,)=("\n","\t"); my ( $min, $max, $anz ) = ( 0, 100, 5 ); my $gt0=0; # Flag: groesser als 0 for (1..20) { # 20 Durchlufe my @zws=($min); my @seq; for (1..$anz-1) { my $zws=int(rand($max)); redo if $gt0 and grep {/^$zws$/} @zws; # Null ausschließen [edit]regex mit ^...$ verbessert[/edit] push @zws, $zws; } push @zws, $max; # letzte Zw-Summe == Gesamtsumme @zws=sort {$a <=> $b} @zws; for my $i (1 .. $#zws) { push @seq, $zws[$i]-$zws[$i-1]; } print @seq; } TMTOWTDYOG (there's more than one way to dig your own grave)
|