"We are back" « oc.at

Alle möglichen Zahlen auflisten

Oli200 26.09.2004 - 20:03 1553 15
Posts

Oli200

Little Overclocker
Registered: Jan 2003
Location: Austria
Posts: 92
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? :confused:

tia

moidaschl

Vollzeit-Hackler
Avatar
Registered: Aug 2002
Location: 1210, ABK-D/L
Posts: 4029
?

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
Registered: Nov 2002
Location: Graz
Posts: 4965
du könntest die zahlen splitten und in ein array einfügen, dann immer random zahlen zusammenfügen.

Metal-FrEaK

is following the reaper
Avatar
Registered: May 2003
Location: hopefully soon i..
Posts: 637
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
Avatar
Registered: Feb 2003
Location: Linz
Posts: 400
Zitat von Oli200
Habt ihr eine Idee wie ich das umsetzten kann? :confused:
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 :o

Metal-FrEaK

is following the reaper
Avatar
Registered: May 2003
Location: hopefully soon i..
Posts: 637
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
Registered: Jan 2003
Location: Austria
Posts: 92
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
Registered: Jul 2000
Location: Eisenstadt
Posts: 4525
sollte das nicht rekursiv lösbar sein?

Metal-FrEaK

is following the reaper
Avatar
Registered: May 2003
Location: hopefully soon i..
Posts: 637
Zitat von Fidel
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
Registered: Jan 2003
Location: Austria
Posts: 92
i sag einmal so ich weiß jetzt nicht im ersten moment was du mit rekursiv meinst aber das wort ist nicht gefallen!

gue

Addicted
Avatar
Registered: Feb 2003
Location: Linz
Posts: 400
Zitat von Oli200
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

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25640
Zitat
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! :D

Zitat
sollte das nicht rekursiv lösbar sein?
stack overflow :)

void0

Little Overclocker
Avatar
Registered: Dec 2002
Location: at/wien/4 | ch@I..
Posts: 58
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.
Code: PHP
<?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];
		}
	}
	/* go sort and print */
	$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 :cool:
Bearbeitet von void0 am 26.09.2004, 22:40

Römi

Hausmeister
Avatar
Registered: Feb 2001
Location: Bez. Tulln
Posts: 5330
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 :eek:

Ringding

Pilot
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
Zitat von mat
stack overflow :)
Naja, eigentlich nicht. Man muss ja nur für jede Stelle einen Aufruf am Stack haben. Und davon gibt's nur 18.
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz