Oli200
Little Overclocker
|
Hi! Ich möchte gerne ein Programm schreiben das aus 18 Ziffern alle möglichen Zahlenkombis ausgibt! z.B. "1","2" mögliche Zahlen: 1,2,12,21 Habt ihr eine Idee wie ich das umsetzten kann? tia
|
moidaschl
Vollzeit-Hackler
|
? also du möchtest, dass der user 18 zahlen eingibt und er gibt dir die zahlenkombis aus ? oder gibt dir nur die anzahl aus ? bissl genauere infos pls
|
dio
Here to stay
|
du könntest die zahlen splitten und in ein array einfügen, dann immer random zahlen zusammenfügen.
|
Metal-FrEaK
is following the reaper
|
ja wenn du wirklich 18 zahlen hast dann naja eingabe in ein char-array dann eine kleine schleife die die ziffern vertauscht 1. und 2. 2. und 3. usw... so könnte es funktionieren... denk ich mal
|
gue
Addicted
|
Habt ihr eine Idee wie ich das umsetzten kann?  Hast du eine Idee, wieviele Kombinationen es da gibt?  Wenn du das Programm schreibst, dann ärgerst du dich nur darüber, dass es erst in ein paar hundert Jahren aufhört, dir Kombinationen auszuspucken
|
Metal-FrEaK
is following the reaper
|
ja 18 ziffern, und jede ziffer kann man mit jeder anderen vertauschen... also eigentlich 18² das ist dann 324!! und des is zach  für was brauchst du das programm? einfach so weil dir fad ist?
|
Oli200
Little Overclocker
|
nein es ist so unserem Informatiklehrer ist fad und der hat gemeint wir sollen uns einen Ansatz einfallen lassen! Meiner Meinung nach gehört das zu den Dingen die die Welt nicht braucht! Noch eine andere Frage wie viele Zahlen sind Theoretisch Möglich wenn ich alle Zahlen von einer Stelle bis zu 18 Stellen haben will?
|
Fidel
Here to stay
|
sollte das nicht rekursiv lösbar sein?
|
Metal-FrEaK
is following the reaper
|
sollte das nicht rekursiv lösbar sein? rekursiv? sorry ich bin ein bisserl dumm, aber was heißt das?  grüße -freak-
Bearbeitet von Metal-FrEaK am 26.09.2004, 21:27
|
Oli200
Little Overclocker
|
i sag einmal so ich weiß jetzt nicht im ersten moment was du mit rekursiv meinst aber das wort ist nicht gefallen!
|
gue
Addicted
|
Noch eine andere Frage wie viele Zahlen sind Theoretisch Möglich wenn ich alle Zahlen von einer Stelle bis zu 18 Stellen haben will? Wenn ich deine Angabe richtig verstanden habe, also dass, wenn du Als Eingabe: 1, 2 hast Die Ausgabe: 1, 2, 12, 21 sein soll und z.B. bei der Eingabe: 1, 2, 3 Die Ausgabe: 1, 2, 3, 12, 13, 21, 23, 31, 32, 123, 132, 213, 231, 312, 321 sein soll, dann sind das laut meine Überlegung (in Mathematica Syntax): f[n_] := Sum[n!/(n - i)!, {i, n}]; Für f[18] ergibt das: 1.740345610328442 * 10^16 oder anders ausgedrückt ca. 17,4 Billiarden Kombinationsmöglichkeiten. Doch ein bisschen mehr als 18²
|
mat
AdministratorLegends never die
|
ja 18 ziffern, und jede ziffer kann man mit jeder anderen vertauschen... also eigentlich 18² das ist dann 324!! bekommst von mir einen persönlichen 1er in kombinatorik. wenn du die möglichkeiten von lotto mit derselben methode berechnest, dann gewinn ich mit jedem schein mindestens 1x!  sollte das nicht rekursiv lösbar sein? stack overflow
|
void0
Little Overclocker
|
Das PHP Skript hier sollte deine Aufgabe denk ich mal lösen, wenn auch wohl etwas braindead gelöst. Was es nicht ausgibt sind Kombinationen wie 111, 222, 333 usw. <?php
$in_data = array(1,2,3,4);
$data = array();
for($i = 0;$i < (sizeof($in_data));$i++) { $data[$i][] = $in_data[$i]; }
for($run = 0;$run < (sizeof($in_data));$run++)
{
for($i = 0;$i < (sizeof($data));$i++)
{
$data[$i][] = $data[$i][0].$data[$i+1][$run];
$data[$i][] = $data[$i+1][0].$data[$i][$run];
}
}
$out = array();
function pa($a)
{ global $out;
foreach($a as $b) {
if (is_array($b))
pa($b);
else
$out[] = $b;
}
}
pa($data);
sort($out);
$last = "";
foreach($out as $val)
{
if ($last != $val)
echo $val." ";
$last=$val;
}
print "\n";
Edit: hat wohl noch andere Bugs, aber die bügelt bitte jemand anderer aus
Bearbeitet von void0 am 26.09.2004, 22:40
|
Römi
Hausmeister
|
glaub gue hat recht... Mir würd da als erstes einfallen mit arrays zu arbeiten... Rekursiv... ich glaub das müsst man sich genau überlegen, aber ich wüsst jetzt nicht wie, aber rekursionen hab i noch nie wirklich anwenden können, und da wird mat wohl recht haben. Edit: wurde fett ge0wned
|
Ringding
Pilot
|
stack overflow  Naja, eigentlich nicht. Man muss ja nur für jede Stelle einen Aufruf am Stack haben. Und davon gibt's nur 18.
|