← Journal · Archiv

Zahlen gesucht!

February 20, 2005

In der aktuellen »Spektrum der Wissenschaft« ist ein neues Zahlenrätsel.

Gesucht sind alle vierstelligen Zahlen mit folgenden Eigenschaften

Die zweite Ziffer ist gleich der Summe aus der ersten und der vierten Ziffer

Das Quadrat der dritten Ziffer ist gleich der Summe aus der zweiten Ziffer und dem Fünffachen der vierten Ziffer.

Die vierte Ziffer ist gleich der Summe aus der ersten und der dritten Ziffer.

Man hat nun die Wahl anhand dieser Regeln den Kreis der in Frage kommenden Zahlen im Kopf einzukreisen. Oder man kann auch 9000 Zahlen (1000 bis 9999) auf die Regeln anwenden. Letzteres kann man nur in einer angemessenen Zeit mit einem Computer machen.
Ich habe eine Lösung in Objective-C für Mac OS X programmiert. Jeder der die Lösung wissen will, kann sich das Programm laden und alle »Möglichkeiten« ausrechnen. Jeder der wissen will wie das Programm funktioniert, kann sich den Code anschauen oder komplett laden.
Selbstverständlich ist jeder eingeladen einen Lösungsweg ohne Computer vorzustellen oder Sourcecode in einer Sprache bereit zu stellen.

12 Kommentare

Max ·

Das ist meine spartanische PHP-Variante

Max ·

hmmmm, er filtert php aus

lemming ·

Wenn ihr Code einfügen wollt, dann achtet darauf, dass HTML aktiviert ist. Verwendet also den HTML-Tag <pre> und wandelt alle < und > in  lt; und  gt; um

lemming ·

Super Max. Würde es aber eine for-Schleife nicht auch tun?

Max ·

Ich mag for nicht - ansonsten wäre es natürlich kein problem
MfG Max

kju ·

Versuchts mal mit Mathematik. Es ist gar nicht schwer:

Gesucht sei eine Zahl x=”abcd” bzw.
x=a*1000+b*100+c*10+d

Regeln:

(1) b=a+d
(2) c=sqrt(b+5*d)
(3) d=a+c

Einsetzen von (1) in (2):

(4) c=sqrt(a+6*d)

Einsetzen von (3) in (4):

(5) c=sqrt(7*a+6*c)

Beidseitiges Quadrieren und umformen:

(6) c²=7*a+6*c
(7) c²-6*c-7*a = 0

Anwenden der pq-Formel:

(8) c1/2 = 3 +/- sqrt(9+7*a)

Ausprobieren für a=0..9

a=0:
c1=6, d=a+c1=6, b=a+d=6
Lösung: 0666

c2=0, d=a+c2=0, b=a+d=0
Lösung: 0000

a=1:
c1=7, d=a+c1=8, b=a+d=9
Lösung: 1978

c2=-1, keine Lösung

a>1:
sqrt(9+7*a) ist unganzzahlig, kann
daher keine Lösung sein.

Ergebnis:

Im Bereich [0,9999] entsprechen die Zahlen (0,666,1978) der Aufgabenstellung.

kju ·

Dafür brauchts nu echt kein Programm:

martin ·

Dafür brauche ich nun echt keine 55 kB.

kju ·

Wenn man es per Programm löst, sollte man aber vielleicht die Aufgabenstellung lesen und die naheliegende Optimierung verwenden die Schleife nur von 100 bis 999 laufen zu lassen, da die vierte Ziffer sich berechnen lässt.

kju ·

Arrgl.

Simon ·

Was ist bitte schön an For-Schleifen auszusetzen ? Immitierst du immer eine For-Schleife durch eine While-Schleifen ? Wozu ? Warum das Rad neu erfinden ? (Typische Diskussion zwischen Programmieren … jaja)

lemming ·

Wow kju. Du hast’s echt drauf.

Btw 55KB um dieses Problem zu lösen. Ich hatte es ja erst vor kurzem von Platzverschwendung

Kommentar hinterlassen