Kleines Rätsel am Morgen :-)

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
Antworten
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Guten Morgen allerseits,

da ich auf meinem Facebook-Account heute morgen einen (abfälligen) Kommentar bezüglich der Lösungsfähigkeit eines Rätsels von Programmieren lesen musste, poste ich das auch mal hier - alleine um das Gegenteil empirisch zu belegen :-D

Aufgabentext:
This problem can be solved by pre-school children in 5-10 minutes; by programmers in 1 hour, by people with higher education... well, check it yourself! :-)

Code: Alles auswählen

8809=6
7111=0
2172=0
6666=4
1111=0
3213=0
7662=2
9313=1
0000=4
2222=0
3333=0
5555=0
8193=3
8096=5
7777=0
9999=4
7756=1
6855=3
9881=5
5531=0

2581=?
Also ich hab es recht schnell erfasst (<1 Minute) und dann das ganze noch in iPython fix umgesetzt und die Zahlen abgetippert (insgesamt <5 Minuten). So viel zu diesen Vorurteilen... :twisted:

Wie machen wir das mit der Lösung? Einen Spoiler-Tag gibts hier ja nicht...
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

So, man kann mittels [color= name / hex ]-Tag die Farbe angeben; wählt "ECECEC" und schon sieht man den Text nur durch Markieren.

Edit: Ok, es ist noch komplizierter... die Beiträge erscheinen abwechselnd in hell- und dunkelgrau. "ECECEC" ist der Code für einen "hellen" Beitrag und "DCE1E5" für einen "dunklen" - wie diesen hier!

Lösung: 2
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

OK, es hat 4 Minuten gebraucht.

Die verspoilerte Lösung für 2581 ist

Code: Alles auswählen

import math
print str(math.sin(0.2581))[2:3]
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Ja, der Spoiler ist auch nice :-D

Hier noch kurz der Link zu meiner Code-Lösung: Session
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

Mist, ich bin wohl höher gebildet. :oops: :D
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

mkesper hat geschrieben:Mist, ich bin wohl höher gebildet. :oops: :D
Hint: "... can be solved by pre-school children ..."
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Wenn ich gewusst hätte, dass es darum geht, eine Funktion f(d) zu finden, die jeder Ziffer d einen Wert zuordnet, auf dass dann sum(f(d)) for d in number berechnet werden soll, wäre es einfach gewesen. So habe ich nach einigen Minuten aufgegeben. Wer sagt übrigens, dass die Aufgabe nicht gewesen wäre, f(dd) für jedes Ziffernpaar zu finden?

Das mit den Vorschulkindern glaube ich auch nicht unbesehen. Sie haben möglicherweise einen Vorteil, weil sie nicht 8809 als Zahl sondern nur 4 Symbole sehen, aber ohne den Hinweis, dass es darum geht, diesen Symbolen Werte zuzuordnen sollen sie auf die Idee kommen, die zugeordneten Werte zu addieren? Vielleicht soll man ja auch nur die Nullen ausmalen. Oder die Ziffer für das Fragezeichen raten. Wer nur die Zahlen 1, 2 und 3 kennt, liegt ja mit 33% Wahrscheinlichkeit richtig :) Da in den Beispielen nur 7 verschiedene Ziffern als Ergebnis vorkommen, wären es 14%, wenn man eine davon wählt.

Stefan
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

sma hat geschrieben:Wenn ich gewusst hätte, dass es darum geht, eine Funktion f(d) zu finden, die jeder Ziffer d einen Wert zuordnet, auf dass dann sum(f(d)) for d in number berechnet werden soll, wäre es einfach gewesen.
Hm... ist das nicht grad der Witz bei solchen Aufgaben? Ich habe als ersten Schuss übrigens mit der Quersumme auf der Zahl gearbeitet - das wäre dann ja f(v) gewesen... vermutlich genau das, was alle "höher" gebildeten zuerst und ggf. nachhaltig versuchen.
sma hat geschrieben: Das mit den Vorschulkindern glaube ich auch nicht unbesehen.
Ja, die Aussage hinkt, da sie sich ausschließende Annahmen trifft. Wenn man eine Ziffer nur als Symbol sieht, weil man die Zahl dahinter nicht kennt, so kann man ja eigentlich auch nicht die Zahl nennen, die als Ergebnis herauskommt :-D Vielleicht lieht die Wahrheit in der Mitte: Ein Vorschulkind mag Zahlen und die Zuordnung von Ziffern zu Zahlen schon kennen, hat aber evtl. noch keine so starke Bindung an die mathematische Bedeutung einer Ziffer?

Aber nunja, es ist ja auch nicht alles Bier ernst zu nehmen...
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

sma hat geschrieben:Wenn ich gewusst hätte, dass es darum geht, eine Funktion f(d) zu finden, die jeder Ziffer d einen Wert zuordnet, auf dass dann sum(f(d)) for d in number berechnet werden soll, wäre es einfach gewesen. So habe ich nach einigen Minuten aufgegeben.
Exakt das ist ja das, was diese Aufgabe ausmacht. Das Ausbrechen aus starren Denkmustern. Der Blick über den Tellerrand.
ssnake
User
Beiträge: 3
Registriert: Samstag 2. Juni 2012, 02:39

Nette Aufgabe, habe ich anderorts bereits vorgefunden, aber noch nicht loesen koennen... interessant, dass Kinderdamit offenbar keine Schwierigkeiten haben.
Benutzeravatar
Kebap
User
Beiträge: 687
Registriert: Dienstag 15. November 2011, 14:20
Wohnort: Dortmund

Kinder verrennen sich nicht so weit in altbekannte Denkmuster, sondern experimentieren freizügiger.

Ich hab knapp 10min daran herumgerätselt, verteilt über 2-3 Stunden, bis mir die Lösung schließlich wie Schuppen aus den Haaren fiel.
MorgenGrauen: 1 Welt, 8 Rassen, 13 Gilden, >250 Abenteuer, >5000 Waffen & Rüstungen,
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
Antworten