Entwickler-Ecke

Ankündigungen - Advents-Gewinnspiel 2018


Narses - Do 08.11.18 23:43
Titel: Advents-Gewinnspiel 2018
Ein freundliches "Ho Ho Ho" vom Ecken-Sofa! :wave:

Adventskalender++

Dieses Jahr wird alles ganz anders... 8) Keine Panik, den Adventskalender hat unser Quizmaster Steffen [https://www.entwickler-ecke.de/user_Mathematiker.html] ja schon "verraten", das hat sich bewährt, das bleibt natürlich. :zustimm: Wo er immer wieder die Zeit und die Ideen hernimmt, um uns mit diesen wirklich tollen Rätseln die Adventszeit zu verkürzen, ist uns jedes Jahr auf´s Neue ein Rätsel. :zwinker: Danke, Steffen, du bist unersetzlich! :flehan: Aber die Anmeldung zum Gewinnspiel war uns (und euch sicher auch :lol:) schon länger ein Dorn im Auge. :? Also haben wir uns was komplett Neues überlegt und uns von der bisher zweckentfremdeten Gewinnspiel-Software verabschiedet (ihr wisst schon, das Gehampel mit der Dummy-Frage, Teilnehmer-ID, usw. usf. :roll:). Statt dessen gibt es dieses Jahr einen funkelnagelneuen, schlanken und schicken Prozess, der euch nach wenigen Mausklicks direkt den gewünschten Download liefert und dabei auch gleich an die neuen Gegebenheiten zum Datenschutz angepasst ist. ;) Dafür hat unser Chef-Entwickler Christian S. [https://www.entwickler-ecke.de/user_Christian%2520S..html] schmerzhaft große Stücke seiner kostbaren Freizeit geopfert. Vielen Dank an dich, Christian! :beer: Und zu guter Letzt hat auch die Kalender-Delphi-Anwendung eine Generalüberholung durchlaufen. Die EXE ist jetzt grundsätzlich portabel, möchte also ins gleiche Verzeichnis schreiben dürfen (aber nicht müssen). Das Beste zum Schluss: alle benutzerabhängigen Daten werden jetzt komplett auf dem Server vorgehalten. Wenn euch also doch mal die INI abhanden kommt, ist das ab sofort völlig egal, ggfs. ist nur nochmal der Proxy einzutragen, fertig, weitermachen. :idea: :zustimm:

Advents-Gewinn-Spiel

Da sich das Konzept bewährt hat, weil es auch Teilnehmern mit wenig Zeit faire Chancen bietet, aber vor allem viel Abwechslung und damit für fast jeden ein paar spannende Rätsel bereit hält, gibt es wieder einen Adventskalender mit 24 Tagesaufgaben. Jeden Tag wird ein neues Rätsel freigegeben, das gelöst werden möchte. Das ist das Advents-Spiel, hier darf jeder mitspielen. Für die Mitglieder der Entwickler-Ecke kann daraus aber auch ein Advents-Gewinn-Spiel werden, wenn euer Account bei uns (https://www.entwickler-ecke.de [https://www.entwickler-ecke.de]) vor dem 01.12.2018 erstellt wurde. Ihr habt dann die Möglichkeit euch für die abschließende Verlosung der weltweit nur bei uns erhältlichen EE-AGS-Tasse zu registieren! Von der Teilnahme ausgeschlossen ist das aktuelle EE-Team (Admins, Co-Admins, Moderatoren, Chefentwickler und Quizmaster).

Die Aufgaben

Einige Rätsel sind einfach, andere komplizierter. Für manche braucht man Ausdauer, für andere logisches Denkvermögen, kriminalistisches Gespür, einfache Informatik-Kenntnisse oder mitunter etwas Elementarmathematik. Einige Aufgaben wird man in kurzer Zeit lösen können, für andere braucht man vielleicht etwas mehr. Bei den etwas kniffligeren Problemen kann eventuell ein kleines Programm bei der Lösung helfen.

Die Anmeldung

Um an dem Advents-(Gewinn-)Spiel teilzunehmen, müsst ihr euch dafür registrieren. Der Link zur Registrierungsseite wird rechtzeitig vor dem Start des Events veröffentlicht (als Banner auf der Startseite und hier im Thread). Am Ende des neu gestalteten Prozesses steht der Download der persönlichen Adventskalender-Delphi-Anwendung. Als solche setzt das Programm ein Windows-Betriebssystem voraus, Mitspieler ohne Windows können aber problemlos einen Emulator/VM verwenden. :idea:

Der Adventskalender ist eine Online-Anwendung, ihr müsst beim Rätseln eine stabile Internet-Verbindung haben. Nur wenn die Anwendung Kontakt zum EE-Server hat, ist es möglich Punkte zu machen und - sofern ihr dafür registriert seid - am Ende an der Verlosung der Preise teilzunehmen.

Das Programm "spricht" verschlüsselt mit dem EE-Server, so dass "neugierige Blicke" hinter den Vorhang nicht lohnen. ;) Bitte, hiermit appelieren wir an eure Fairness, natürlich ist die Verschlüsselung nicht wasserdicht, aber wir schreiben eine Menge Logs. :suspect: Da es leider viel zu häufig trotzdem passiert: Ein Betrugs-/Manipulationsversuch/-verdacht führt bereits zum Ausschluss sowohl von der Highscore-Tabelle als auch von der Verlosung. :mahn: Und selbstverständlich wartet zusätzlich der EE-Pranger auf dich... :twisted:

Der Ablauf

Ab dem 01.12.2018 wird jeden Tag um 0 Uhr Serverzeit genau ein neues Rätsel freigegeben. Um für die korrekte Lösung einen Punkt zu erhalten, müsst ihr:Sofern die Lösung richtig ist erhaltet ihr einen Punkt in der Bestenliste. Der Rätsel-Dialog muss nicht die ganze Zeit geöffnet bleiben. Ihr könnt also innerhalb der 24h ab dem ersten Start jederzeit erneut das Rätsel starten und lösen. Die benötigte Zeit wird wie immer vom ersten Start des Rätsels gemessen. Gelöste Rätsel werden mit einer blauen Schneeflocke im Kalender gekennzeichnet. Bereits gelöste oder Rätsel der vorangegangenen Tage sind weiterhin lösbar, jedoch ohne Berücksichtigung in der Auswertung.

Wie schon in den vergangenen Jahren ist die Anzahl der Lösungsversuche bei einigen Rätseln begrenzt, um einen Punkt für die Lösung zu erhalten. Sofern eine maximale Anzahl von Versuchen vorgegeben ist, werdet ihr beim Start des Rätsels entsprechend informiert. Aus diesem Grund wird die abgegebene Lösung auch erst dann bewertet ("richtig" oder "falsch" angezeigt) und verlosungswirksam "gezählt", wenn die Anwendung mit dem Server kommuniziert hat. :idea:

Unabhängig davon, ob ihr als EE-Community-Mitglied mitspielen wollt oder nicht, könnt ihr noch entscheiden, ob euer Name in der Online-Highscore-Tabelle angezeigt werden soll oder ob ihr lieber privat dabei sein möchtest (was keinen Einfluss auf die Verlosung hat, sofern ihr die Voraussetzungen dafür erfüllt). Diese Einstellung könnt ihr ab diesem Jahr in der neuen Kalender-Anwendung selbst vornehmen (das kleine Zahnrad rechts oben öffnet den Einstellungen-Dialog).

Die Auswertung

Im Adventskalender findet ihr unten links unter "Auswertung" eine integrierte Punkte-Bestenliste. Markiert ihr im Kalender "Rätsel-Nr.", wird angezeigt, wer der Schnellste beim Lösen des jeweiligen Rätsels war. Darüber hinaus gibt es auch eine Online-Highscore-Tabelle im Browser (Ergebnis als PDF-Anhang ganz unten).

Die Verlosung

Wer für die abschließende Verlosung registriert ist und mindestens einen Punkt erhalten hat, nimmt auch an der abschließenden Verlosung der Preise teil. Diejenigen, die mehr Rätsel lösen, haben eine höhere Wahrscheinlichkeit, einen Preis zu gewinnen. Für jeden Punkt kommt einmal euer Name in den Lostopf, dann werden 6 (eindeutige) Namen gezogen (Duplikate durch Nachzug ersetzt). Da es in der Vorweihnachtszeit schonmal stressig werden kann, ist die Punktzahl (=Anzahl Namen im Lostopf) pro Spieler auf 17 begrenzt. So hat jeder die Chance auf die maximale Wahrscheinlichkeit zu kommen.

Der Gewinn

Als Preise winken wieder die begehrten, aber weltweit nur bei uns erhältlichen EE-AGS-Tassen! Dann strengt euch mal ordentlich an, damit ihr eine möglichst große Chance habt, eine der 6 "unbezahlbaren" Tassen auch auf eurem Schreibtisch bewundern zu können. :beer:

Wir wünschen allen Teilnehmern viel Spaß beim Lösen der Aufgaben! :zustimm:


ub60 - Fr 09.11.18 00:06

537672687626


Mathematiker - Fr 09.11.18 00:10

477363777971677B717878! 4F6D80 857082 84777B86 88797F867E8687.


Narses - Fr 09.11.18 00:14

4D706B71!

5B6E78 6F696B6F79 7F70767E7E 78778A79898A7C8C, 887C 7F91 818391 8593959789 9C8F999B9D! :A4A09FA1979C9D: :9DA19F:

97AA
8498AAAC9FAE


ub60 - Fr 09.11.18 00:59

5370, 6C68787F7A 73ä7D6F7E 707A717A787379 7388777D 7A788B 698C8A838F7F8C8D 9B9795 7A8A989A8B9196ü9E9F929AA49E98.
889C99A19BA5 7C9AA8A6 A2üAF A2A8A5 82B4A5A9AEBA, ABB1AE 93B3BE 92C3B2B8 BBB7B7B9C8 A0B8C0CB D1C4C1C1C3D1 CDC2C5CBD8! AEC9CF CEDBCFE0D1 DAD7D2D8 E4D5DBE3E3 E9DCE0EB.
BCE0EFECECE3E5F3E7F5 C8E6F4F2 F6EAFEüFDF8F6F1F7 F1FF F6F802 E2F70B00FE07FC1006090412.

1604D9D4


Symbroson - Fr 09.11.18 07:57

4E62, 7771786A78 '7A6B7181707E' 756F838476 7B767C 827F89 7D8281808A918A888389 87979B8699 88968D8F9D91A0 A49EA29897A6A89AA2A3AC. ;) 8EA8B1A1AFA5ABA5AAA5ABB0AEA9AF B1BCBE C5C1 B1B3BD BCB6C6CDC8BAC4 A1B9C1CCC0CA C6D1D3 C5D4 C3CFD0CAD8CBD1D7D1DE.
ADCFD3E1 D5E4 E5E2E0E1DBE5 EEE2DFE7E8E2E7E2E8F5 D8E8F6ECF2F0EBF1EFF9 0602 FAF4040B06F801 DFF7FF0A FE0309 0CFEFF11 0D060A15 1A1414 0B0D170F19, 101220141E F8171729211A 311D222E27252026 2125283428323F3A2C3A 323D3F, 303633 1Bö4346403A 3A3E443B3D47 ^^
30444149434D 2442504E 455A4C 514D4D4F59 324E5A5B 56ü63 565C59685B6A 6D675E 5C686963 6A6F6E6F6872696B75 5Aä7D7D7078 - 767177 727A80 86777D8585 8B7E828D 8382918F818F9097 859A8C 8B8D97 758C98929C9395A3!

67746B7B6E6C6F7D 727E73817672ö78827A75 7B797E8C817B827D84838788888A8B868D968F98998B92A0959097A5 A194ü9BA5A5969F99A1A1A3A1 A5AFA7A5A9B4 ABB4B5B7AFB8B9A9 B3BCBDB3BFB6C1B2C3C5!
BDB8C7CBC9BD C2C3CDD2üCFC5D1D7D4D6D6D7D8CCDADBDBDEDECF E1D4E3D2E4E4 DDD8E9D8EBDBECDDEFE3F0E7F3E3 F4ECF6F7F9F8 F9FBFCFEFFEF01F6ü030706F307F809090CFC 0D000F0F1107140815141809 18191B1D1E0D20132224 :2517271529162B1A2C222E303033:


Stephan74656 - Fr 09.11.18 08:11

Hallo Leute,

was läuft hier denn ab? :gruebel: :suspect: :suspect: :suspect: :suspect: :suspect: :suspect: :suspect: :nixweiss:

Stephan74656


Symbroson - Fr 09.11.18 08:12

eine kleine Knobelaufgabe zum Entschlüsseln :)


Stephan74656 - Fr 09.11.18 08:37

Ist das hier Salt-Verschlüsselung oder wie? :les: :gruebel: :gruebel: :les:


ssb-blume - Fr 09.11.18 09:55

Das ist jedes Jahr vor Weihnachten so...
Ich habe keine Zeit, dazu....

Hansi


Narses - Fr 09.11.18 10:14

@Symbroson: 44666B71 7E7C6B707C6E7C 4C6E806F838A 7A8587 75777B89 86827D8390 888D9192868D97 9A8A989A8B9196ü9E9F929AA3! :98929BA5:


Symbroson - Fr 09.11.18 11:09

user profile iconNarses hat folgendes geschrieben Zum zitierten Posting springen:
@Symbroson: 44666B71 7E7C6B707C6E7C 4C6E806F838A 7A8587 75777B89 86827D8390 888D9192868D97 9A8A989A8B9196ü9E9F929AA3! :98929BA5:


4A62, 666477 6E797B 496B7D746F7582
647D8481 757988897C8A, 907F898A 8193 8493 8591868C 8D8B99899E9D8D91989D9C9DA4A6 ;)


Narses - Fr 09.11.18 11:22

4D706B71!

486E78 707B7D 7D6E747C7C 7A7C7284, 8A7987 7E807D8B 7E8481 6Fä9292858D 95978991929B, 978D8F9D? :9FA2A19F9594A6:

96A9
8397A9AB9EAD


Narses - Fr 09.11.18 11:26

Moin!

user profile iconStephan74656 hat folgendes geschrieben Zum zitierten Posting springen:
Ist das hier Salt-Verschlüsselung oder wie? :les: :gruebel: :gruebel: :les:
Salz? :gruebel: Hm, nö, es ist mehr so... verhext... :rofl:

cu
Narses

PS: Ist wirklich einfach, spiel mal bisschen damit rum. :zustimm:


Symbroson - Fr 09.11.18 11:28

user profile iconNarses hat folgendes geschrieben Zum zitierten Posting springen:
4D706B71!

486E78 707B7D 7D6E747C7C 7A7C7284, 8A7987 7E807D8B 7E8481 6Fä9292858D 95978991929B, 978D8F9D? :9FA2A19F9594A6:

96A9
8397A9AB9EAD


49646A 7A696Eß 7C7676 77736E748181 :817F7D7E:


jasocul - Fr 09.11.18 12:07

476675666C666C6D7C. 4D6B797772 74ü81 747A77 7E807A7F857D 5A7C92818086928C96908A. :7B8E9492:


erfahrener Neuling - Fr 09.11.18 15:12

4D706B71 77686E766D776F7E 5E6E738383767E 7B75778A 80808B 8284818F 589388968F93979A966132729D9F A6A48FA1 9E9A959BA8 96A2A3B2AE AD9EA4B4A3B16C A2A4A8B6 B0B2A8BAAE 91B0C3B6C1C2B8B6BBC7 BCB6CA C4C1CB BEBCCACB C2CEC3C9 C7D5D7D9 88B5C9DBDDD0DF8F E4D4E2E4D5DBD5DBDCEB B2A2 8485C3EFF3E4F3F4E7 8DCEFAF2F0E9F7


Narses - Fr 09.11.18 15:29

:zwinker: Ich sag ja, ist nicht schwer... 8)


erfahrener Neuling - Fr 09.11.18 15:46

@Narses
Gibts eigentlich 'nen Grund, warum ihr Sonderzeichen (!,.) nicht mitverschlüsselt?


ub60 - Fr 09.11.18 16:15

@Symbroson:
@537A6F657674797676:

4D6B797772 74ü81 747680 45. 7D83857D7E82948481898A848E 75878C90 898B9A 7Aä9D9D9098A0. 7298A2 A6A097 95A1A29CA6 9AA89FA1AFA3AD A1B6A5AB A9AEB4AC BBACB2öB9B1 A3BDC1B1B5C8B8C2C9C9D1BDC2CE!

D0BE938E


Narses - Fr 09.11.18 17:24

Moin!

user profile iconerfahrener Neuling hat folgendes geschrieben Zum zitierten Posting springen:
@Narses
Gibts eigentlich 'nen Grund, warum ihr Sonderzeichen (!,.) nicht mitverschlüsselt?
Haben wir für "einfacher" gehalten. :nixweiss: Aber sonst gibt´s keinen speziellen Grund. ;)

cu
Narses


Hidden - Fr 09.11.18 18:53

4B6D6376776A, 6A706D 5Bä7E7E7179 81787E75 7C78787A89 6179818C 8F8B898A!

7589868E8892 69879593, 7C9E909293939D :929697A5:


Mathematiker - Fr 09.11.18 19:23

48626E6F73 496775716E76,
4F6D7B7974 857F76 897D7A82 6A887Aß 7B88 808683928Aä89948C8B8A94 7289958F999092A0.

7B77 84A6989A9B9BA5


Gausi - Sa 10.11.18 15:14

53646A7272 6F6B7B827D 6F747A 7177727B7685 577583817C8B7C82ö89 7D8B 7F8B8C86, 868C89 8694 8B8D96 7BA095A7 9B98A492A495999EAA9CA6 AEA89F B1ABB1 B2AF A5ABA8 85A9BCACB6BDBDC5B1B6C2 C5B5C3C5üßB8C2. AAC4BB B9C5C6C0CA, C1C7C4 C9CE A3C7DACAD4DB DAäDDDDD0D8DB D2üE1D6D6E0, E9DDDAE2 CAE8DAß DCE0E5EA C9EDEFE3E7EFF2 FAF4EB CFF5üEDF6 EEF2F7 F3F503 E8F80601050A0D0701. :)


Sinspin - Sa 10.11.18 15:38

Ist noch nichtmal der 11.11. doch trotzdem sind hier schon die Narren los :gruebel: Falls das für den CocaCola Mann sein soll, ist das nicht ein bisschen früh?


Mathematiker - Di 13.11.18 00:43

497476 716D686E7B 6Eü7B 6E707A 507D7271-54817F75-62778586.
5D7B8E 859092 85ü92 858B88 9A8E8B938D97 7794A0949A98959597A5 9DA3 9A9CAA 7E7F, 9FA5A2 A7AD A4A6B4 84A8BBABB5BCBCC4B0B5C1 B5B4C2BF B7C7CBB6C9 CAC8C2BFC7C1CB CBöC2C8D5C7D1.

B0AC B9DBCDCFD0D0DA


erfahrener Neuling - Di 13.11.18 11:50

576275 70696E747B 71717C45 636E738175 8481 787D83 68787D8D8D8088 82878D85 88979789 669B8D8F8A8C90 92A293A1 959AA098A2 85A898A3ADA3A69DABB2A4AE6D A6A8B6 B1A7BCBC AEB3B2B1BBB3C1 91C6C5C6B5BCBB BCCACCCE BFC5C2 B8C0C8CDC7D1D7DED9DBCDD6CF D4DA D1D3E1 C3D4DAE8E0DA D8DCE0DAE8DFE1E9F2 E7E1F5C1


Narses - Di 13.11.18 12:11

4D706B71!

457A6C 716D6D6F79 526E7A7B - 838078788683 7B89 8B7C828A8A 947F92 8D8A96 6477686F70 8997908C9A94939D 9B92A0A1, 9DA2A39CAAA1A3A9 A9B2B1B2 ADA2B0 ADA5 AAAFB5 97BBAE(8EB4AEC0) BCB1B4BAB8C2 CAC4BB BCBAC7C4D0 CFC3C2C8CFC7D1. :DEDAD9DBD1D6D7:

CEE1
BBCFE1E3D6E5


Symbroson - Di 13.11.18 15:40

user profile iconerfahrener Neuling hat folgendes geschrieben Zum zitierten Posting springen:
576275 70696E747B 71717C45 636E738175 8481 787D83 68787D8D8D8088 82878D85 88979789 669B8D8F8A8C90 92A293A1 959AA098A2 85A898A3ADA3A69DABB2A4AE6D A6A8B6 B1A7BCBC AEB3B2B1BBB3C1 91C6C5C6B5BCBB BCCACCCE BFC5C2 B8C0C8CDC7D1D7DED9DBCDD6CF D4DA D1D3E1 C3D4DAE8E0DA D8DCE0DAE8DFE1E9F2 E7E1F5C1


5A76666871 6E797B 6C6A7D 73757280 74797F 5781888C7F7A83857F8D828C90948D, 969087 6C8A9E888C8EA494998E9A929F9597 A6A3A1A2AB9D 9D9FA1A5ABA7B3A9B7 ACA8A8AAB3 A8B6B0AFB3B1BBB2B4BE 9AC0B9C3C7C3B8CCC2C5C0CE C2C7CD A2C6C9D5CDCBCC DACDD2D8. C1DBDF CFDBDCD6DF EAD9DCDBE5 BEDAECDDDFECE2E4F3 F0E6E8F6 E9EBF4 CAEEF1FDF5F3F4 'D10905F7', F7F907 F70CFE 03FFFF010B E4000C0D 0B10 ED130C161A160B1F1518231D241624251D181E2B 2B1C222A2A 2F232B21352B39 2A37C22F 2A2E322C3A31333B44 483745383A44 (4A4745464F41) 524C43 5A56464851 4E54 4854554F59 59E3555B59545A5862 4568665F6B5B6869626C 756573796872697B756F 6F7379707282 (8279767A78 5C696363, 7F7E88808E828A8B 679383898D908B95, 6AA29E908F9C9294, ...) A59F96 9B9D9AA8 9C9A9EA8 (AEABA49FB1 AEAAA5ABB8 A9A7BA ADBBBDBFB1) BAAFBB B1BDC5 A9B9C7C9BAC0C556CECFC2CAD4CEC8.


Narses - Di 13.11.18 17:40

4D706B71!

516E696F 7Fü7B6E707A 776F 7C717D 767C79 5E8387847E87808A917F938990908892 8E949B8D9B8F9E9F9693A1959F, 9DA2A2A0A89CAC 9DA3A0 81ABB2B2A3A9AEüB6B7AAB2BCB6B0... 82) 94AFB5 B6äC3C4B6 96B8C0C5BEC0 CDC7BE ABA4AD C7CC A1CFC9C8C6D4DA. :AB

CBDE
B8CCDEE0D3E2


Gausi - Di 13.11.18 17:49

49646A 6A70667B696D, 766F747A72 85787C7D8587 788A 82807D7B7F8D 8A86818794 94878B8993. 6A88 9B9D8F8E97A1 9Cä9C9C9A959B 95AA999F ABA8B19CAF A1B0A8AE, B6B0A7 A8A6B9 AEADB1BE ADB1C0C2B8BDBEC6 B8C0BABDB8C6CDBFCD. :C8CCCA:
[C3C5CDD2CBCD]
CBDBD5CBDDD3DADA B5D3E7C4E0BBE1E8(D8: B9DFD9EB): C3E9F0E2E5E4F2;
E3E7EAEDF3
E9E8FBEE ED FAF2
'BD'..'C7': 01F50407FF08 := E80A09EC08E30910(00);
'DF': 110514170F18 := D6D6;
'E9': 1A0E1D201821 := DFE0;
'F3': 23172629212A := E8EA;
'FD': 2C202F322A33 := F1F4;
'07': 3529383B333C := FAFE;
'11': 3E3241443C45 := 0308;
39433A;
3C463D;
[/3E40484D4648]
21434755 484A58 2A574D4F 65615A 595E545A57655963 5F6A6C 6C5D63ö6A6270. 436174 6B7678 7C6F797375736E74 7B 43-69757A7E7886.


Symbroson - Di 13.11.18 18:09

4D666B7169 51ö797C7670 71746E8181 787E 5B65 - 7480817B897C8288828F 8C868D85 858B88 67948A8C-7B9D9CA097A1A3A1 AAA6 A898A6A797AB9DA7 (A39EA4 B4A7ABAC ABA3 B1ADAAB3A8B6ADAFB9 B0B2BC A2C0B2ß C8B8C6B9BBC9BABEC8) - 9CC8D0CD D2C9CFC6 C4D0D1CB C1CDD2CDD3D1DB (AFE4ßD5E3 CCD8DDE1DBE5EDE6DCEDF1E0E6 F4EEE5 CEE8E9F700ECF1ECF2F0FA - 00FDFD0305 050306FA04FE0C FE0D FF010B F000080E0711 080A18 ECED) 1F0F1D1F10161Bü2324171F28. (191724212D 1F2E 2722272D '12ä35352830' 322B2F3A 323D3F @1A2E40423544)
18ü45 4943493C4A3E48 47454240444E 2E43574C4A53485C5255505E 535361645A5958 5D585E 585A5E6C 62616F6C64 6E70656B 696E746C 4B-5F6B7D756E7C8375 7280 ;)

58787E8A: 5D8D87858F858C8C848E 768F8589938795969D

8593A09A9A8C
6C9E97A795 989E98AAAC9FAF795F9393866E7A6582

81A8B6ACC288

87C0B2C6C3B1C3B7B4 BDB99379CCD1CE8C7E C0CDCBD39E8494949588 D9D7E0DDA88EA09E91 DFDFD5DBD5E3DDDCB59BEEF3F0AFACF5E1EDF7E8 C1 E9EBEAFA02FAFFB401F6F803BF08F4000AFBC0BA 0808060116130FDDC3160B0D18D416160C120C1A1413D7D9D3F0EFE3291B2F2C1A2C201DFB
FA3325393624362A27 302C06EC3F444100F1 33403E4611F7070708FB 4C4A53501B01131104 5252484E4856504F280E616663211F6854606A5B 34 5D675D6D756D722774696B76327B67737D6E332D 7B7B79748986825036897E808B4789897F857F8D87864A4C466362569C8EA29F8D9F93906E

6DA596A69EA6AB76

9FAFA99FB1A7AEAE A5A7A6B6BEB6BB70B6BDB275 C8
C4B0C2 BA 8F 838F
C7BBCBCDCBC8 C8CFC48CD1C5D1CEC4C7CA8E96C3C5CEAC99C7CBEAA2EEA1DAA0 DBEBE5DBEDE3EAEAA5EBA8 FB
F3E7F7F9F7F4 DAFCFBF3F9F3BBF401FFFED5FBF507D906FCFEC2C3CED2D4 CA 1002141609EE141BD016D6 DCE2D6 DB 18DBDC D7 E5E9EBDF DC EAEEF0E4
39E6F9
3C

26363026382E3535 2D372D3D453D42F73D4439FC 4F
4B3749 41 16 0A16
4E425254524F 4F564B13584C58554B4E51151D4A4E4D495251245D6024 5F6F695F71676E6E296F2C 7F
776B7B7D7B78 332E3D3E31 3B 393A8042787E788A5C897F815E9247504A 4D 8C4F504F 4C 5A5E60545AA19D82A4A39BA19B5D676D616268AEA8A6A1A4686E746C72B9B59CB8B9AFBD8FAEC1B4787A8D
D07D90
D3

9387CCBDCDC5CDD29D

9C90C4D2C8DEA4
C297D1DED8D8CA


Symbroson - Di 13.11.18 18:27

user profile iconGausi hat folgendes geschrieben Zum zitierten Posting springen:
49646A 6A70667B696D, 766F747A72 85787C7D8587 788A 82807D7B7F8D 8A86818794 94878B8993. 6A88 9B9D8F8E97A1 9Cä9C9C9A959B 95AA999F ABA8B19CAF A1B0A8AE, B6B0A7 A8A6B9 AEADB1BE ADB1C0C2B8BDBEC6 B8C0BABDB8C6CDBFCD. :C8CCCA:
[C3C5CDD2CBCD]
CBDBD5CBDDD3DADA B5D3E7C4E0BBE1E8(D8: B9DFD9EB): C3E9F0E2E5E4F2;
E3E7EAEDF3
E9E8FBEE ED FAF2
'BD'..'C7': 01F50407FF08 := E80A09EC08E30910(00);
'DF': 110514170F18 := D6D6;
'E9': 1A0E1D201821 := DFE0;
'F3': 23172629212A := E8EA;
'FD': 2C202F322A33 := F1F4;
'07': 3529383B333C := FAFE;
'11': 3E3241443C45 := 0308;
39433A;
3C463D;
[/3E40484D4648]
21434755 484A58 2A574D4F 65615A 595E545A57655963 5F6A6C 6C5D63ö6A6270. 436174 6B7678 7C6F797375736E74 7B 43-69757A7E7886.


@476277766D 7C6F6C 7FED7C70 7180 72747E7F 7A7C798783808C:
(5D7B8E 937E90 928F888395 918A8F958D96 7399929C-7A9498A397A5 A29AAB, 98A4AC A39EA4 A19FB2 ACA6B6BDB8AAB9 91A9B1BC ACBAB4B3B1C2B2B5BBC8 BDB7CBCCBE ^^)

B5BFC1C9CEC7C9BE
C8D8D2C8DAD0D7D7 B2D0E4C1DDB8DEE59AE6E8E7B0 EAECEBE3E9E3A6B8 C8EEF5E7EAE9F7C1
E9EDF0F3F9
DEF20104FC05 CCD0 E70908EB07E2080FC4C4C2C6 CB 141615CDE0
0B150CE4
05DA10121A1F181A0F


Hidden - Di 13.11.18 19:08

45656B77: 47746A6C 69757D 736D808274727A80, 7775827F8B 7C827F 618B8F8B80948A879599938D 95898C92 8F919A 739DA4A4959BA0üA8A99CA4A7 A8A49FA5B2 AAA1B1B7B7B8 AEB9BB:
B0BDBEBBBF://B5AFC2C4B6B4BCC2.B8C5C4/CABAD1/C0D5C6CFC4C6D0C8C4D0

ABDBD5D3DDD3DADAD6D3E1E4 DDD7DCD8DAE8 E5E1DCE2EF EFEC F2EEECED, F9E8F2F3 @D900F5EBFCFAFFFCFC 09F905FBF80609 :E6 DDü0A 06FF040A02 E70C100D071009131A100D1B1F1913 0F1316191F2027 181A28 29272D23202E222C2325 14252B30ü38392C34 36333F 30323B 2939453347. 273A3F453D 1A484F534C5053454F 554C5249 47535B58 354C61514F66555D65565C, 5Bü68 5B615E 67706F70 676268 656B68 576A6F7B6D 776F80 786E72747E.


Symbroson - Di 13.11.18 19:20

@486A66676973 6A706D 63737F6D8173 7A7F757B78867A 7F7A80 87837E8491 8C8495, 8F9795 888A94 9D9797 9794A0 9493A29399A49C99979BA59DA7 8EA0B4B1. 91AEAEB4B6 BA40B7AAACB6 ADB3B0 A6B6C2B0C4B6 C0B4B7BD C0BCBCBEC7 D2C1C6D2C4D2C6CF B9C9D7DDCCD1DC CEDADCDDD3DBE4 E4E1 DFD5E3DD EEE1DE F0EAEEE5E3F1.
C9F4F6 E4E6EAF8 E8FDECF2 F6F1F6FCF4 03F4FAFFF9F8FE0BFD E2FE0001, 01FF12 F013110A16061314 0C121C101721 0F2416 151B18 071A1F2B1D 1A28353134232D242630, 24262A38 2C3137 40303E343A3439343A4641B9ß3F3E 404842404E 1E534557425047, 5B4A5455 554A58 605A585D535956646759 43575A60625D6370626C 6E646674 68666A74 75716C727F 7A7283 5A7F757B7886897B 6B7D918E8E90828A8B858F 87958F8A94958D97 A1949899.

739399A5:
0E95A69E9D9CA6AC A3AEB0 A2B1 AAA5AAB0A8 ABBABAAC 91ADAFB0 B0B2BC A0C5B6BEBFC8BACECB CEC8CC BFC1CF 9FD4C6CD58D6D9D3CD CDDACED3 D7D1E0D0D4E2 EBE7 E9D9E76CDDDEDEE8EFE8E6E1E7E5EF ;)


Hidden - Di 13.11.18 19:27

4E626C64, 6D787A 6B776C72 79817F 7A7483737385 7Aü87 7A807D 7D8380 8190 9182889090 889299998A9095ü9D9E91999C 9Aö9E9F97A1?


Symbroson - Di 13.11.18 19:29

4176656B 7B6E6B6B6D7B 816C747F :75818576747880:


Symbroson - Di 13.11.18 21:54

5370, 6A6C6977 717675767E 6F7572 84748284828583787E7C867E 6D8F7D8B82809285-65-6C9195928C958E989F8DA1979E9E (9E9BA7 89A39F9AA79D9F-AEB1ADAEAEB2B5) ;)
86A8B6 BBB5B3B4BCBE2FBAB1B7B6B5 C6C0B7 BFC4C8C9BDC4CE C1CBCFCBC0D4CAC7D5D8CA B7DCCDD5D6DFD1E5E2 D1D5D7DBE1D8DAEA EAE1DCE2 E4E9 BEECE7E1EFE9

DEE7B0B1E4
FEF8F3EF F0F2F1FEF4F6BAF60303090B FB01FB0DC6 101211C9 1C
151705190F0A 11171E 0F E9 DDE9
181E25 20 F0 E4E1 221C26 F6 2D2F2E29232DE8343635ED00
3D2A302A3C2A40 2F43352B3D37413101 003A 15 3B4F4117

50554F524A50574A0D485C4E15 56505A 18 1F1B 3C1317661621 696B6A2235

5F6B 78
6765286A756470737B7430316D736D7F37726B416F3C 3A3B 7F8A79858890894546828882944C878057845152
8CA092889C8C 6D 596369 5E 9DAAA6A161649E676867 6A A8B5B1AC6C6FA970 75 AD7576 71 7F838579 76 84888A90
BBC3CBBE BCD0C2B8CCBC 9D 8BC59E
E1 DCCED0D4CE92D997989A 999B9CD59CAF

ECE6E9E1E7EEE1A4C9A0A4AEABEEF6 A6B1 F4B3 EAFEF0B4C7
0A

04FEF9F5 F701F704FAFCC0FC09090F11 01070113CC 161817CF 22
1B1D0B1F1510 171D24 15 EF E3EF
1E242B 26 F6 EAE7 28222C FC 3335342F2933EE3A3C3BF306
43303630423046 35493B3109 02 453F493909 0842 1D 435749 0F 514B5523

5C615B5E565C63561954685A 20 625C6625 66606A 28 2F2B 4C2327762631 797B7A3245

6F7B 88
7775387A858A7581848C8541447E4546 99
4983 5E 4A4D87 50 8A5253 4E 5C606256 53 6165676D
95A99B91A5636497 78 A5B1ADA7686BA5 72 757B6F82
AABEB0A6BAAA 8B B8C4C0BA7B7EB8 7B 888E8295
D8 C1C9D1C4 C2D6C8BED2C2 A3 91CBA4
E7 E2D4D6DAD498DF9D9EA0 9FA1A2DBA2B5

F2ECEFE7EDF4E7AACFA6AAB4B1F4FC ACB7 FAB9 F004F6BACD
10
EFC4F9C2C3F6


Narses - Di 13.11.18 23:36

4D706B71!

4D686E 6Fä7C7D6F 6F6D7B7C 77797684 807581 7A807D 5D7F878C8587-758593958C9393(8B95):[8C8E969B9496]9EA19F949797A9A79B 8B7EA8ACA86D.9FB2AD85AFA5B2A8AA89B3B1ACB5(9EB1BBB2B4C2: A5A1B5BEBAB9CB);
CEBACC
ACD1C2CACBC5, BBCBC8D0: B8DAD9D1D7D1;
D4, DC: B6DCE3D5D8D7E5;
D6DADDE0E6
CAEFE0E8E9E3 := CCE5EEF1B4.D8EAFEFB;
E2F2EFF7 := '';
FC := BD;
F4FE02 FA := C3 0703 E1FB05FF0D02(EC11020A0B05) 0511
0C0A (F61B0C14150F[14] 151B ['EF'..'09','11'..'2B','E2'..'EC']) 281D1B25 1A1E21242A
1727242C := 1B2B2830 +0E343B1C38123044((1C4033(2146373F403A[3F]) +47) 39473E $2122, 0F);
274D43(51);
475148
4A525A4D
43535058 := 4757545C +42675860615B[60];
455E676A2E.51637774 := 5B6B6870;
6A746B;

787B796E7171838175 655882868247.798C875E807F8C8284638D8B868F(788B958C8E9C: 7F7B8F989493A5);
A894A6
86AB9CA4A59F, 95A5A2AA, 80ABB5B7A8B0B1: 99BBBAB2B8B2;
B5, BD: 97BDC4B6B9B8C6;

BBCBC5BBCDC3CACA B3C3D1C1D3C4C8CDD9CBD5(DECADC DFD9DD: C1E3E2DAE0DA): C7E9E8E0E6E0;
F0DCEE
F3DFEB: C9EFF6E8EBEAF8;
E9EDF0F3F9
F5F3 (DAF4FEF806FB(080206) = C8) 0C01FF09 FE0205080E
0A08 (171115[D7] 1016 ['D9'..'E3', 'EC'..'F2']) 2116141E
03172629212A := ''
1C242C1F 1D2124272D
122635383039 := 3A3438;
3D373B := '';
313B32;
343E35
373F473A 383C3F4248
513D49 := 31535235512C52592A4C4E('$'+5D575B, 1E2224);
5856 (3A606748643E5C70(6F5B67, 2E) = 716B6F) 74696771 666A6D7076
5B6F7E817982 := 52787284((897581 -86 +494D4F) 7B8980 $6364);
688E84(92);
979195 := '';
8B958C
8E969E91 8F9396999F
8498A7AAA2AB := ACA6AA[6C];
80A2AAA4B4A6(B6B0B4, 76, 77);
ACB6AD;
AFB9B0;
B2BCB3;

B2B6B9BCC2
A6CBBCC4C5BF := A8C1CACD91.B4C6DAD7;
BECECBD3 := '';
A9D4DEE0D1D9DA := '';
DF := A0;
D7E1E5 DD := A6 EAE6 C4DEE8E2F0E5(CFF4E5EDEEE8) E8F4 E8ECEFF2F8
CCF70103F4FCFD := D3FE080AFB0304 +EE0AFEFD1003(F015060E0F09[0E]);
00100D15 := 04141119 +041422122415191E2A1C26(FA252F31222A2B);
252F26;
1D2D2A32 := 21312E36 +0C374143343C3D;
1F38414407.2B3D514E := 3545424A;
444E45;[/464850554E50]
3F584C5055 515361 34565562585A68 595D706F6E6F71 63686E6670 5D696E696F6D777D7F7E7C7B 8575837385767A7F8B7D87 8D8A8889 (8880, 848295 8A898D9A 92ü9AA38F9D). :95919390:

93A6
8094A6A89BAA


Narses - Mi 14.11.18 14:05

4D706B71!

45686E7A77, 6D6F7D 5C555E-527F7577 79797D828B 827A 888A7F85: :8D8E9094:[928B94]$95 = 56;
$998D9C9F97A0 = '';
9694 ($949E94A19799) { // AB9BA9AB9CA2A7üAFB0A3ABAE
A7B1B5 ($AD = 75; $AF < BABCBBB6B0BA($C1B3C7C4); $BA++)
BBB9 (B7C9CFC7BD_BAC6C9D1CA($D2C4D8D5[$CB]))
$D5C9D8DBD3DC .= DCDADDD5DBE2D5('%A0A3CA', (E2E6D9($EADCF0ED[$E3]) +$EB++) & ACF5E4E5);
E5EDF5E8
$F6EAF9FCF4FD .= $FEF00401[$F7];
}
F4FC04F7 { // F8020909FA0005ü0D0E01090C
$08 = D0;
$15071B18 .= ' '; // 1A140E0D1B0B0F11 071318131917211F1A2A2B1D2726ä292322 1F343335342C2730392C36
4032343832 ($37 < 4244433E3842($493B4F4C)-0A) {
4341 (3F51574F45_59464C4B4E5A(5A5D4B5D5F5E($61536764, $5A, 24))) {
$6559686B636C .= 5C626D((646276636564(757866787A79($7C6E827F, $75, 3F)) -$7E++ +414547) & 428B7A7B);
$7F += 49;
}
7D858D80
$8E8291948C95 .= $96889C99[$8F++];
}
}
8C8B9199 $9D91A0A39BA4;[/A19AA3]
7F9A9FA59DAB B1A4A8A9 ABA0AC B4A7ACB2AAB4 8BADB5BAB3B5-90BDB3B5 CBB7BCBBBAC4? :C3CDC9BF: ;)

BED1
ABBFD1D3C6D5


Narses - Mi 14.11.18 23:30

Moin!

Dieses Jahr hat sich unser Quizmaster mal was einfacheres einfallen lassen: Alle alphanumerischen Zeichen (A-Z,a-z,0-9) als Hexwert + der Position im Text (Basis 0 und natürlich modulo 256). :idea:

Wir wünschen viel Spaß mit dem diesjährigen Adventskalender, in gut zwei Wochen geht´s ja schon los! :zustimm:

cu
Narses


Symbroson - Mi 14.11.18 23:45

Position im Text sollte eher sowas wie Zahl der bisher verschlüsselten Zeichen oder wennn du so willst, die Position in der Menge aller verschlüsselten Zeichen. Also nichtverschlüsselte Zeichen werden (zumindest in meiner Implementation) nicht mitgezählt und es funktionierte alles bestens ;)


Mathematiker - Do 15.11.18 00:25

Hallo,
nachdem user profile iconNarses im Anfangsbeitrag den Dank an user profile iconChristian S. und mich ausgesprochen hat, muss ich unbedingt Narses einen besonders großen Dank aussprechen.
Er hat dieses Jahr eine Unmenge an wertvoller Zeit, viel Geduld mit mir :flehan: und vor allem sein (für mich unerreichbares) Wissen und Können eingebracht. :zustimm:
Ohne ihn gebe es kein EE-Advents-Gewinnspiel :!:

Vielen Dank an Narses! :beer:

LG Steffen


Mathematiker - Do 15.11.18 08:49

Hallo,
obwohl es wahrscheinlich einige wissen, verweise ich noch einmal auf https://mathematikalpha.de/adventskalender .
Dort gibt es die alten Adventskalender zum Üben.
Wie soll man auch die traurige Zeit bis zum Kalenderstart überbrücken? :wink:

LG Steffen


Delphi-Laie - Do 15.11.18 14:41

Ich erinnere vorsichtig daran, auch in der Delphipraxis [https://www.delphipraxis.net/] und ggf. auch im Delphi-Treff [https://www.delphi-treff.de/] (dort ist das Forum derzeit aber abgeschaltet) kräftig die Werbetrommel zu rühren. Besonders in ersterem scheinen sich doch deutlich mehr Delphiprogrammierer als hier zu tummeln. Aber der Adventskalender ist als Compilat ja von der Programmiersprache und Entwicklungsumgebung, mit der er erstellt wurde, unabhängig, sodaß das eigentlich egal ist.

Ich hätte dieses Werbetrommeln getan bzw. mich dazu angeboten. Aber, wie es scheint, ist Steffen in der Delphipraxis von selbst wieder aktiv geworden.


Mathematiker - Do 15.11.18 22:11

Hallo Delphi-Laie,
Danke für das Angebot. Ich habe auf der DP schon Werbung gemacht.

LG Steffen


Mathematiker - Sa 24.11.18 20:31

Nicht vergessen!
In einer Woche beginnt der diesjährige EE-Adventskalender!


Narses - Sa 01.12.18 01:11

Moin!

Sorry, etwas verspätet, hier geht’s los: zur Anmeldung für das Advents-Gewinn-Spiel [https://www.entwickler-ecke.de/agsexe.php]

cu
Narses


Mathematiker - Sa 01.12.18 19:12

Hallo,
das Entwickler-Ecke-Adventsspiel läuft jetzt 18 Stunden und wir haben schon 46 Anmeldungen und 32 Lösungen des ersten Rätsels. Das ist ein neuer Rekord. :dance2:
Danke an alle Mitspieler! :beer:

Zur Information: In diesem Jahr werde ich immer nach 2 Tagen die Rätsel auflösen.

Ich wünsche euch viel Spaß und Freude bei unserem Adventskalender
und eine glückliche und friedliche Adventszeit
Steffen


Mathematiker - So 02.12.18 18:08

Hallo,
ein kleiner Zwischenstand: Wir haben mehr als 50 Mitspieler und schon 80 Lösungen! Das ist hervorragend.
Danke!

Sollte es bisher dem einen oder anderen zu leicht sein (vor allem heute), so verspreche ich, dass sich das noch ändern wird. :wink:
Aber superschwer wird es nicht, versprochen. :zwinker:

Schönen Rest-1.Advent
Steffen


Delphi-Laie - So 02.12.18 22:41

Nun, bereits die erste Aufgabe(nstellung) hatte es verdammt in sich. Ich stelle eine Steigerung von Jahr zu Jahr fest.

Gestern auf einem Unterwegscomputer (der immer noch benutzbar wäre) gestartet, heute jedoch mit dem Adventskalender auf meinen Stammcomputer "umgezogen". Woher will der wissen, wer ich bin? Richtig geahnt, eher befürchtet, denn der Adventskalender bemerkt natürlich, noch nicht konfiguriert worden zu sein (Anhang). Ich klickte auf "Ja" (ebenfalls Anhang).

Was trägt man dort bloß ein? Mehr als meinen Benutzernamen weiß ich nicht. Nun wurde vermutlich damit aber auch abgesichert, daß sich niemand von einem fremden Computer aus mit "gefälschtem" Benutzernamen anmelden kann.

Ich bitte diese Umstände zu entschuldigen.

Gruß

Delphi-Laie


Narses - Mo 03.12.18 00:32

Moin!

user profile iconDelphi-Laie hat folgendes geschrieben Zum zitierten Posting springen:
Gestern auf einem Unterwegscomputer (der immer noch benutzbar wäre) gestartet, heute jedoch mit dem Adventskalender auf meinen Stammcomputer "umgezogen".
Das ist überhaupt kein Problem, einfach die EXE auf den anderen Computer kopieren (oder notfalls neu runterladen). ;)

user profile iconDelphi-Laie hat folgendes geschrieben Zum zitierten Posting springen:
Woher will der wissen, wer ich bin?
Wie im Ankündigungstopic bereits beschrieben lädst du dir ab diesem Jahr „deine persönliche Kalender-Anwendung“ runter, die EXE weiß also tatsächlich bereits, wer du bist. :zwinker:

user profile iconDelphi-Laie hat folgendes geschrieben Zum zitierten Posting springen:
der Adventskalender bemerkt natürlich, noch nicht konfiguriert worden zu sein (Anhang).
Mitnichten, der Kalender bemerkt, keinen Internetzugang zu haben (das steht auch exakt so in der Meldung drin: der Server kann nicht kontaktiert werden). :idea: Warum das so ist und wie du das beheben kannst, musst du leider alleine rausfinden, meine Glaskugel ist in der Reinigung. :nixweiss:

Was du allerdings brauchst, ist ein Windows ab XP sp3 mit WinHTTP 5.1. Sollte dein Rechner diese Anforderungen nicht erfüllen (was jede supportete Windows-Version mit aktuellem Patchlevel tut), dann kann die Anwendung tatsächlich nicht mit dem Server reden, denn wir haben ab diesem Jahr auf SSL umgestellt. :idea:

user profile iconDelphi-Laie hat folgendes geschrieben Zum zitierten Posting springen:
Ich klickte auf "Ja" (ebenfalls Anhang).
Was trägt man dort bloß ein?
Wenn du keinen Proxy verwendest, nix, dann bist du da falsch, Dialog wieder schließen. :?

user profile iconDelphi-Laie hat folgendes geschrieben Zum zitierten Posting springen:
Mehr als meinen Benutzernamen weiß ich nicht.
Nicht mal das ist notwendig, die EXE allein reicht bereits.

user profile iconDelphi-Laie hat folgendes geschrieben Zum zitierten Posting springen:
Nun wurde vermutlich damit aber auch abgesichert, daß sich niemand von einem fremden Computer aus mit "gefälschtem" Benutzernamen anmelden kann.
Verständlicherweise kann und möchte ich darauf nicht näher eingehen, aber es ist gewünscht und auch getestet, dass die EXE portabel genutzt werden kann und soll. Das muss also funktionieren. :)

user profile iconDelphi-Laie hat folgendes geschrieben Zum zitierten Posting springen:
Ich bitte diese Umstände zu entschuldigen.
Im Gegenteil, ich bitte die Anpassungsschwierigkeiten zu entschuldigen. Wenn das nicht mit diesen Hinweisen ans Laufen zu kriegen ist, müssen wir auf den VA ausweichen (das geht ja nicht unbedingt jeden was an, was da bei dir los ist), aber das schauen wir uns natürlich an.

cu
Narses


Mathematiker - Mo 03.12.18 08:10

Auflösung des 1.Rätsels:
Die "Geschenke" können in folgender Reihenfolge verschoben werden:

Iren oben 2x nach links, Maria + Eva unten nach links, Sophia 3.Zeile rechts, Maria 3.Zeile 2x links, Susi 4.Zeile nach links bis zu Susi, Maria oben links und links, Eva unten 2x links, Sophia unten links, Sophia 2.Zeile links, Susi 2.Zeile links, Kerstin zusammenschieben, rechtes Sophia 1 x links, oberes Sophia links oder rechts herum in die Lücke zwischen den anderen Sophia, Eva und Anja zusammenschieben

Es gibt natürlich auch andere Möglichkeiten.

Da es keine offenen Lösungsversuche für die Aufgabe 2 gibt, auch noch deren Lösung:

Schrittfolge: vertikal gegen Uhrzeigerrichtung, horizontal in Uhrzeigerrichtung, 3 x vertikal gegen UR, 3 x horizontal in UR

LG Steffen


Gausi - Mo 03.12.18 11:39

Ich fand die ersten drei Rätsel wieder sehr gut, und genau richtig. Beim Geschenke-Kistenschubsen musste einfach auf den Trichter kommen, dass man bei drei gleichartigen Geschenken dafür sorgen muss, dass das dritte zwischen die beiden anderen fällt, und dementsprechend schieben. :idea:

Das Rotationsspiel war auch schnell erledigt.

Und die farbigen Röhren - ja nu. Die haben mich letztes Jahr fast in den Wahnsinn getrieben. Aber mit etwas "um die Ecke denken" kommt man auch da am Ende gut durch.

Bisher waren es ja nur kleine Spielchen. Bin schon gespannt, ob noch ein paar Aufgaben kommen, wo man kurz was runterprogrammieren muss, oder wo man wirklich was rätseln muss (z.B. dieses Tage-Rätsel letztes Jahr).

Weiter so. Endlich hat das Leben wieder einen Sinn. :lol:


Delphi-Laie - Mo 03.12.18 18:43

Narses, vielen Dank für Deine ausführliche Antwort!

Die Idee mit der personifizierten Exe-Datei gefällt mir.

Seit mehreren Jahren benutze ich einen Surf- und Programmierlaptop mit Windows XP SP3, auch die Updates lasse ich darauf installieren (davon kommt ja inzwischen kaum bis gar nichts mehr). Zum Programmieren und Surfen tut er bis heute seinen Dienst klaglos. Auch den Adventskalender konnte ich darauf bislang immer starten bzw. ausführen.

Ich verstehe Deinen Beitrag so, daß Ihr den Internetzugriff des Adventskalenders geändert habt, wie auch immer. Das erscheint mir in der Tat die einzige plausible Erklärung. Von WinHTTP 5.1 habe ich überhaupt keine Ahnung, deshalb weiß ich auch nicht, ob das auf meinem Laptop mit installiert wurde und auch beim Windowsstart mit gestartet wird. SSL? Zumindest kann ich auch WWW-Internetseiten mit https aufrufen.

Vermutlich wurde der Adventskalender mit einer solchen Delphiversion compiliert, daß Windows XP "im Prinzip" noch keine Schwierigkeiten bereiten dürfte.

Muß ich wohl bis zum Heiligabend den Adventskalender auf dem "Ausweichcomputer" laufen lassen.

Gruß Delphi-Laie


Narses - Mo 03.12.18 19:06

Moin!

user profile iconDelphi-Laie hat folgendes geschrieben Zum zitierten Posting springen:
Windows XP SP3, auch die Updates lasse ich darauf installieren
[...]
Von WinHTTP 5.1 habe ich überhaupt keine Ahnung, deshalb weiß ich auch nicht, ob das auf meinem Laptop mit installiert wurde
Unabhängig davon, dass ich es grundsätzlich nicht empfehlen kann, mit einem nicht mehr mit Sicherheitsupdates versorgten Betriebssystem tatsächlich produktiv zu arbeiten (wie gesagt, das ist mehr eine salvatorische Klausel, ich will das gar nicht diskutieren, du kannst und darfst selbstverständlich tun und lassen, was du möchtest), sollte das damit laufen. Zumindest MS sagt, dass WinHTTP 5.1 [https://docs.microsoft.com/en-us/windows/desktop/winhttp/winhttp-versions] dabei sein sollte.

user profile iconDelphi-Laie hat folgendes geschrieben Zum zitierten Posting springen:
Vermutlich wurde der Adventskalender mit einer solchen Delphiversion compililiert, daß Windows XP "im Prinzip" noch keine Schwierigkeiten bereiten dürfte.
So ist es, bei mir läuft es auch auf einem solchen WinXPsp3 problemlos (testweise). :nixweiss:

user profile iconDelphi-Laie hat folgendes geschrieben Zum zitierten Posting springen:
Ich verstehe Deinen Beitrag so, daß Ihr den Internetzugriff des Adventskalenders geändert habt
Ja, genau, das ist seit diesem Jahr anders als bisher gelöst.

user profile iconDelphi-Laie hat folgendes geschrieben Zum zitierten Posting springen:
SSL? Zumindest kann ich auch WWW-Internetseiten mit https aufrufen.
Das tut ein Browser idR mit einer eigenen Bibliothek, es würde mich jedenfalls wundern, wenn die großen Browser-Bauer das mit MS-Mitteln lösen wollten... :lol: Will sagen: das ist kein Kriterium oder Anhaltspunkt. :?

user profile iconDelphi-Laie hat folgendes geschrieben Zum zitierten Posting springen:
Muß ich wohl bis zum Heiligabend den Adventskalender auf dem "Ausweichcomputer" laufen lassen.
Wenn das dein Problem "löst" und du damit leben kannst, soll es so sein. :zustimm:

Da es bei mir testweise läuft, könnte man noch mal einen Diagnoseversuch wagen - sofern dir das wirklich wichtig ist. In dem Fall bitte über den VA melden, dann besprechen wir dort die Details.

cu
Narses


pzktupel - Mo 03.12.18 21:21

Es beunruhigt ein sehr, wie schnell doch 1 Jahr vorbei ist. Es kommt einem alles so vertraut vor, als ob es gestern war.
Ein schöner Zeitvertreib !

Gut gemacht :-)

Der Adventskalender
__________________

Der Erste naht - es ist soweit,
bald kommt die schöne Rätselzeit.
Geduldig wartet schon der User,
er weiß - "Ich! bin bestimmt kein Loser."
Die ersten Türchen sind erreicht -
winkt ab und sagt: " Das ist doch leicht !"

Doch schon nach einer Woche
fängts an im Gehirn zu koche!
Der Quizmaster, wer hätte es gedacht -
zog an die Schrauben ab Türchen Acht !

Bis zur 24 ist's noch hin.
Da ist bestimmt noch einiges drin !
Am Ende und nach viel geschussel,
was leichtes - ein Puzzle !


Horst_H - Mo 03.12.18 21:43

Hallo,

eine schöne Abwechslung, wie die Jahre davor.
Mit Linux + Wine (2.0 und 3.16 ) funktioniert das Programm auch, mit Win 10 sowieso.
@pzktupel: Fastprime Quadrupel und Primzahlvierlinge [https://www.entwickler-ecke.de/viewtopic.php?t=116550] ist jetzt auch schon über ein Jahr her und Du werkelst immer noch mit Höchstgeschwindigkeit weiter an ähnlichen "Problemen", äußerst hartnäckig :zustimm:

Gruß Horst


pzktupel - Di 04.12.18 06:17

Anmerkung zu Rätsel 4:
Es lassen sich -/+ Zeichen auch außerhalb vom Raster (Ecke rechts unten) setzen.


BenBE - Di 04.12.18 15:21

Kleine Anmerkung zur Nutzung unter Linux+WINE:
Die Schrift der Beschreibungstexte links lässt sich wegen des kaputten Font Hintings in WINE IMHO recht schwer lesen. Ne Möglichkeit, die Schrift da nen Ticken größer zu stellen, oder einen anderen Font zu nutzen wäre in zukünftigen Releases wünschenswert.


Symbroson - Di 04.12.18 16:34

user profile iconBenBE hat folgendes geschrieben Zum zitierten Posting springen:
Kleine Anmerkung zur Nutzung unter Linux+WINE:
Die Schrift der Beschreibungstexte links lässt sich wegen des kaputten Font Hintings in WINE IMHO recht schwer lesen. Ne Möglichkeit, die Schrift da nen Ticken größer zu stellen, oder einen anderen Font zu nutzen wäre in zukünftigen Releases wünschenswert.


Bei mir ist die Schrift normal lesbar. Nur die blauen Sterne werden im Kalender nicht korrekt angezeigt.


Gausi - Di 04.12.18 20:17

Na klasse. Kaum schreibt man "sind ja nur kleine Spielchen", kommt als nächstes so ein Knaller. :lol:

Nicht wirklich schwierig, aber diese Art Rätsel kannte ich bislang nicht. Daher musste ich mich erstmal reindenken, wie man diese +/- Matrix sinnvoll nutzt. Dabei dann einen Fehler gemacht, der zu Widersprüchen führte. Nach dem Mittagessen gestärkt von vorne angefangen und dann geschafft. Aber meine Zeit ist natürlich eher kein neuer Rekord. :P


BenBE - Di 04.12.18 21:38

user profile iconGausi hat folgendes geschrieben Zum zitierten Posting springen:
Aber meine Zeit ist natürlich eher kein neuer Rekord. :P

Hatte heute vor'm Schlafen angefangen und dann nach 2 Stunden erstmal weggelegt. Heute Nachmittag dann noch mal neu angefangen. Schlimmer kann's also von der Zeit kaum sein ... :wink:


Mathematiker - Di 04.12.18 23:50

Hallo,
der letzte offene Versuch der Röhren ist beendet. Hier drei mögliche Lösungen
roehren

Morgen gibt es die erste kleine Aufgabe, wo man den Computer "quälen" kann. Man kann es aber auch rechnerisch lösen. :wink:

LG Steffen


Symbroson - Mi 05.12.18 01:42

user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:
Man kann es aber auch rechnerisch lösen.

Mein Taschenrechner hat mich im Stich gelassen :schmoll:


Delphi-Laie - Mi 05.12.18 01:42

Auch meine Wenigkeit muß ein wenig "mosern": Das Logikrätsel vom 4.12. war ziemlich heftig. ;-) Man könnte es sicher auch mit Programmierung lösen, aber dazu bin ich viel zu bequem.

Zum Schluß hatte ich noch 4 Möglichkeiten. Keine Ahnung, ob das noch weiter einengbar gewesen wäre, aber ich wollte auch endlich mal fertigwerden. Also dann "brute force". Natürlich schlug Morphy wieder zu, und es war wirklich die allerletzte Möglichkeit. Die Hoffnung war schon begraben.

Leider - und das war nicht nur diesmal so - konnte ich meinen Erfolg nicht "genießen", weil das Spielformular sofort schloß und das Kalenderformular wieder erschien. Wie gesagt, das war nicht nur diesmal so. Soll das so sein? Vermutlich ja. Falls das aber mit Geringaufwand zu ändern wäre, rege ich vorsichtig an, daß man ggf. seine Lösung noch beliebig lang betrachten und den Erfolg mit Genuß nachwirken lassen kann.

Insgesamt aber Kompliment, Anerkennung und Dank allein schon für diese ersten 4 Rätsel!


pzktupel - Mi 05.12.18 06:23

user profile iconDelphi-Laie hat folgendes geschrieben Zum zitierten Posting springen:
Auch meine Wenigkeit muß ein wenig "mosern": Das Logikrätsel vom 4.12. war ziemlich heftig. ;-) Man könnte es sicher auch mit Programmierung lösen, aber dazu bin ich viel zu bequem.

Zum Schluß hatte ich noch 4 Möglichkeiten. Keine Ahnung, ob das noch weiter einengbar gewesen wäre, aber ich wollte auch endlich mal fertigwerden. Also dann "brute force". Natürlich schlug Morphy wieder zu, und es war wirklich die allerletzte Möglichkeit. Die Hoffnung war schon begraben.

Leider - und das war nicht nur diesmal so - konnte ich meinen Erfolg nicht "genießen", weil das Spielformular sofort schloß und das Kalenderformular wieder erschien. Wie gesagt, das war nicht nur diesmal so. Soll das so sein? Vermutlich ja. Falls das aber mit Geringaufwand zu ändern wäre, rege ich vorsichtig an, daß man ggf. seine Lösung noch beliebig lang betrachten und den Erfolg mit Genuß nachwirken lassen kann.

Insgesamt aber Kompliment, Anerkennung und Dank allein schon für diese ersten 4 Rätsel!


Also ich hatte das Rätsel um 4 Uhr mal angefangen und bin 5:30 genervt ins Bett wieder. Später nahm ich mir das nochmal vor. Ich muss sagen, es ist insgesamt komplett lösbar, ohne mehrere Wege durchzuprobieren. Habe es selber erst nicht geglaubt.


Lemmy - Mi 05.12.18 08:26

user profile iconDelphi-Laie hat folgendes geschrieben Zum zitierten Posting springen:
Auch meine Wenigkeit muß ein wenig "mosern": Das Logikrätsel vom 4.12. war ziemlich heftig. ;-)


nö, ist doch auch nicht viel anders als ein Sudoku :-) Wobei ich aber auch 4x neu beginnen musste...


user profile iconDelphi-Laie hat folgendes geschrieben Zum zitierten Posting springen:

Vermutlich ja. Falls das aber mit Geringaufwand zu ändern wäre, rege ich vorsichtig an, daß man ggf. seine Lösung noch beliebig lang betrachten und den Erfolg mit Genuß nachwirken lassen kann.


hätte mir bei dem Rätsel auch gefallen..


user profile iconDelphi-Laie hat folgendes geschrieben Zum zitierten Posting springen:

Insgesamt aber Kompliment, Anerkennung und Dank allein schon für diese ersten 4 Rätsel!


ja, waren sehr nett :-)

Nur am heutigen habe ich noch keinen Lösungsansatz - bzw. nur einen widersprüchlichen. Gibt es schon korrekte eingereichte Lösungen?


Mathematiker - Mi 05.12.18 08:40

user profile iconLemmy hat folgendes geschrieben Zum zitierten Posting springen:
Nur am heutigen habe ich noch keinen Lösungsansatz - bzw. nur einen widersprüchlichen. Gibt es schon korrekte eingereichte Lösungen?

Ja, gibt es.
Nebenbei: Henrietta ist nicht das einzige Wichtel. Die Lösung 1 ist also nicht richtig, wenn auch mathematisch möglich. :wink:

LG Steffen


Mathematiker - Mi 05.12.18 22:38

Hallo,
hier die Lösung des 4.Rätsels
pmraetsel
Auf eine genaue Erklärung verzichte ich, da es zu lange würde. :oops:
Die Idee zu dieser Aufgabe stammt aus dem P.M.Magazin.

Zum heutigen Rätsel noch:
Unter Quadrate ist tatsächlich zu verstehen, dass in einem Quadrat der Seitenlänge n genau n² Wichtel stehen. Die Idee, dass sich die Wichtel nur an den Rändern eines Quadrates aufstellen, bei einem der Seitenlänge n nur jeweils n "unten" und "oben" sowie links und rechts n-2, ist nicht beabsichtigt.
Außerdem soll jedes Quadrat ein "richtiges" sein, d.h. Quadrate der Seitenlänge 0 sind ausgeschlossen.
Und ja, so viele Wichtel braucht der Weihnachtsmann. :wink: Wie sollen denn sonst die Milliarden Geschenke für die ganzen artigen Menschen (Kinder und Lehrer z.B.) bereitgestellt werden. :lol:

LG Steffen


jackle32 - Mi 05.12.18 23:04

Hallo zusammen,

also das heutige Rätsel hat es echt in sich. Ohne den Hinweis von user profile iconMathematiker hätte ich immer die ausgeschlossene Variante betrachtet (die auch lösbar ist mit viel weniger Wichteln).

Noch zum Thema in den Kommentaren drüber. Das Rätsel vom 04.12. ist grundsätzlich weit verbreitet.
Nennt sich Zebra- oder auch Einstein-Rästel.
Wer nochmal üben möchte, hier das erste seiner Art (nicht zu weit runter scrollen da steht die Lösung): https://de.wikipedia.org/wiki/Zebrarätsel
Es gibt auch einige Apps for Android mit hunderten dieser Rätsel (wenn trotz des super Adventskalenders hier (Danke user profile iconMathematiker) die Weihnachtswartezeit zu lange wird)

Gruß,

Jack


Hidden - Mi 05.12.18 23:20

Hat zufällig jemand Rätsel 4 mit Prolog gelöst, und möchte die Lösung posten?

Mir wurde mal exakt diese Art von Rätsel als Beispiel genannt, für Probleme für die sich Prolog anbietet. Das wäre gestern für mich ein toller Anlass gewesen, die Sprache zu lernen. Leider bin ich dann doch an irgendwelchen Compiler-Fehlern hängen geblieben und habe es von Hand gemacht.


Delphi-Laie - Do 06.12.18 01:59

Zebra-/Einsteinrätsel?

Für mich ist es einfach die minimale Informationsmenge, um eine eindeutige Lösung zu beschreiben. Also fehlt jegliche Redundanz. Etwas zugespitzt, steckt die Lösung schon in der Aufgabenstellung!

Das, was wir taten, war nichts anderes, als aus der gegebenen Informationsmenge weitere, "redundante" Informationen zu kreieren, herzuleiten, die nicht nur mit den gegebenen und bislang hergeleiteten Informationen nicht im Widerspruch stehen dürfen, sondern logisch und eindeutig herleitbar sind.


Delphi-Laie - Do 06.12.18 02:06

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Hat zufällig jemand Rätsel 4 mit Prolog gelöst, und möchte die Lösung posten?


Aber bitte erst nach Veröffentlichung der Lösung durch den Quizmaster!

Hast Du wirklich erst wegen dieses Anlasses mit 24h-Zeitdruck ("Galgenfrist") so etwas Anspruchsvolles wie Prolog zu erlernen versucht?! Alle Achtung!

Naja, richtig bequemen und aufraffen kann ich mich zu etlichen, mich nur mäßig interessierenden Dingen und Angelegenheiten oft, gar meistens auch erst dann, wenn es aktuell, gar dringend ist.


BenBE - Do 06.12.18 02:08

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Hat zufällig jemand Rätsel 4 mit Prolog gelöst, und möchte die Lösung posten?

Hab mich da gerade mal dran versucht, Prolog wieder installiert, etwas rumprobiert, festgestellt, dass das nächste Rätsel draußen ist, nen Einzeiler dafür geschrieben, der so ewig brauchte, dass ich das inzwischen anders gelöst habe und jetzt nicht mehr die Konzentration, den Fehler in der Prolog-Lösung zu Rätsel 4 zu suchen.

Ich schau mal, ob ich die Tage Zeit finde ...

user profile iconDelphi-Laie hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Hat zufällig jemand Rätsel 4 mit Prolog gelöst, und möchte die Lösung posten?


Aber bitte erst nach Veröffentlichung der Lösung durch den Quizmaster!

Das hat user profile iconMathematiker bereits getan ...


Gausi - Do 06.12.18 12:47

Bei "Magie" bin ich ja mal auf die Auflösung gespannt, bzw. auf einen Trick, wie man das als Nicht-Kopfrechenkünstler ohne "cheaten" lösen kann. :gruebel:

Das hat's in sich, finde ich. Ist aber ne tolle Idee, das so zu kombinieren. :zustimm:


Lemmy - Do 06.12.18 13:05

user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:

Zum heutigen Rätsel noch:
Unter Quadrate ist tatsächlich zu verstehen, dass in einem Quadrat der Seitenlänge n genau n² Wichtel stehen. Die Idee, dass sich die Wichtel nur an den Rändern eines Quadrates aufstellen, bei einem der Seitenlänge n nur jeweils n "unten" und "oben" sowie links und rechts n-2, ist nicht beabsichtigt.


:cry: warum hab ich gestern nicht nochmal rein geschaut???? :cry:
wenigstens war die Lösung jetzt einfach....


Delphi-Laie - Do 06.12.18 21:44

user profile iconGausi hat folgendes geschrieben Zum zitierten Posting springen:
Bei "Magie" bin ich ja mal auf die Auflösung gespannt, bzw. auf einen Trick, wie man das als Nicht-Kopfrechenkünstler ohne "cheaten" lösen kann. :gruebel:


Was ist denn Deiner Ansicht nach eine unerlaubte Hilfe?

Die, die die Lösung schon kennen (das Forumsteam), haben sich bestimmt untereinander zur Verschwiegenheit verpflichtet, also kommt von denen sicher nichts.

Was wir hier bekommen, sind sozusagen Hausaufgaben. Und die löst derjenige am schnellsten und bequemsten, der am kreativsten ist, sich die Lösung zu besorgen. Das ist zwar nicht im engeren Sinne des Erfinders, stellt aber auch eine eigene intellektuelle Leistung dar.

Gewisse Analogie und Nähkästchen: Zu Studienzeiten war ich irritiert über solche vereinzelten Kommilitonen, die man nur zu den Prüfungen sah. Was können die denn ohne "Bildungskino" (so nannte ich die Vorlesungen schon damals, keinesfalls abwertend gemeint) groß von einem Studium mitnehmen?! Es gab aber durchaus "Exemplare", die auch auf diese Weise ihr Studium schafften und, soweit ich weiß, nicht mal mit Ach und Krach. Heute sehe ich das etwas anders, denn auch das Selbststudium erfordert eingehende Beschäftigung mit der Materie.

Zurück zum Schiebepuzzle: Natürlich ist das, wie vieles andere auch, mit "brute force" möglich, allerdings sind 15! oder doch eher 16! Permutationen eine solch große Anzahl, daß ich das wieder verwarf. Da dürfte trotz aller Computerrasanz die 24-h-Frist kaum ausreichen, Programmerstellungszeit noch abgerechnet (deshalb wage ich das auch jetzt schon zu erwähnen, denn das ist keine konkrete Lösung, sondern eher eine generelle, brachiale Universallösungsmethode). Außerdem erlaubt das Schiebepuzzle nur eine Teilmenge aller Permutationen, müßte also zusätzlich noch gefiltert werden. Welch ein Aufand für Mensch und Maschine wäre das!


Mathematiker - Do 06.12.18 22:20

Hallo,
zur Lösung der Wichtelaufgabe vom 5.12.:
Diese Aufgabe verwendet einen Klassiker der Mathematik, die Pellsche Gleichung.
Ist y die Seitenlänge eines der 114 Quadrate, so sind es ohne Henrietta genau 114*y^2 Wichtel, mit Henrietta also 114*y^2+1. Diese Wichtel sollen ein einziges Quadrat mit der Seitenlänge x bilden, d.h. es ist die Gleichung x^2=114*y^2+1 in natürlichen Zahlen (größer 0) zu lösen.
Das ist eine Pellsche Gleichung (siehe https://mathematikalpha.de/pellsche-gleichung oder Wikipedia).

Die mathematische Lösung ist anspruchsvoll. Man entwickelt \sqrt{114} in einen Kettenbruch mit dem Ergebnis
[10 , 1; 2; 10; 2; 1; 20; ...] mit der Periodenlänge 6.
Nun bildet man die Partialbrüche bis zur 5.Stelle und erhält \frac{1025}{96}. Nenner und Zähler sind x und y, d.h. insgesamt (mit Henrietta) sind es x^2 =1050625 Wichtel.

Man kann es aber auch viel einfacher lösen, nämlich mit Brute Force. Folgende Delphi-Routine ergibt sofort die Lösung:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
procedure TForm1.Button1Click(Sender: TObject);
var x,y:integer;
    gefunden:boolean;
begin
    gefunden:=false;
    x:=1;
    repeat
      y:=1;
      repeat
        if x*x=114*y*y+1 then begin
          edit1.Text:=inttostr(x*x);
          gefunden:=true;
        end;  
        inc(y);
      until (y>=x) or gefunden;
      inc(x);
    until gefunden;
end;

Irgendein Gleichungslöser ist ebenso möglich. Ein Programm für die allgemeine Pellsche Gleichungs (mit Quelltext) findet ihr unter dem oben genannten Link.
Will man aber nicht programmieren, so geht auch Excel oder ein anderes Programm mit Tabellenfunktion (selbst der GTR geht). Gibt man in zwei Spalten y und wurzel(y*y+1) ein, so sucht man nach dem ersten ganzzahligen Ergebnis.

LG Steffen


Horst_H - Do 06.12.18 22:36

Hallo,

16! Möglichkeiten sind es ja nicht.Da gibt es Symmetrien/Speigelungen/Drehungen etc pp. die auf das Gleiche hinauslaufen.
Man könnte also eine beliebige fixe Zahl ( Das Leerfeld als 0 ) auf 3 Felder beschränken.

Quelltext
1:
2:
3:
4:
XX__
_X__
____
____

Diese lässst sich ja dann dann durch Drehung und Spiegelung auf jedes andere Feld bringen.
Dann sind es statt 16! nur 3*15! :D
Nun gut, das dauert immer noch ewig.
479001600 == 12! in 00:00:01.328 -> *13*14*15*3 => 10876 sind rund 3 Stunden, also heute nicht mehr ;-)

Gruß Horst
P.S.
Apropos Aufgabe 5:
Brute Force geht schneller, wenn man günstig sucht.
114*n*n (+1) = m*m -> m > sqrt(114)*n

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
{Apptype Console}
Var
  n,m,n2,m2:Uint64;

begin
  n := 0;
  repeat
    inc(n);
    n2 := 114*n*n+1;
    m := 32*n div 3//32/3 ~ sqrt(114)
    repeat
      inc(m);
      m2 := m*m;
    until n2 <= m2;
    IF n2 = m2 then
    Begin
      writeln(n:10,m:10,n2:10,m2:10);
      BREAK;
    end;
  until n > 1000*1000*1000;
end.


pzktupel - Do 06.12.18 22:39

Ein interessanter Aspekt. Ich löste zwar die Gleichung mit dem PC, aber schriftlich konnte ich nicht zu Ende lösen,aber folgendes:
114x^2+1=y^2 -> 114x^2=y^2-1-> 114x^2=(y-1)(y+1)

Da 114=19*6 ist, muss 19 Teiler zum Bsp. von (y+1) sein.
Alle Zahlen , die infrage kämen sind: 18+19n. Man findet bei n=53 die 1025.
Warum aber ausgerechnet x=96=114-18 die Lösung hergibt, weiß ich nicht. Zufall?

Ferner muss 19 auch 20+19n -1 teilen. Bei n=53 kommt man ebenfalls auf 1025.
Auch liegt die 96 für x genau auf der Linie: 96=20+19n. ( 96 ist durch 6 teilbar, was durch die 114 = 19*6 auch noch gelten muss )


Hidden - Do 06.12.18 23:44

Ich habe zuerst 1025 eingetippt und war sehr verwundert, was falsch gelaufen sein könnte :lol: Nachdem ich alles nochmal durchgerechnet habe, ist mir dann aufgefallen dass nach x² und nicht nach x gefragt war :wall:

OT: Ein paar ziellose Überlegungen

x^2 = 114 * y^2 + 1

Da 2, 3, 19 Teiler von 114 y^2 sind, können sie keine Teiler von 114 y^2 + 1 sein. Damit sind sie dann auch nicht Teiler von x.

Da x weder durch 2 noch durch 3 teilbar ist, ist x von der Form 6n +- 1.

Zahlen von dieser Form haben eine interessante Eigenschaft: Ihr Quadrat ist immer 1 mehr als ein Vielfaches von 24. (Kurzer Beweis im Anhang.)
Damit ist x^2 = 24 k + 1 = 114 y^2 + 1, oder anders ausgedrückt ist 19 y^2 = 4 k, also ist y gerade.

PS: user profile iconpzktupel vielleicht willst du die Rollen von x und y in deiner Rechnung austauschen? user profile iconMathematiker hatte sie umgekehrt verwendet


Mathematiker - Do 06.12.18 23:54

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
... oder anders ausgedrückt ist 19 y^2 = 4 k, also ist y gerade.

:zustimm:
Sehr interessant, denn damit ist k garantiert durch 19 teilbar. Damit sind nur noch etwa 2500 Werte für k zu testen.

Nachtrag: Ich wollte es gerade programmieren und bin mir auf einmal nicht mehr sicher, dass es schneller wird, denn der Test auf Quadratzahl dauert ja auch seine Zeit.
Ich muss mal genauer darüber nachdenken. :suspect:

@Hidden: Ich habe deine Idee im "Matheplaneten" eingestellt. Vielleicht hat ein "Matheprofi" eine Idee, wie man deinen schönen Vorschlag zur endgültigen Lösung führen kann.


Delphi-Laie - Fr 07.12.18 01:55

Die Wichtelquadrate löste ich mit nur einer Inkrementierungsschleife, ganz ohne Pell: Seiten"länge" (Wichtelanzahl an der Quadratseite) mit 1 begonnen, quadriert, mit 114 multipliziert, um 1 erhöht, Wurzel gezogen. War diese ganz(rational), den Radikanten als Lösung ausgegeben, ansonsten Seiten"länge" um 1 inkrementiert und hinein in das nächste Schleifendurchlaufsvergnügen!


pzktupel - Fr 07.12.18 05:42

@ Hidden

Also ich habe mich nicht vertan, nur unschön ausgedrückt.
Denn es sind in den beiden Formeln die Zahlen 1026 und 1024 gemeint , was (y+1) und (y-1) bedeutet. Y ist also 1025.

114*x^2 hat den Teiler 19 und 6, die müssen in (y-1) oder (y+1) einfach drin sein, was sie auch sind.

6 und 19 beziehen sich auf 1026.

LG

P.S. Achso, die Variablen x und y waren schon richtig in meiner Formel gewesen.


Gausi - Fr 07.12.18 09:46

user profile iconDelphi-Laie hat folgendes geschrieben Zum zitierten Posting springen:
Was ist denn Deiner Ansicht nach eine unerlaubte Hilfe?

Ich habe das "cheaten" ja mit Absicht in Gänsefüßchen gesetzt. Unerlaubt ist ist das, was ich getan habe, sicher nicht. :angel:

Mein Problem war halt, dass ich "nur durch Verschieben" auf keinen grünen Zweig gekommen bin, weil diese magischen Quadrate ja nicht greedy lösbar sind (d.h. zuerst die erste Zeile auf 30 bringen, dann die nächste etc.).

Daher habe ich mir schnell ein Programm gebastelt (und eines, das auch schnell fertig ist, trotz 16! vielen Möglichkeiten), das mir gewissermaßen eine Hälfte der Aufgabe abnimmt. Meine Frage wäre nun, ob es bei diesem Schiebe-Quadrat noch einen Trick gibt, wie man das ohne diese Hilfe elegant lösen kann. :idea:


Delphi-Laie - Fr 07.12.18 11:54

user profile iconGausi hat folgendes geschrieben Zum zitierten Posting springen:
Mein Problem war halt, dass ich "nur durch Verschieben" auf keinen grünen Zweig gekommen bin, weil diese magischen Quadrate ja nicht greedy lösbar sind (d.h. zuerst die erste Zeile auf 30 bringen, dann die nächste etc.).


Das bloße Verschieben gab auch meine Wenigkeit schnell auf. Simple Rätsel sind in diesem Adventskalender nunmal Mangelware. Wir werden eben von einem Gymnasiallehrer, der bestimmt auch Leistungskurse gibt, entsprechend gefordert.

user profile iconGausi hat folgendes geschrieben Zum zitierten Posting springen:
Daher habe ich mir schnell ein Programm gebastelt (und eines, das auch schnell fertig ist, trotz 16! vielen Möglichkeiten), das mir gewissermaßen eine Hälfte der Aufgabe abnimmt.


Das war ganz gewiß keine unerlaubte Hilfe. Da wir hier in einem Programmierforum zu Hause sind, ist es nur legitim, die (informationsverarbeitenden) Routineaufgaben an Maschinen zu delegieren. Dafür müssen wir umso mehr intellektuelle Energie in präzise Aufgabenstellungen für diesselben investieren. Programmierhilfe wurde in der Ankündigung des Adventskalenders zudem auch "explizit zugelassen".

user profile iconGausi hat folgendes geschrieben Zum zitierten Posting springen:
Meine Frage wäre nun, ob es bei diesem Schiebe-Quadrat noch einen Trick gibt, wie man das ohne diese Hilfe elegant lösen kann. :idea:


Warten wir auf die Auflösung, die vielleicht auch dazu mit ein paar Zaunpfählen winkt.


Horst_H - Fr 07.12.18 12:33

Hallo,

user profile iconGausi Kann ich sehr gut verstehen.
Die Lösungsmenge ist ja schon enorm eingeschränkt, wenn man rekursiv zeilenweise 3 Werte aus dem Restpool einfügt und dann den fehlenden auf 30 einfügt, falls der noch vorhanden ist.
Die letzte Zeile passt ja dann immer und bei der ersten kann man eine beliebige Zahl wegen Kongruenzen vorab festlegen.
Ich habe es dennoch nicht gelöst :-( War auch zu spät für mich.

Heute habe ich wohl zum ersten Mal diese Art von Rätsel ohne user profile iconFietes Programm gelöst :-)

Gruß Horst


Symbroson - Fr 07.12.18 13:43

Mein Programm zu Tag 05:


C++-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
int main() {
    unsigned int n = 0;
    float f;
    
    do f = sqrt(114.0 * ++n * n + 1);
    while (f != floor(f));
    
    printf("Result: n = %i %i\n"114 * n * n + 1, n);
}


Zu Tag 6 sag ich erstmal nichts weil ich nicht weiß ob der nicht noch bei manchen läuft.


Fiete - Fr 07.12.18 14:47

Moin,
die Lösungsidee war schnell da: magische Quadrat der Ordnung 4, alle Zahlen um eins verringern ==> fertig!
Die Schieberei ist für mich Rentner zeitaufwendig gewesen, Skatrunde und Einkaufen mussten eingeplant werden.
Die Zahlen direkt an die richtige Stelle platzieren zu können wäre eine grosse Hilfe gewesen.
Der Kalender macht immer noch viel Spaß!

Gruß Fiete


pzktupel - Fr 07.12.18 16:47

.... gelöscht , zu gefährlich


Mathematiker - Fr 07.12.18 18:30

user profile iconSymbroson hat folgendes geschrieben Zum zitierten Posting springen:
Zu Tag 6 sag ich erstmal nichts weil ich nicht weiß ob der nicht noch bei manchen läuft.

Läuft noch. Im Moment sind noch einige Lösungsmöglichkeiten offen.
Gegen 22 Uhr, denke ich, kann ich auflösen.

LG Steffen


Mathematiker - Fr 07.12.18 22:15

Hallo,
das Rätsel "Magisches Quadrat + Loyds Puzzle" hatte wohl die bisher größten Probleme gemacht. Es gibt aber 33 Lösungen. Sehr schön.

In vorhergehenden Beiträgen wurde schon viel gesagt. Zuerst braucht man ein magisches Quadrat der Ordnung 4. Entweder berechnet man dies, z.B. mit

Delphi-Quelltext
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:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
procedure magisches_quadrat(n:integer); //n = 4,8,12,16,20
type
    matrix = array[1..20,1..20of integer;
var
    a:matrix;
  
procedure quadrat;
var n2:integer;
  procedure markieren;
  var i,j,k,m,sgn:integer;
  begin
    k:=n div 2;
    n2:=n*n;
    sgn:=1;
    m:=k;
    for i:=1 to k do begin
      for j:=1 to k do begin
        a[((m-j)div n)+1,((m-j)mod n) +1]:=sgn;
        a[((m+j-1)div n)+1,((m+j-1)mod n) +1]:=sgn;
        sgn:=-sgn;
      end;
      m:=m+n;
      sgn:=-sgn;
    end;
  end;
  procedure einsetzen;
  var i,h:integer;
  begin
    for i:=1 to n2 div 2 do begin
      h:=i;
      if a[(i-1div n+1,(i-1mod n +1]<0 then h:=n2+1-i;
      a[(h-1div n+1,(h-1mod n+1]:=i;
      a[(n2-h)div n+1,(n2-h)mod n+1]:=n2+1-i;
    end;
  end;
begin
  markieren;
  einsetzen;
end;

begin
  fillchar(a,sizeof(a),0);
  if n mod 4 = 0 then quadrat;
  //in a steht magisches quadrat;
end;

oder man wählt eines, z.B. das magische Quadrat Dürers aus "Melancholia":
duerer1
oder man berechnet es mit Fietes Programm.

Diese Quadrate beginnen alle mit 1 und enden bei 16. Hier braucht man aber 0 bis 15, d.h. man reduziert jedes Feld um 1. In dem hier angehängten einfachen Programm wird dies sofort gemacht.
Anschließend müssen die 15 Steine noch durch Mausklick an die richtige Position gebracht werden.
Mehr ist das nicht und einen einfacheren "Trick" kenne ich nicht.

Übrigens sind bei dem hier genutzten Loyds Puzzle die 14 und 15 vertauscht. Damit können die Zahlen nicht(!) von links oben = 1 bis rechts unten = 15 sortiert werden. Aber nur für diese Variante gibt es die Möglichkeit zum magischen Quadrat.

LG Steffen

Nachtrag: Ich hatte noch vergessen vorsorglich für das morgige Rätsel "um Entschuldigung zu bitten". :flehan:
Es könnte sein, dass einige es als "unlösbar" ansehen. :mrgreen:


pzktupel - Fr 07.12.18 22:35

So hatte ich es gemacht, mit dem von Dürer :-)


Symbroson - Fr 07.12.18 22:42

Gelöst habe ich es auch durch ein fertiges Quadrat. Allerdings habe ich mich auch mal an das programmatische Lösen rangesetzt:

Variante 1 wäre, schrittweise alle möglichen Züge des aktuellen Quadrates durchzufüren, bis die gesuchte Permutation erreicht ist. Das habe ich aber nicht zu Ende gebracht.

Stattdessen habe ich versucht, das Quadrat komplett aufzufüllen. Jedoch kommt bei meinem Programm nur eine einzige Lösung heraus. Ich weiß aber nicht, warum. Meine Idee:

1. Es werden für jede Zeile 4 Elemente aus der Verbleibenden Menge an Zahlen ausgewählt, die die Summe 30 aufweisen.
2. Die Elemente jeder Zeile werden so permutiert, dass nacheinander die Summe der Spalten ebenfalls 30 ergibt.
3. war 2. erfolgreich werden schließlich noch die Diagonalen überprüft und dann das Quadrat ausgegeben.

Das Ergebnis ist auch im Rätsel lösbar. Es gibt jedoch auch Varianten, bei denen zwei Felder getauscht werden müssen, was jedoch nur in Verbindung mit dem Tausch eines weiteren Paares möglich ist, was einen das Quadrat im Rätsel nicht einstellen lässt.
Hier ist das Ergebnis meines Programms:

Quelltext
1:
2:
3:
4:
5:
6:
     4  8  3 15 = 30
    11 14  5  0 = 30
     6  1 10 13 = 30
     9  7 12  2 = 30
   = =  =  =  = =
30  30 30 30 30   30


Der wesentliche Quelltext: (vollst. im Anhang)


C++-Quelltext
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:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
#define NUMS 16

// row:  current row index
// p:    current mag.sq. number selection
// perm: selected permution for current row
uint8_t row = 0, p[16], used[16], **avail, perm[4];

int main() {
    // remaining range for rows
    uint8_t i, av1[16], av2[12], av3[8], av4[4],
        *av[4] = {av1, av2, av3, av4};
    avail = av;
    
    // reset used states
    for(i = 0; i < NUMS; i++) used[i] = 0;
    row = 0;
    fillrow();
}

void fillrow() {
    // save remaining range to list
    uint8_t i, n = 0;
    for(i = 0; i < NUMS; i++)
        if(!used[i])
            avail[row][n++] = i;
    select_mn(40);
}

// select d elements of remaining range starting from s
// range = 16 - 4 * row (first row(0): 16, last row(3): 4) remaining
void select_mn(uint8_t d, uint8_t s) {
    uint8_t i;
    
    if (d) {
        // pick next element from remaining range
        for (i = s; i < 16 - 4 * row; i++) {
            perm[4 - d] = avail[row][i];    // save chosen element
            used[(uint) avail[row][i]] = 1// store used state
            select_mn(d - 1, i + 1);        // fill next element
            used[(uint) avail[row][i]] = 0// reset used state
        }
        // check sum of chosen selection
    } else if(perm[0] + perm[1] + perm[2] + perm[3] == 30) {
        memcpy(p + (4 * row), perm, 4);
        
        if(row == 3) checkCol(p, 0);
        else { // fill next row
            row++;
            fillrow();
            row--;
        }
    }
}

// permute rows to solve coloumns
void checkCol(uint8_t *p, uint8_t col) {

    if(col == 3) { // finished.
        if(p[3] + p[6] + p[ 9] + p[12] == 30 &&
           p[0] + p[5] + p[10] + p[15] == 30)
            print(p);
        return;
    }
    
    uint8_t a, b, c, d, sum;
    uint8_t tp[16];
    
    // permute first 3 elements of coloumn
    for(a = col + 0; a <  4; a++) {
    for(b = col + 4; b <  8; b++) {
    for(c = col + 8; c < 12; c++) {
        
        // sum of first 3 elements < 30 || >= 15
        // otherwise 30 not reachable
        sum = p[a] + p[b] + p[c];
        if(sum + p[c] >= 30 || sum + p[c] < 15continue;
        
        // permute last element of coloumn
        for(d = col + 12; d < 16; d++) {
            if(sum + p[d] == 30) {
                // if sum = 30 -> swap elements to correct position
                memcpy(tp, p, 16);
                swap(tp, col +  0, a);
                swap(tp, col +  4, b);
                swap(tp, col +  8, c);
                swap(tp, col + 12, d);
                checkCol(tp, col + 1); // check next coloumn
            }
        }
    }}}
}

// print found square
void print(uint8_t* p) {
    uint8_t sum1, sum2[4] = {0000};
    printf("   ");
    
    for(uint8_t i = 0; i < NUMS; i++) {
        sum1 += p[i];
        sum2[i % 4] += p[i];
        printf("%3i", p[i]);
        
        if(i % 4 == 3) {
            printf(" = %i\n   ", sum1);
            sum1 = 0;
        }
    }
    
    printf("= =  =  =  = =\n");
    printf("%2i%4i%3i%3i%3i%5i\n",
        p[3] + p[6] + p[ 9] + p[12],
        sum2[0], sum2[1], sum2[2], sum2[3],
        p[0] + p[5] + p[10] + p[15]);
}


Symbroson - Fr 07.12.18 22:47

user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:
Nachtrag: Ich hatte noch vergessen vorsorglich für das morgige Rätsel "um Entschuldigung zu bitten". :flehan:
Es könnte sein, dass einige es als "unlösbar" ansehen. :mrgreen:

Umso mehr freue ich mich darauf :D


pzktupel - Fr 07.12.18 22:50

Ich möchte der Fairness halber doch die Lösung für 114x^2+1=y^2 einstellen.

Heute nachmittag, bin ich auf einen universellen Lösungsweg gekommen, der direkt x und y liefert, sowie generell x und y liefert , bei einem zulässigem a von ax^2+1=y^2.

114x^2+1=y^2

Periode Wurzel(114) ist: 10,1,2,10,2,1,20

Man erhält: 21194 / 1985

und für 10,1,2,10,2,1,21

erhält man: 22219 / 2081

Differenzen Zähler und Nenner bilden: 1025=y , x=96

Lösung: 114∗96^2+1=1025^2

fertig !


Mehr hier: https://matheplanet.de/matheplanet/nuke/html/viewtopic.php?topic=239127&start=0&lps=1740149#v1740149


Hidden - Fr 07.12.18 23:06

Für das kombinierte Magische Quadrat / 15-Puzzle habe ich zuerst auf Wikipedia nach einem Pandiagonalen Magischen Quadrat [https://de.wikipedia.org/wiki/Magisches_Quadrat#Pandiagonale_magische_Quadrate] der Ordnung 4 gesucht und von jedem Feld 1 abgezogen. Das ist dann bei mir der Teil, den Gausi zurecht als "cheaten" bezeichnet hat. Wenn man das Rätsel auf voller Schwierigkeitsstufe spielen will, sollte man das Internet natürlich weglassen :lol:

Wie man ein 15-Puzzle löst, wusste ich noch. Allerdings erlaubt so ein Puzzle (wie auch ein Rubiks-Cube) nur gerade Permutationen als Züge. Ich dachte dann zuerst ich muss eine andere Lösung suchen, aber dann habe ich das magische Quadrat einfach um 90° gedreht, was mir effektiv eine ungerade Permutation gab und das Puzzle für diese Zielkombination lösbar machte.


Symbroson - Fr 07.12.18 23:27

user profile iconSymbroson hat folgendes geschrieben Zum zitierten Posting springen:
Jedoch kommt bei meinem Programm nur eine einzige Lösung heraus. Ich weiß aber nicht, warum.


Hab den Fehler gefunden. Das Array perm wurde in tieferen Permutationen irgendwie so verändert, dass es frühere mitbeeinflusst. Ich kann stattdessen einfach die Permutation direkt an p durchführen, was auch an anderen Stellen nochmal einiges vereinfacht. Also hier der funktionierende Code:


C++-Quelltext
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:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
#define uint uint8_t

// p:    current magic square
uint p[16], used[16], **avail;
int c = 0;

int main() {
    // remaining range for rows
    uint i, av1[16], av2[12], av3[8], av4[4],
        *av[4] = {av1, av2, av3, av4};
    avail = av;
    
    // reset used states
    for(i = 0; i < 16; i++) used[i] = 0;
    fillrow(0);
    printf("found %i solutions!\n",c);
}

void fillrow(uint row) {
    // save remaining range to list
    uint n = 0;
    for(uint i = 0; i < 16; i++){
        if(!used[i])
      avail[row][n++] = i;
  }
    select_mn(40, row);
}

// select d elements of remaining range starting from s
// range = 16 - 4 * row (first row(0): 16, last row(3): 4) remaining
#define RP(i) p[4 * row + i]
void select_mn(uint d, uint s, uint row) {
    if (d) {
        // pick next element from remaining range
        for (uint i = s; i < 16 - 4 * row; i++) {
            RP(4 - d) = avail[row][i];      // save chosen number
            used[(uint) avail[row][i]] = 1;  // set number used
            select_mn(d - 1, i + 1, row);   // fill next element
            used[(uint) avail[row][i]] = 0;  // set number unused
        }
        // check sum of chosen selection
    } else if(RP(0) + RP(1) + RP(2) + RP(3) == 30) {
        if(row == 3) checkCol(p, 0);
        else fillrow(row + 1);
    }
}

// permute rows to solve coloumns
void checkCol(uint *p, uint col) {

    if(col == 3) { // finished.
        if(p[3] + p[6] + p[ 9] + p[12] == 30 &&
           p[0] + p[5] + p[10] + p[15] == 30)
            print(p);
        return;
    }
    
    uint a, b, c, d, sum, tp[16];
    
    // permute first 3 elements of coloumn
    for(a = col + 0; a <  4; a++) {
    for(b = col + 4; b <  8; b++) {
    for(c = col + 8; c < 12; c++) {
        
        // sum of first 3 elements < 30 && >= 15
        // otherwise 30 not reachable
        sum = p[a] + p[b] + p[c];
        if(sum + p[c] >= 30 || sum + p[c] < 15continue;
        
        // choose last element of column
        for(d = col + 12; d < 16; d++) {
            if(sum + p[d] == 30) {
                // if sum = 30 -> swap elements to correct position
                memcpy(tp, p, 16);
                swap(tp, col +  0, a);
                swap(tp, col +  4, b);
                swap(tp, col +  8, c);
                swap(tp, col + 12, d);
                checkCol(tp, col + 1); // check next coloumn
            }
        }
    }}}
}

// print found square
void print(uint* p) {
    uint sum1 = 0, sum2[4] = {0000};
    printf("---%3i--------------\n   ", ++c);
    
    for(uint i = 0; i < 16; i++) {
        sum1 += p[i];
        sum2[i % 4] += p[i];
        printf("%3i", p[i]);
        
        if(i % 4 == 3) {
            printf(" = %i\n   ", sum1);
            sum1 = 0;
        }
    }
    
    printf("= =  =  =  = =\n%2i%4i%3i%3i%3i%5i\n\n",
        p[3] + p[6] + p[ 9] + p[12],
        sum2[0], sum2[1], sum2[2], sum2[3],
        p[0] + p[5] + p[10] + p[15]);
}


Nachtrag: Code geändert - hatte vorher den falschen Code kopiert :lol:


pzktupel - Sa 08.12.18 01:10

Rätsel 8 ging doch, nach 2 Liter Bier :D
Eine wirklich nette Idee, ausgezeichnet !


Symbroson - Sa 08.12.18 01:41

Da ist aber eine ganze Schaufel Glück dabei dass man nicht so viele schwerere Multiplikationen und Divisionen dabei hat ^^


BenBE - Sa 08.12.18 02:35

user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:
Nachtrag: Ich hatte noch vergessen vorsorglich für das morgige Rätsel "um Entschuldigung zu bitten". :flehan:
Es könnte sein, dass einige es als "unlösbar" ansehen. :mrgreen:

Ach, mit Notebook-Tastatur (ohne Numpad) ist das vor allem ne Schnellschreib-Übung in Kombination richtig rechnen ;-) Hab mehrere Anläufe gebraucht, weil ich mich häufiger vertippt habe ...

user profile iconpzktupel hat folgendes geschrieben Zum zitierten Posting springen:
Rätsel 8 ging doch, nach 2 Liter Bier :D
Eine wirklich nette Idee, ausgezeichnet !

Jup. Wobei die zwei Liter Bier hat's nicht gebraucht. ;-)

user profile iconSymbroson hat folgendes geschrieben Zum zitierten Posting springen:
Da ist aber eine ganze Schaufel Glück dabei dass man nicht so viele schwerere Multiplikationen und Divisionen dabei hat ^^

Ging. Viel eher war da wichtig, dass man sich nicht vertippt hat. Das hat mir mindestens 5 Anläufe versaut.

Anderer Punkt, der etwas störend war: Die Fokus-Steuerung während die Zeit läuft, sollte forciert auf dem Eingabefeld liegen. Ich musste bei jeder Falscheingabe nach dem Wegklicken der Meldung erstmal wieder mit der Maus (Touchpad) ins Feld klicken, was noch mal extra Zeit gekostet hat ... Kann aber durchaus ein Problem von WINE sein.


Hidden - Sa 08.12.18 02:45

Re: Steuerung - ich wollte mit Ctrl+A -> Del den Inhalt des Feldes leeren nachdem ich mich vertippt hatte und bekam ein Popup, welche Zeichen erlaubt sind. Das hat ein paar Sekunden gekostet^^


pzktupel - Sa 08.12.18 10:07

Eine hatte ich aber falsch, am Ende blitze noch was von 28 Aufgaben auf und dann wars weg...ging zu schnell


Gausi - Sa 08.12.18 10:55

Auf die Idee, eines der klassischen magischen Quadrate nachzubauen, und dabei von jedem Feld eins abzuziehen, bin ich nicht gekommen. :oops:

daher habe ich mir Qucik&Dirty ein Programm geschrieben, das alle möglichen (soweit noch sinnvoll) Permutationen durchgeht, und dann die magischen Quadrate ausgibt. Davon habe ich dann eines nachgebaut.

Code

Delphi-Quelltext
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:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
var Numbers: Array[0..15of Integer;

procedure TForm2.OutputArray;
begin
    Memo1.Lines.Add(IntTostr(Numbers[0]) + '  ' + IntTostr(Numbers[1]) + '  ' + IntTostr(Numbers[2]) + '  ' + IntTostr(Numbers[3]) + '  ');
    Memo1.Lines.Add(IntTostr(Numbers[4]) + '  ' + IntTostr(Numbers[5]) + '  ' + IntTostr(Numbers[6]) + '  ' + IntTostr(Numbers[7]) + '  ');
    Memo1.Lines.Add(IntTostr(Numbers[8]) + '  ' + IntTostr(Numbers[9]) + '  ' + IntTostr(Numbers[10]) + '  ' + IntTostr(Numbers[11]) + '  ');
    Memo1.Lines.Add(IntTostr(Numbers[12]) + '  ' + IntTostr(Numbers[13]) + '  ' + IntTostr(Numbers[14]) + '  ' + IntTostr(Numbers[15]) + '  ');
    Memo1.Lines.Add('-----------------------')
end;

procedure swap (idxA, idxB: Integer);
var tmp : Integer;
begin
    tmp := Numbers[idxA];
    Numbers[idxA] := Numbers[idxB];
    Numbers[idxB] := tmp;
end;

function CheckLine(x: Integer): Boolean;
begin
    result := Numbers[4*x]
       + Numbers[4*x + 1]
       + Numbers[4*x + 2]
       + Numbers[4*x + 3] = 30;
end;

function CheckColumn(x: Integer): Boolean;
begin
    result := Numbers[x]
       + Numbers[x + 4]
       + Numbers[x + 8]
       + Numbers[x + 12] = 30;
end;

function CheckDiags: boolean;
begin
    result := (Numbers[0]
        + Numbers[5]
        + Numbers[10]
        + Numbers[15] = 30)
    and (Numbers[3]
        + Numbers[6]
        + Numbers[9]
        + Numbers[12] = 30)
end;

function CheckAll: Boolean;
begin
    result := CheckColumn(0and CheckColumn(1and CheckColumn(2and CheckColumn(3)
          and CheckLine(0and CheckLine(1and CheckLine(2and CheckLine(3)
          and CheckDiags;
end;

procedure Permutate(startIdx: Integer);
var i: Integer;
    DoPerm: Boolean;
begin
    DoPerm := True;
    if (startIdx=4and (NOT CheckLine(0)) then
        DoPerm := False;

    if (startIdx=8and (NOT CheckLine(1)) then
        DoPerm := False;

    if (startIdx=12and (NOT CheckLine(2)) then
        DoPerm := False;

    if DoPerm then
    begin
        for i := startIdx + 1 to 15 do
        begin
            swap(startIdx, i);
            if CheckAll then
                Form2.OutputArray;
            Permutate(startIdx+1);
        end;
    end;
end;

// Aufruf über
for i := 0 to 15 do
    Numbers[i] := i;
Permutate(0);

Das Ding rechnet dann ca. 10 Sekunden und spuckt dann 1076 Varianten aus.


Symbroson - Sa 08.12.18 12:38

user profile iconGausi hat folgendes geschrieben Zum zitierten Posting springen:
Das Ding rechnet dann ca. 10 Sekunden und spuckt dann 1076 Varianten aus.

Ich habs mal ausprobiert - es sind 385 Varianten ohne Gedrehte oder gespiegelte auszusortieren ;) Der Rest ist identisch


Horst_H - Sa 08.12.18 13:45

Hallo,

also Aufgabe 8 nach einem Glas Sekt wegen Geburtstagfeier, ging gar nicht :-(
Alkohol in kleinsten Menge macht am nächsten Tag schon einen Kater, als wäre man sturzbesoffen gewesen.
Deshalb bin ich immer der Fahrer ;-)

Gruß Horst
P.S.:
Werden die Aufgaben mit der Versuchszahl leichter? Hat ja nach zig Versuchen und einkaufen gehen einmal geklappt.


Schestex - Sa 08.12.18 14:38

Hallo Leute,

ein großes Danke an die Erschaffer! Der Kalender ist 1.Sahne!

Jedes Rätsel bis heute, hatte seine persönliche Klasse.

Bei den Wichteln hätte ich mir gern etwas mehr Text gewünscht!
Habe da viel Zeit in falsche Richtungen verschwendet.

Im heutigen Rätsel fehlt ein 't' & 'e' im Text!

for(t)laufend
angez(e)igt

Mögen euch die Wichtel ein paar Biere zusenden!


Mathematiker - Sa 08.12.18 15:14

Hallo,
user profile iconSchestex hat folgendes geschrieben Zum zitierten Posting springen:
Im heutigen Rätsel fehlt ein 't' & 'e' im Text!

manchmal denke ich, ein besonders boshafter Computertroll sitzt in meinem Rechner und verändert meine Texte. :mrgreen:
Das ist natürlich Quatsch.
Man ließt es wieder und wieder :lupe: und sieht die Fehler nicht! :autsch:
Kaum hat man die Exe veröffentlicht, springen einem die Fehler sofort ins Auge. :motz:

Tut mit leid. Ich kann nur um Entschuldigung bitten. :flehan:

LG Steffen


Gausi - Sa 08.12.18 17:17

user profile iconSymbroson hat folgendes geschrieben Zum zitierten Posting springen:
Ich habs mal ausprobiert - es sind 385 Varianten ohne Gedrehte oder gespiegelte auszusortieren ;) Der Rest ist identisch

Bei genauerer Betrachtung verstehe ich jetzt gar nicht mehr, warum mein Code überhaupt was sinnvolles ausspuckt. :lol:

Ich krieg das aber auch nicht hin, dass mir 880 Varianten ausgegeben werden, was laut Wikipedia die korrekte Anzahl ist. Irgendwo ist da was vermurkst ... :gruebel: (Aber auf umfangreiches debuggen der Rekursion habe ich jetzt auch nicht wirklich Lust.)


Symbroson - Sa 08.12.18 17:29

Kannst du auch mal grob deinen Ansatz erklären?
Ich hab zwar jetzt 74 Lösungen, weiß aber auch nicht wiso es nur so wenige sind ^^
vielleicht ist es auch bei dir ein Rekursionsfehler


Auf dieser Seite gibt es auch einen interessanten Weg ein(!) magisches 4x4 Quadrat einfach per Hand zu finden:
http://www.mathematische-basteleien.de/magquadrat.htm
Und viele andere magische Dinge! :lupe:


Mathematiker - Sa 08.12.18 20:06

Eine Lösung des Pentomino-Rätsels
reh


Schestex - Sa 08.12.18 20:49

Kann mich erinnern es ebenso gemacht zu haben.
Soeben mal versucht eine andere Lösung zu finden,
bekomme aber nur die Lösung mit 2 Ohren hin ;)

Unbenannt

Die Beine anders zu machen, ist ja absolut nicht möglich?!

Moderiert von user profile iconNarses: Externes Bild als Anhang hochgeladen.


Hidden - Sa 08.12.18 21:53

user profile iconSchestex hat folgendes geschrieben Zum zitierten Posting springen:
Die Beine anders zu machen, ist ja absolut nicht möglich?!

Jupp. Wenn man mit dem unteren linken Feld beginnt und von dort 5 Kästchen füllt, gibt es zum Beispiel nur zwei Möglichkeiten:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
     ░       |     ░
  ░░░░       |  ░░░░
 ░░ ░░       | ░░ ░░
 ░░░░░       | ░░░░░
  ░░░░       |  ░░░░
    ░░     ░ |    ░░     ░
    ░░░░░░░░ |    ░░░░░░░░
    ░░░░░░░░ |    ░░░░░░░░
    ░░░░░░░░ |    ░░░░░░░░
    ░░    ░░ |    █░    ░░
   ███    ░░ |   ██░    ░░
   █ ░     ░ |   █ ░     ░
   █ ░     ░ |   █ ░     ░

Die linke Möglichkeit schneidet das zweite Bein ab, und die Anzahl der Kästchen im abgeschnittenen Teil (2) ist nicht durch 5 teilbar. Das darf nicht sein, weil alle Steine aus genau 5 Kästchen bestehen und damit der Raum mit keiner Kombination gefüllt werden kann.

Nachdem ich die drei Beine (komisches Tier!) gefüllt hatte, habe ich als nächstes geschaut wo ich den "+"-Block unterbringen kann. Der schneidet nämlich in den meisten Positionen das arme Vieh in zwei Hälften, die die falsche Anzahl Kästchen haben. (Wieder nicht durch 5 teilbar.)

Nur zwei Positionen für das "+" sind damit möglich, und die eine führt nach einigem Probieren zum Widerspruch. Die andere führt zur Lösung.

Edit: Die sollte damit dann eindeutig sein, weil (iirc) jeder Stein zwangsläufig so positioniert werden musste.


pzktupel - Sa 08.12.18 22:09

@Hidden

Jetzt musste ich laut lachen, weil ich bisher nie wahrgenommen habe , das alle Teile 5 Kästchen haben haha. Dann ist wirklich schneller klar, ob der Rest in einem Teil des Puzzles durch 5 geht oder nicht. :lol:


ub60 - Sa 08.12.18 23:23

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Edit: Die sollte damit dann eindeutig sein, weil (iirc) jeder Stein zwangsläufig so positioniert werden musste.


Das stimmt nicht ganz. Bis hier hin ist es meiner Meinung nach ziemlich eindeutig:

1

Aber dann gibt es die zwei Möglichkeiten:

2

3

ub60


Mathematiker - Sa 08.12.18 23:59

Fietes Pentominopuzzle liefert für das Muster "Reh" genau die zwei Möglichkeiten.
https://www.entwickler-ecke.de/viewtopic.php?t=111676&highlight=pentomino

LG Steffen


Hidden - So 09.12.18 00:22

Upps, ja, der letzte Teil "ging" am Ende dann einfach. Da hatte ich nicht mehr systematisch probiert, und deshalb die zweite Möglichkeit nicht gesehen.


Mathematiker - So 09.12.18 15:32

Es sind zwar noch ein paar Lösungsversuche beim "Kopfrechnen" offen, aber richtige Hinweise kann man so und so nicht geben.
Ich gestehe, dass ich überrascht bin über 35 Lösungen. Zwar hilft etwas Glück, dass möglichst keine Divisionen des großen Einmaleins kommen, dennoch hatte ich vermutet, dass es größere Probleme bereitet.
Daher: Gratulation zu den Kopfrechenfähigkeiten!

Irgendwie fehlt dieses Jahr die anspruchsvolle Aufgabe. :mrgreen:
Aber vielleicht wird es ja noch. :wink:

Einen schönen 2.Advent
Steffen


Hidden - So 09.12.18 15:48

Hey Steffen,

Ich hatte tatsächlich etwas Strategie für die Kopfrechenaufgabe gefunden.

Man hat 60 Sekunden für 20 Aufgaben, also 3 Sekunden pro Rechnung. Vorausgesetzt man kann die Aufgabe überhaupt lösen, dann muss die durchschnittliche Zeit pro Rechnung also 3 Sekunden oder weniger betragen.

Wenn man mehr als 6 Sekunden für eine Rechnung braucht, sollte man sie deshalb einfach überspringen indem man irgendwas eintippt. Die eingesparte Zeit investiert man dann besser, indem man zwei andere Aufgaben löst - die im Durchschnitt nach Voraussetzung ja weniger als 6 Sekunden brauchen.

Wer zum Beispiel Multiplikation und Division gar nicht kann, aber extrem gut bei Addition und Subtraktion ist, könnte versuchen alle "*" und "/" Aufgaben zu überspringen. Diese Person wird natürlich sehr viel Glück brauchen: Wenn die vier Aufgabentypen gleich häufig sind, ist das quasi ein Random Walk auf dem Zahlenstrahl; 50% Chance auf +1 Punkt, 50% Chance auf -1 Punkt.

Edit: Die Strategie könntest du verhindern, indem du bei falschen Antworten die Aufgabe nicht auflöst sondern einfach "Falsch!" zurückgibst. Der User müsste dann die selbe Aufgabe so lange lösen bis die Antwort richtig ist.
Edit2: Oder die Voraussetzung könnte "20 richtige Antworten in Folge, in den letzten 60 Sekunden" sein. Der Zähler würde dann bei jeder falschen Antwort wieder bei null losgehen.


Lemmy - So 09.12.18 19:41

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:


Wenn man mehr als 6 Sekunden für eine Rechnung braucht, sollte man sie deshalb einfach überspringen indem man irgendwas eintippt.


hatte mehr Anläufe benötigt und zum Schluss es genau so gemacht, lieber ne schnelle falsche Lösung als lange für die richtige Lösung. Aber da waren schon ein paar ganz böse Aufgaben dabei ;-)

Von der heutigen Kistenaufgabe war ich überrascht - wollte schon aufgeben, aber war dann doch recht einfach...


Delphi-Laie - Mo 10.12.18 03:04

Bitte keine weiteren Verschlimmerungen solcher Rechenaufgaben!

Ich hatte schon über 20 richtige und war unangenehm überrascht, warum keine Erfüllung, bis ich das mit den Straf-/Minuspunkten erkannte. Das empfand ich dann als besonders heftig. Das große Einmaleins (bis wohin geht das eigentlich?) ist bei mir ein weitgehend weiße Landkarte, wie wohl bei den allermeisten.

Überraschenderweise lösen konnte ich es dann ausnahmsweise und kurz vor Ende der 24-h-Frist wohl nur dann, weil die Hoffnung schon tot war, also "Sieges-/Niederlagengleichgültigkeit" eintrat.


Delphi-Laie - Mo 10.12.18 03:16

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Wer zum Beispiel Multiplikation und Division gar nicht kann, aber extrem gut bei Addition und Subtraktion ist, könnte versuchen alle "*" und "/" Aufgaben zu überspringen.


Wer bitteschön "kann Multiplikation und Division gar nicht", ist aber "extrem gut in Addition und Subtraktion"? Niemand, das ist ein Leermenge! Diese Aussage ist auch deshalb Unfug, weil Multiplikation und Division auf Addition und Subtraktion basieren, aufbauen. Weiterhin war es bei dieser Aufgabe in weiten Teilen unnötig und nicht helfend, "Multiplikation und Division zu können". Vielmehr waren Auswendigkenntnisse von Produkten und Quotienten verschiedener "Einmaleinse" vonnöten. Daß man eine Gewinnchance hat, wenn man sich für jede (!) übersprungene Rechenaufgabe der 2. Stufe einen Minuspunkt einhandelt, glaubst Du doch wohl selbst nicht ernthaft!


Schestex - Mo 10.12.18 08:47

Wenn man das 1x1 bis 25-30 recht gut kann, sollte die ganze Geschichte doch kein Problem darstellen.

1. Versuch : 19 richtig 0 falsch
2. Versuch : 6 richtig 2 falsch -> abgebrochen
3. Versuch : 18 richtig 0 falsch
4. Versuch : 21 richtig 0 falsch

Die Idee ist echt Klasse, sollte man einigen Leuten an diversen Kassen zum üben geben ;)

Freu mich schon auf das kommende Jahr, gestern mit Gustav Adolf den Weihnachtskalender 2017 durchprobiert! Genial!
Danke für eure Entwicklung!

Habe gestern festgestellt das die Geschwindigkeit vom Diamantenspiel unterschiedlich schnell ist. (Gustav Adolf - Win7; selbst - Win10)
Ist das normal?


Gausi - Mo 10.12.18 10:10

user profile iconLemmy hat folgendes geschrieben Zum zitierten Posting springen:
Von der heutigen Kistenaufgabe war ich überrascht - wollte schon aufgeben, aber war dann doch recht einfach...

Ich saß den ganzen Nachmittag am Rechner und ab das Advents-Gewinnspiel komplett vergessen. Keine Lösung diesmal von mir. :bawling:


pzktupel - Mo 10.12.18 10:26

Da könnte man mal ein Sport mit dem Rechnen drauß machen.

27 ,0 Fehler.


Horst_H - Mo 10.12.18 10:37

Hallo,

ein kleiner Tipp für heute.
Es geht viel schneller, wenn man statt auf Summe = 7 auf Summe = 12 vergleicht Haare Rauf wer lesen kann, ist klar im Vorteril
Hätte ich mal 12 statt 4 h geschlafen...Bald sind die Weihnachtsfeiern durch..

Gruß Horst


Hidden - Mo 10.12.18 12:25

user profile iconHorst_H hat folgendes geschrieben Zum zitierten Posting springen:
Es geht viel schneller, wenn man statt auf Summe = 7 auf Summe = 12 vergleicht

Danke :autsch: Ich hatte mir irgendwie auch sum=7 gemerkt.


Delphi-Laie - Mo 10.12.18 22:43

Hallo Mathematiker, leider bin ich mir nicht sicher, die heutige Aufgabenstellung komplett verstanden zu haben.

Ist die Bedingung für eine Möglichkeit, daß in jeder Linie die Summe 12 existiert, also "gleichzeitig", oder reicht es für die gezählte Möglichkeit, wenn in einer Linie die Summe 12 vorliegt?

Ich schätze, ersteres.

Danke und Gruß

Delphi-Laie


pzktupel - Mo 10.12.18 22:52

@ Laie: Die 5 3er Linien müssen alle Summe 12 haben...und wieviele Möglichkeiten der Ziffernverteilungen 1-7 auf die Felder, um dies zu erreichen.


Delphi-Laie - Mo 10.12.18 22:54

user profile iconpzktupel hat folgendes geschrieben Zum zitierten Posting springen:
@ Laie: Die 4 3er Linien müssen alle Summe 12 haben


Wieso 4? Ich zähle 5 Dreierlinien!

Edit: Wurde von Dir berichtigt.


pzktupel - Mo 10.12.18 22:55

Ja 5, bin das Muster nochmal im Kopf durchgegangen


Delphi-Laie - Mo 10.12.18 23:35

Also, wie ich schon vermutete: Mit "Möglichkeit" ist der Fall gemeint, daß (jeweils) alle Linien die Summe 12 ergeben.


BenBE - Di 11.12.18 03:51

Bis zu welchem Tag sind die Rätsel aktuell eigentlich bereits alle abgeschlossen?


pzktupel - Di 11.12.18 12:42

Also das Rätsel 11 brachte ein um den Verstand :-(
Ich entschied mich dann für eine Zufallsdarstellung und programmierte auf die Schnelle einen Lösungsweg dazu.
Das war entspannter.
Der PC löste es quasi per Enter 1/80s

Grüße


BenBE - Di 11.12.18 15:08

Bei mir lief die Lösung so, dass ich mir in einer Programmiersprache nen Code-Generator geschrieben hab, der in einer anderen Programmiersprache ein Programm zur Lösung ausspuckte, ich darin noch paar Zeilen umsortiert habe, um die Performance zu verbessern und dann das gegen den Interpreter der zweiten Sprache geworfen habe. Fiel auch Prompt eine Lösung und die Angabe, dass diese eindeutig ist, raus.


Gausi - Di 11.12.18 17:48

Das 11. Rätsel hat eindeutig Suchtpotential bei mir. Zumindest einige lassen sich ja mit Überlegen eindeutig lösen, ohne großartig Backtracking zu betreiben. Wenn man diese Rätselart nicht kennt, muss man sich ein paar Regeln ausdenken, nach denen man ein paar Zahlen ausschließen kann, bis man irgendwann ein paar eindeutige Felder hat.

Auch wenn ich mich wiederhole: Einfach klasse! :zustimm:


Schestex - Di 11.12.18 17:55

user profile iconpzktupel hat folgendes geschrieben Zum zitierten Posting springen:
Also das Rätsel 11 brachte ein um den Verstand :-(
Ich entschied mich dann für eine Zufallsdarstellung und programmierte auf die Schnelle einen Lösungsweg dazu.
Das war entspannter.
Der PC löste es quasi per Enter 1/80s

Grüße


Wieviele Zeit hat dich das Lösungsprogramm gekostet?


pzktupel - Di 11.12.18 18:12

user profile iconSchestex hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconpzktupel hat folgendes geschrieben Zum zitierten Posting springen:
Also das Rätsel 11 brachte ein um den Verstand :-(
Ich entschied mich dann für eine Zufallsdarstellung und programmierte auf die Schnelle einen Lösungsweg dazu.
Das war entspannter.
Der PC löste es quasi per Enter 1/80s

Grüße


Wieviele Zeit hat dich das Lösungsprogramm gekostet?


Hm, 1 Std vielleicht oder weniger.
Musste ja erstmal überlegen, wie ich dem das beibringe...
Dachte, dass kann ich heut vergessen. Kein Nerv gehabt reiherum immer zu addieren. Mir fiel was ein und lies den PC die Arbeit machen :D


Schestex - Di 11.12.18 19:20

An sich muss man sich nur einen guten Punkt suchen wo man anfängt, habs dann mit 93min geschafft.
Der nächste Versuch ging wesentlich fixer. Macht Spass das Ding!

Hat dieses mathematische Spiel einen speziellen Namen?


Mathematiker - Di 11.12.18 19:45

user profile iconSchestex hat folgendes geschrieben Zum zitierten Posting springen:
Hat dieses mathematische Spiel einen speziellen Namen?

Ja, "lateinische Summen".
U.a. enthalten in "Mathematik alpha" ( https://mathematikalpha.de/download ) unter dem Menüpunkt Logikspiele/Sudokuähnliche Rätsel und dann Auswahlfeld "Lateinische Summen".

LG Steffen


BenBE - Di 11.12.18 20:07

Mir hat eine kleine Nachlässigkeit gute 15 Minuten gekostet, weil ich einen Teil der Aufgabenstellung mit einer zusätzlichen Einschränkung zuerst übersehen hatte und daher die erste abgetippte Lösung diese Einschränkung nicht beachtet hatte ...

Die zu ergänzen war kurz Copy&Paste und noch mal von Hand die neue Lösung eintragen ;-) Aber ohne Automatisiertes Backtracking mittels Computer wäre das doch etwas anstrengend geworden. :)

Naja, Code zu meiner Lösung poste ich später, wenn der 11. Tag zur allgemeinen Lösungsdiskussion freigegeben ist.


Mathematiker - Di 11.12.18 21:50

Hallo,
zu den Lösungen 9. und 10.:
Die Kisten wurden von fast allen erfolgreich verschoben, d.h. eine exakte Lösung ist nicht notwendig.

10.Rätsel:
Die Zahlen 1 bis 7 sind so in die 7 Kreise einzutragen, dass die Summe je dreier Zahlen, die durch eine Strecke miteinander verbunden sind, jeweils 12 ergibt.
fachsel
Lösung:
In jeder der 5 Dreiersummen kommt jede Zahl 2mal vor, die Zahl im mittleren Kreis 3mal. Die Summe der Zahlen von 1 bis 7 ist 28, die doppelte Summe 56; da auf 60 (5 Dreiersummen zu 12) die Zahl 4 fehlt, muss diese 3mal in der Gesamtsumme vorkommen und steht damit in der Mitte.
Die anderen Zahlen bilden Paare 1-7, 2-6 und 3-5, von denen je drei oben bzw. unten stehen müssen 6-1-5 und 3-7-2. Da es 6 Möglichkeiten gibt die Zahlen 1, 5, 6 zu permutieren und diese entweder oben oder unten stehen, gibt es somit insgesamt 12 verschiedene Lösungen des Rätsels.

Natürlich kann man die Aufgabe auch wieder mit "roher Gewalt" lösen:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
procedure TForm1.Button1Click(Sender: TObject);
var a,b,c,d,e,f,g : integer;
begin
  listbox1.Clear;
  for a:=1 to 7 do begin
    for b:=1 to 7 do begin
      if (a<>b) then
      for c:=1 to 7 do begin
        if (a<>c) and (b<>c) then
        for d:=1 to 7 do begin
          if (a<>d) and (b<>d) and (c<>d) then
          for e:=1 to 7 do begin
            if (a<>e) and (b<>e) and (c<>e) and (d<>e) then
            for f:=1 to 7 do begin
              for g:=1 to 7 do begin
                if (a+b+c=12and (a+d+g=12and (b+d+f=12and (c+d+e=12)
                   and (e+f+g=12then
                     listbox1.Items.add(inttostr(a)+#9+inttostr(b)+#9+inttostr(c)+#9
                       +inttostr(d)+#9+inttostr(e)+#9+inttostr(f)+#9+inttostr(g));
  endendendendendendend;
  label1.caption:=inttostr(listbox1.Items.Count)+' Möglichkeiten';
end;


Das heutige Rätsel ist wohl das bisher schwerste. Es sind noch viele Lösungsversuche offen.
Dafür wird es morgen sehr einfach, versprochen. :D

LG Steffen


Hidden - Di 11.12.18 21:53

10. Zahlenrätsel

Quelltext
1:
2:
3:
a b c
  d
e f g


{a,b,c,d,e,f,g} = {1,2,3,4,5,6,7}

---

Für {x,y} aus {{a,g}, {b,f}, {c,e}} muss x + d + y = 12 sein. Durchprobieren der Möglichkeiten für d liefert:

d=7: x+y = 5 => Widerspruch für x = 6, da y = -1 sein müsste
d=6: x+y = 6 => Widerspruch für x = 7, da y = -1 sein müsste
d=5: x+y = 7 => Widerspruch für x = 7, da y = 0 sein müsste

d=4: x+y = 8 => {{a,g}, {b,f}, {c,e}} = {{1,7}, {2,6}, {3,5}} (mit Mengenklammern, weil nicht festgelegt ist wie die drei Paare auf die sechs Variablen verteilt sind.)

d=3: x+y = 9 => Widerspruch für x = 1, da y = 8 sein müsste
d=2: x+y = 10 => Widerspruch für x = 1, da y = 9 sein müsste
d=1: x+y = 11 => Widerspruch für x = 2, da y = 9 sein müsste

Also ist d = 4 für alle Lösungen.

---

Die oben erhaltene Gleichung {{a,g}, {b,f}, {c,e}} = {{1,7}, {2,6}, {3,5}} liefert 2^3 = 8 mögliche Kombinationen für {a, b, c} und {e, f, g}:

  1. {a,b,c}={1,2,3}, {e,f,g}={7,6,5} => a + b + c \ne 12
  2. {a,b,c}={1,2,5}, {e,f,g}={7,6,3} => a + b + c \ne 12
  3. {a,b,c}={1,6,3}, {e,f,g}={7,2,5} => a + b + c \ne 12
  4. {a,b,c}={1,6,5}, {e,f,g}={7,2,3} => a + b + c = 12 = e + f + g
  5. {a,b,c}={7,2,3}, {e,f,g}={1,6,5} => a + b + c = 12 = e + f + g
  6. {a,b,c}={7,2,5}, {e,f,g}={1,6,3} => a + b + c \ne 12
  7. {a,b,c}={7,6,3}, {e,f,g}={1,2,5} => a + b + c \ne 12
  8. {a,b,c}={7,6,5}, {e,f,g}={1,2,3} => a + b + c \ne 12


Insgesamt: {{a,b,c}, {e,f,g}} = {{1,5,6}, {2,3,7}}.

---

Also gibt es 2 verschiedene Möglichkeiten für {a,b,c}, und 3! = 6 Wege diese drei Zahlen anzuordnen.
Die Anordnung von {e,f,g} wird durch die von {a,b,c} bestimmt. Hier kommen also keine weiteren Kombinationsmöglichkeiten hinzu.

Zusammen: 2 * 6 = 12 Lösungen.

Edit: Wow, user profile iconMathematiker's Lösung ist sehr viel schöner und kürzer^^


Symbroson - Di 11.12.18 21:55

user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:
Dafür wird es morgen sehr einfach, versprochen. :D

Schade, dabei bin ich doch gerade erst warm geworden :D

Mein Lösungsansatz ist wohl derselbe ^^ in C versteht sich


pzktupel - Di 11.12.18 22:13

Lösung Rätsel 10 mal anders mit "Fakultät-Prüfbelegung "


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
DIM AS UBYTE a,b,c,d,e,f,g,v
v=0
FOR a=1 TO 7
FOR b=1 TO 7
FOR c=1 TO 7
FOR d=1 TO 7
FOR e=1 TO 7
FOR f=1 TO 7
FOR g=1 TO 7
IF a*b*c*d*e*f*g<>5040 THEN GOTO G
IF a+b+c<>12 THEN GOTO G
IF e+f+g<>12 THEN GOTO G
IF a+d+g<>12 THEN GOTO G
IF c+d+e<>12 THEN GOTO G
PRINT a,b,c
PRINT " ",d
PRINT e,f,g
v+=1:PRINT "Nr.";v
SLEEP 
G:NEXT g:NEXT f:NEXT e:NEXT d:NEXT c:NEXT b:NEXT a
PRINT "Fertig":SLEEP


Moderiert von user profile iconChristian S.: Code-Tags hinzugefügt


Delete - Di 11.12.18 22:15

- Nachträglich durch die Entwickler-Ecke gelöscht -


Mathematiker - Di 11.12.18 22:16

Hallo,
user profile iconpzktupel hat folgendes geschrieben Zum zitierten Posting springen:

IF a*b*c*d*e*f*g<>5040 THEN GOTO G

Die Idee mit dem Test der sieben Zahlen auf Unterschiedlichkeit mit dem Produkt gefällt mir.
Darauf bin nicht gekommen.

LG Steffen


Symbroson - Di 11.12.18 22:20

user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:
Hallo,
user profile iconpzktupel hat folgendes geschrieben Zum zitierten Posting springen:

IF a*b*c*d*e*f*g<>5040 THEN GOTO G

Die Idee mit dem Test der sieben Zahlen auf Unterschiedlichkeit mit dem Produkt gefällt mir.
Darauf bin nicht gekommen.

LG Steffen


Ist mir auch neu, jedoch ist es langsamer als die Bedingungen vor jeder neuen Schleife zu prüfen weil dann doch wieder alle Möglichkeiten zumindest bis dahin in den Schleifen durchgegangen werden müssen. Ist also bei größeren Permutationen nicht zu empfehlen ;)


Delphi-Laie - Di 11.12.18 22:21

Zum Rätsel vom 10.12: Eine siebenfach (!) verschachtelte Schleife, die jeweils von 1 bis 7 läuft, ist ein wenig unelegant und "hyperbrachial", da die sieben Elemente nur permutiert werden müssen.

Bei den Permutationsenumerationsalgorithmen (scheußliches, aber treffendes Wortungetüm) sind die besonders effizient, die auf der Grundlage nur jeweils einer Vertauschung jeweils logischerweise zweier Elemente die nächste Permutation generieren.

Davon sind mir zwei bekannt, einer von Ford & Johnson, der andere von Oleg Victorow. Beide sind in meinem Sortierprogramm implementiert. Ich habe einfach besagtes Programm ein klein wenig "modifiziert", um auf die Anzahl zu kommen.


Mathematiker - Di 11.12.18 22:22

user profile iconFrühlingsrolle hat folgendes geschrieben Zum zitierten Posting springen:
Schade dass die Beteiligung im Forum nicht annähernd so groß ist / sein kann, wie zu diesem "Event". :nixweiss:

Das stimmt leider. Dennoch zeigt es, dass die Entwickler-Ecke "lebt". :dance2:
Seit Tagen haben wir mehr Aktivität als die Delphi-Praxis.

Ich gebe die Hoffnung nicht auf, dass es auch außerhalb des Advents wieder mehr wird. :zustimm:

LG Steffen


Symbroson - Di 11.12.18 22:24

user profile iconDelphi-Laie hat folgendes geschrieben Zum zitierten Posting springen:
Zum Rätsel vom 10.12: Eine siebenfach (!) verschachtelte Schleife, die jeweils von 1 bis 7 läuft, ist ein wenig unelegant und "hyperbrachial", da die sieben Elemente nur permutiert werden müssen.

Das ist durchaus richtig, jedoch einfacher zu merken als den Permutatinsalgorithmus. Außer man weiß wo man ihn abgespeichert hat :roll:

Heute habe ich aber richtige Permutation angewandt. Bin gespannt auf andere Ansätze :)


pzktupel - Di 11.12.18 22:25

Naja, ich bin nicht so der Programmierer, aber auf seltsame Ideen komm ich immer mal :-)
Genauso wie heute der Kracher :roll:


Delphi-Laie - Di 11.12.18 22:32

Eine kleine Ergonomieverbesserung hätte ich für Programme der Art wie das heutige anzuregen: Wie wäre es, wenn man farblich kennzeichnet, daß die angezeigte Summe von den Umgebungsfeldern überschritten wird? Und / oder, daß mehr als eine gleiche Zahl in eine Reihe bzw. Spalte hineingerutscht ist?

Ich weiß, das schreibt sich so leicht, ist aber nicht immer ganz so simpel zu implementieren.

So, wie es jetzt gelöst ist, was ja sicher schon eine Heidenarbeit war, ist es außer der Lösungsauswertung "nur ein Papierersatz" (nicht abfällig gemeint), ohne jegliche Hilfe des Computers.

Oder ist der Zwang zum ständigen Rechnen Teil des Konzeptes?! Mag sein. Mag aber nicht jeder, das Rechnen....

Wie gesagt, nur als vorsichtige Anregung gemeint.

Gruß Delphi-Laie


pzktupel - Di 11.12.18 22:40

Ja, da hätte ich auch eine Anmerkung. Zumindest die eigenen Wahl-Zahlen Rot färben.
Das schwarz und dunkelblau ist schwer zu unterscheiden.


Delphi-Laie - Di 11.12.18 23:40

user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconFrühlingsrolle hat folgendes geschrieben Zum zitierten Posting springen:
Schade dass die Beteiligung im Forum nicht annähernd so groß ist / sein kann, wie zu diesem "Event". :nixweiss:

Das stimmt leider. Dennoch zeigt es, dass die Entwickler-Ecke "lebt". :dance2:
Seit Tagen haben wir mehr Aktivität als die Delphi-Praxis.


Tja, zur Lösung dieses Problems habe ich eine ganz freche Idee: Wie wäre es mit einem Ganzjahreskalender? ;-)


BenBE - Mi 12.12.18 00:06

Das Zahlenrätsel vom 10. wanderte bei mir kurzerhand in den Interpreter von SWI Prolog:


zahlen.pl
1:
2:
3:
4:
5:
6:
7:
g(A, B, C, D, E, F, G) :-
    permutation([1,2,3,4,5,6,7],[A,B,C,D,E,F,G]),
    A + B + C =:= 12,
    A + D + G =:= 12,
    B + D + F =:= 12,
    C + D + E =:= 12,
    E + F + G =:= 12.


Das einmal in einer Session gegen SWI Prolog geworfen ...


SWI Prolog
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
?- [zahlen].
true.

?- g(A,B,C,D,E,F,G).
A = 1, B = 5, C = 6, D = 4, E = 2, F = 3, G = 7 ;
A = 1, B = 6, C = 5, D = 4, E = 3, F = 2, G = 7 ;
A = 2, B = 3, C = 7, D = 4, E = 1, F = 5, G = 6 ;
A = 2, B = 7, C = 3, D = 4, E = 5, F = 1, G = 6 ;
A = 3, B = 2, C = 7, D = 4, E = 1, F = 6, G = 5 ;
A = 3, B = 7, C = 2, D = 4, E = 6, F = 1, G = 5 ;
A = 5, B = 1, C = 6, D = 4, E = 2, F = 7, G = 3 ;
A = 5, B = 6, C = 1, D = 4, E = 7, F = 2, G = 3 ;
A = 6, B = 1, C = 5, D = 4, E = 3, F = 7, G = 2 ;
A = 6, B = 5, C = 1, D = 4, E = 7, F = 3, G = 2 ;
A = 7, B = 2, C = 3, D = 4, E = 5, F = 6, G = 1 ;
A = 7, B = 3, C = 2, D = 4, E = 6, F = 5, G = 1 ;
false.


... und man brauchte danach lediglich noch Antworten zählen und die ermittelte Anzahl eintragen ...


Horst_H - Mi 12.12.18 08:36

Hallo,

Zu Tag 10: Ich nahm auch permtation, wollte dabei die Zahl der rekursiven Aufrufe möglichst gering halten:

Delphi-Quelltext
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:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
{$IFDEF FPC}{$MOde Delphi}{$ELSE}{$APPTYPE CONSOLE}{$IFEND}
type
  tElement = NativeUint;

var
  Zahl : array[0..7of tElement;
  cnt,rekCount : NativeInt;
function Summe :boolean;
Begin
  result := (Zahl[1]+Zahl[2]+Zahl[3]) =12;
  If Not result then EXIT;
  result := (Zahl[1]+Zahl[4]+Zahl[7]) =12;
  If Not result then EXIT;
  result := (Zahl[2]+Zahl[4]+Zahl[6]) =12;
  If Not result then EXIT;
  result := (Zahl[3]+Zahl[4]+Zahl[5]) =12;
  If Not result then EXIT;
  result := (Zahl[5]+Zahl[6]+Zahl[7]) =12;
end;

procedure Ausgabe;
Begin
  inc(cnt);
  writeln('Variante ', cnt);
  writeln(Zahl[1]:3,Zahl[2]:3,Zahl[3]:3);
  writeln(Zahl[4]:6);
  writeln(Zahl[5]:3,Zahl[6]:3,Zahl[7]:3);
end;
procedure SwapElements(i,j:tElement);inline;
var
  tmp:tElement;
Begin
  if i<>j then
  Begin
    tmp := Zahl[i];Zahl[i]:= zahl[j];Zahl[j] := tmp;
  End;
end;

procedure rekurs(i:NativeInt);
var
  j : NativeInt;
begin
  inc(rekCount);
  j:= i;
  repeat
    SwapElements(i,j);
    case i of
      0..2: rekurs(i+1);
      3IF  (Zahl[1]+Zahl[2]+Zahl[3]) = 12 then rekurs(4);
      4: rekurs(i+1);
      5IF  (Zahl[3]+Zahl[4]+Zahl[5]) = 12 then rekurs(6);
      6IF  (Zahl[2]+Zahl[4]+Zahl[6]) = 12 then rekurs(7);
    else
      If summe then
        Ausgabe;
    end;
    SwapElements(i,j);
    inc(j);
  until j>High(Zahl);
end;

var
 i : Integer;
Begin
  cnt := 0;
  rekCount := 0;
  For i := 0 to 7 do
    Zahl[i]:= i;
  rekurs(1);
  writeln;
  writeln('Es gibt ',cnt,' Loesungen');
  writeln('Es gab ',rekCount,' rekursive Aufrufe');
end.

Mit dem Ergebnis:

Quelltext
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:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
Variante 1
  1  5  6
     4
  2  3  7
Variante 2
  1  6  5
     4
  3  2  7
Variante 3
  2  3  7
     4
  1  5  6
Variante 4
  2  7  3
     4
  5  1  6
Variante 5
  3  2  7
     4
  1  6  5
Variante 6
  3  7  2
     4
  6  1  5
Variante 7
  5  1  6
     4
  2  7  3
Variante 8
  5  6  1
     4
  7  2  3
Variante 9
  6  5  1
     4
  7  3  2
Variante 10
  6  1  5
     4
  3  7  2
Variante 11
  7  2  3
     4
  5  6  1
Variante 12
  7  3  2
     4
  6  5  1

Es gibt 12 Loesungen
Es gab 308 rekursive Aufrufe


Gruß Horst


pzktupel - Mi 12.12.18 11:46

Rätsel 12 von heute:

Es ist in der Tat ein Urlaubstag. Das Prinzip war aus den Vorjahren bereits bekannt, aber man könnte es vom Niveau auch anheben lassen...das macht es dann nicht mehr so einfach.

Wie wäre es, wenn eine minimale Lösung + Spielraum aus der konstanten Anfangssituation nur zuässig ist. Quasi nach x-Zügen muss es gelöst sein. Das würde sich dann von der Schwierigkeit her in die anderen Aufgaben mit einreihen können,oder ?


Mathematiker - Mi 12.12.18 12:42

user profile iconpzktupel hat folgendes geschrieben Zum zitierten Posting springen:
Es ist in der Tat ein Urlaubstag.

Warum denn nicht, gestern war doch etwas "anstrengend". Außerdem soll es ja etwas Spaß machen und nicht unbedingt in Stress ausarten.
Aber keine Sorge. Morgen wird es wieder etwas "niveauvoller".

LG Steffen


Horst_H - Mi 12.12.18 12:48

Hallo,

Gnade, warum immer schwerer machen, die Herausfordeungen ständig steigern wollen.
Ein gutes Lehrer hält das Niveau einer x.ten Klasse auf dem Niveau einer x.ten Klasse und steigert das nicht.
Die Aufgaben müssen lösbar bleiben und nicht zu viel Zeit beanspruchen.
Bei Bedarf nach mehr:
Rätsel, Puzzles und anderer Denksport [https://www.janko.at/Raetsel/index.htm?cc=de]

Gruß Horst


pzktupel - Mi 12.12.18 12:56

So war das nicht gemeint. War nur ne blöde Idee.


Delphi-Laie - Mi 12.12.18 13:38

user profile iconHorst_H hat folgendes geschrieben Zum zitierten Posting springen:
Ein gutes Lehrer hält das Niveau einer x.ten Klasse auf dem Niveau einer x.ten Klasse und steigert das nicht.


Einspruch: Ein guter Lehrer holt m.E. aus seinen Schützlingen heraus, was - zeitlich und intellektuell - möglich ist.

user profile iconHorst_H hat folgendes geschrieben Zum zitierten Posting springen:
Die Aufgaben müssen lösbar bleiben und nicht zu viel Zeit beanspruchen.


Solang es am 24.12. immer noch welche mit voller Punkt(e)zahl gibt (was mir rätselhaft ist), wurde das Niveau m.E. angemessen dosiert. Zweiteres ist der Knackpunkt: Wenn es zunehmend dauert und man ahnt, daß man es womöglich gar nicht schafft, jedenfalls nicht innerhalb der 24-h-Frist, läßt so mancher wieder davon ab.


Ralf Jansen - Mi 12.12.18 14:09

user profile iconHorst_H hat folgendes geschrieben Zum zitierten Posting springen:
Die Aufgaben müssen lösbar bleiben und nicht zu viel Zeit beanspruchen.


Und das bekommt user profile iconMathematiker ja auch immer wunderbar hin. Darüber liegt aber immer noch die Schicht der persönlichen Interessen die bestimmte Aufgaben auf persönlicher Ebene leichter oder schwerer machen.

Ich persönlich freu mich dieses Jahr riesig das es bisher keine Krypto Aufgabe gab. Ist halt vollständig vorbei an meinen Interessen. Ist aber auch gut so denn ich bin mir gleichzeitig sicher das andere hier genau auf diese Sorte Aufgaben gespannt warten. Vermutlich verlässt mich diesbezüglich mein Glück auch bald ;)


Hidden - Mi 12.12.18 14:41

Hmm, die Advents-App sagt mir seit heute Nacht, dass der Server nicht erreichbar ist. Geht das nur mir so?


Narses - Mi 12.12.18 14:43

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Hmm, die Advents-App sagt mir seit heute Nacht, dass der Server nicht erreichbar ist. Geht das nur mir so?
Schau mal in deine PNs. :zwinker:


Hidden - Mi 12.12.18 14:47

user profile iconNarses hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Hmm, die Advents-App sagt mir seit heute Nacht, dass der Server nicht erreichbar ist. Geht das nur mir so?
Schau mal in deine PNs. :zwinker:

Japp, falsche Reihenfolge :oops: Nächstes Mal lese ich erst die PM, dann den Thread^^
Danke!

Edit: Fixed :zustimm:


Delphi-Laie - Mi 12.12.18 22:40

Ich hätte noch einen kleinen Verbesserungsvorschlag, der auf meinen mißglückten "Umzugsversuch" Anfang Dezember zurückgeht: Der Adventskalender bezieht seine Informationen, an welchem Tage das jeweilige Rätsel schon gelöst wurde, aus (s)einer Ini-Datei, jedenfalls werden dort die (Miß-)Erfolge gespeichert und auch mit Sternchen angezeigt. Könnte das, um die Portierbarkeit zu verbessern, nicht auch serverbasiert geschehen? Oder wird das schon so gelöst?


Symbroson - Mi 12.12.18 22:51

user profile iconDelphi-Laie hat folgendes geschrieben Zum zitierten Posting springen:
Könnte das, um die Portierbarkeit zu verbessern, nicht auch serverbasiert geschehen? Oder wird das schon so gelöst?

Es gibt oben rechts so ein Einstellungssymbol wo man dann auch seine Daten mit dem Server synchronisieren kann - also gehe ich davon aus


Mathematiker - Mi 12.12.18 22:59

Hallo,
alle Hinweise und Verbesserungsvorschläge, die von euch kommen, werden sorgfältig gespeichert und wenn möglich im nächsten Jahr (vorausgesetzt es gibt dann wieder ein EE-Adventsspiel) berücksichtigt.

Für alle, die auf die Auflösung des Summenrätsels (Rätsel 11) warten, kann ich schon jetzt sagen, dass ich keine besondere Lösungsidee vorweisen kann. Ich löse so etwas einfach durch logisches Überlegen.

Eine Bitte hätte ich aber: Der letzte Lösungsversuch läuft erst heute 23:10 Uhr ab. Deshalb bitte vorher keine Hinweise posten. Danach bin ich sehr gespannt, denn es wurden ja schon elegante und sehr schnelle Lösungen durch euch angekündigt.

Danke
Steffen

Nachtrag: Morgen, also in etwa 90 Minuten, ist die "beliebte" Verschlüsselungsscheibe wieder dran. Ich weiß, einige mögen das nicht, aber es gehört doch zum Adventsspiel dazu. :roll:
Und immer daran denken: Die Scheiben sind drehbar. :wink:


pzktupel - Mi 12.12.18 23:58

Okay, also hier meine Lösung für die Zufallsanordnung.
Hinweis: Es wurde Zeile für Zeile geprüft (oben nach unten)




Quelltext
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:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
#INCLUDE "windows.bi"
#INCLUDE "vbcompat.bi" 

DIM AS UBYTE a12,a13,a14,a16,a18
DIM AS UBYTE a21,a22,a25,a26,a28
DIM AS UBYTE a31,a33,a34,a35,a37
DIM AS UBYTE a41,a45,a46,a47,a48
DIM AS UBYTE a51,a53,a55,a56,a57
DIM AS UBYTE a62,a63,a64,a67,a68
DIM AS UBYTE a72,a73,a74,a75,a77
DIM AS UBYTE a81,a82,a84,a86,a88

S1:
FOR a12=1 TO 5
FOR a13=1 TO 5
FOR a14=1 TO 5
FOR a16=1 TO 5
FOR a18=1 TO 5
IF a12*a13*a14*a16*a18<>120 THEN GOTO E1 
GOTO S2
E1:
NEXT a18
NEXT a16
NEXT a14
NEXT a13
NEXT a12

S2:
FOR a21=1 TO 5
FOR a22=1 TO 5
FOR a25=1 TO 5
FOR a26=1 TO 5
FOR a28=1 TO 5
IF a21*a22*a25*a26*a28<>120 THEN GOTO E2 

IF a12+a22+a21<>7 THEN GOTO E2 
IF a14+a16+a25+a26<>17 THEN GOTO E2
IF a16+a18+a26+a28<>13 THEN GOTO E2
REM "ok"
GOTO S3
E2:
NEXT a28
NEXT a26
NEXT a25
NEXT a22
NEXT a21
GOTO E1

S3:
FOR a31=1 TO 5
FOR a33=1 TO 5
FOR a34=1 TO 5
FOR a35=1 TO 5
FOR a37=1 TO 5
IF a31*a33*a34*a35*a37<>120 THEN GOTO E3 

IF a12+a13+a14+a22+a33+a34<>17 THEN GOTO E3
IF a13+a14+a25+a35+a34+a33<>19 THEN GOTO E3
IF a16+a18+a26+a28+a37<>17 THEN GOTO E3
REM "ok"
GOTO S4
E3:
NEXT a37
NEXT a35
NEXT a34
NEXT a33
NEXT a31
GOTO  E2

S4:
FOR a41=1 TO 5
FOR a45=1 TO 5
FOR a46=1 TO 5
FOR a47=1 TO 5
FOR a48=1 TO 5
IF a41*a45*a46*a47*a48<>120 THEN GOTO E4 

IF a21+a22+a33+a31+a41<>10 THEN GOTO E4
IF a25+a26+a37+a47+a46+a45+a35<>25 THEN GOTO E4
IF a28+a37+a47+a48<>14 THEN GOTO E4
REM "ok"
GOTO S5
E4:
NEXT a48
NEXT a47
NEXT a46
NEXT a45
NEXT a41
GOTO E3
REM "*"

S5:

FOR a51=1 TO 5
FOR a53=1 TO 5
FOR a55=1 TO 5
FOR a56=1 TO 5
FOR a57=1 TO 5
IF a51*a53*a55*a56*a57<>120 THEN GOTO E5 

IF a31+a33+a53+a51+a41<>15 THEN GOTO E5
IF a33+a34+a53<>11 THEN GOTO E5
IF a33+a34+a35+a45+a55+a53<>19 THEN GOTO E5
REM "ok"
GOTO S6
E5:
NEXT a57
NEXT a56
NEXT a55
NEXT a53
NEXT a51
GOTO E4
REM "***"

S6:

FOR a62=1 TO 5
FOR a63=1 TO 5
FOR a64=1 TO 5
FOR a67=1 TO 5
FOR a68=1 TO 5
IF a62*a63*a64*a67*a68<>120 THEN GOTO E6 

IF a41+a51+a62+a63+a53<>16 THEN GOTO E6
IF a53+a63+a64+a55+a45<>17 THEN GOTO E6
IF a48+a47+a57+a67+a68<>15 THEN GOTO E6
REM "ok"
GOTO S7
E6:
NEXT a68
NEXT a67
NEXT a64
NEXT a63
NEXT a62
GOTO E5





S7:
FOR a72=1 TO 5
FOR a73=1 TO 5
FOR a74=1 TO 5
FOR a75=1 TO 5
FOR a77=1 TO 5
IF a72*a73*a74*a75*a77<>120 THEN GOTO E7 

IF a51+a62+a72<>9 THEN GOTO E7
IF a55+a64+a74+a75+a56<>13 THEN GOTO E7
IF a55+a56+a57+a67+a77+a75<>14 THEN GOTO E7

GOTO S8
E7:
NEXT a77
NEXT a75
NEXT a74
NEXT a73
NEXT a72
GOTO E6


S8:
FOR a81=1 TO 5
FOR a82=1 TO 5
FOR a84=1 TO 5
FOR a86=1 TO 5
FOR a88=1 TO 5
IF a81*a82*a84*a86*a88<>120 THEN GOTO E8 

IF a62+a72+a81+a82<>14 THEN GOTO E8
IF a67+a77+a86+a75<>8 THEN GOTO E8
IF a67+a68+a77+a88<>14 THEN GOTO E8
IF a72+a73+a74+a84+a82<>15 THEN GOTO E8
IF a74+a75+a86+a84<>6 THEN GOTO E8
IF a77+a86+a88<>8 THEN GOTO E8

IF a21*a31*a41*a51*a81<>120 THEN GOTO E8
IF a12*a22*a62*a72*a82<>120 THEN GOTO E8
IF a13*a33*a53*a63*a73<>120 THEN GOTO E8
IF a14*a34*a64*a74*a84<>120 THEN GOTO E8
IF a25*a35*a45*a55*a75<>120 THEN GOTO E8
IF a16*a26*a46*a56*a86<>120 THEN GOTO E8
IF a37*a47*a57*a67*a77<>120 THEN GOTO E8
IF a18*a28*a48*a68*a88<>120 THEN GOTO E8
GOTO S9
E8:
NEXT a88
NEXT a86
NEXT a84
NEXT a82
NEXT a81
GOTO E7
S9:

PRINT " ";a12;a13;a14;" ";a16;" ";a18
PRINT a21;a22;" ";" ";a25;a26;" ";a28
PRINT a31;" ";a33;a34;a35;" ";a37;" "
PRINT a41;" ";" ";" ";a45;a46;a47;a48
PRINT a51;" ";a53;" ";a55;a56;a57;" "
PRINT " ";a62;a63;a64;" ";" ";a67;a68
PRINT " ";a72;a73;a74;a75;" ";a77;" "
PRINT a81;a82;" ";a84;" ";a86;" ";a88

SLEEP


Symbroson - Do 13.12.18 00:31

Ich hab mir bei Tag 11 'Listen' der freien Felder für jede Zeile angelegt, die ich der Reihe nach permutiert und daran die Bedingungen geprüft habe. Diese beinhalten zum Einen die Summenfelder mit den Positionen der umgebenen (leeren) Felder und die Positionen sämtliche Paare die in einer Spalte untereinander liegen, um gleiche Zajlen in einer Spalte abzufangen.
Ich habe mir nicht die Arbeit gemacht das Eingabefeld zu parsen, sondern stattdessen die Bedingungen erst alle hardgecodet und dann nochmal für eine kompaktere Eingabe etwas zusammengefasst, jedoch der Einfachheit halber nur 5 Reihen berechnet, weil es da schon nur noch eine Lösung gab. Den rest hab ich einfach selber errechnet.
Bei mir dauern beide Varianten 2 bzw. 3 millisekunden mit der gegebenen Eingabe. Ich stelle beide Varianten + Eingabefeld in den Anhang

LG,
Symbroson

EEAK18112.c:

C++-Quelltext
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:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
#define ROWS 5
#define COLS 5
// schreibfauleit
#define DTOI(d) (d - '0'// digit to integer
#define P(i) DTOI(p[i])   // p(i) -> int
#define PPERM(y,x) perm[P(y)][P(x)]

const char
    // fields in same coloumn  "yxyx[,yxyx,..]"
    *cols[ROWS - 1] = {
        "0110,0313",                          // until row 2
        "1020,1222,1323,1424,0120,0323",      // until row 3
        "2234,2233,0030,1131,1232,1433,0434"// until row 4
        ""                                    // until row 5
    // sum with surroundig fields "<sum>:xyxy..[,<sum>:xyxy..]"
    }, *sums[ROWS - 1] = {
        "\x08:01021011,\x0f:02031213,\x0f:03041314"// until row 2
        "\x0a:00011020,\x11:0211122122,\x08:041424"// until row 3
        "\x09:102030,\x0d:1011202131,\x0a:14243334"// until row 4
        "\x0f:2030314041,\x13:212231324142,\x11:222324323343" // until row 5
        "\0"
    };


char perm[COLS][ROWS] = {"12345""12345""12345""12345""12345"};
int r = -1;

// check sums
int chksum() {
    const char *p = sums[r - 2];

    // c vom feinsten
    if(*p) do {
        int sum = *p;

        // subtract surr. fields from sum
        while(*(p += 2) && *p != ',')
            sum -= DTOI(PPERM(01));

        if(sum) return 1;
    } while(*++p);

    return 0;
}

// check coloumns
int chkcol() {
    const char *p = cols[r - 2];

    if(*p) do {
        if(PPERM(01) == PPERM(23)) return 1;
        p += 4;
    } while(*p++);

    return 0;
}

void permute(char *c, int n) {
    if (n == 0return test();

    if(r >= 2 && (chksum() || chkcol())) return;

    // permute algorithm
    permute(c, n - 1);
    for (int i = 0; i < n; i++) {
        swap(c, i, n);
        permute(c, n - 1);
        swap(c, i, n);
    }
}

void test() {
    if(++r < 5)
        permute(perm[r], COLS - 1);
    else if(!chksum()) {
        for(int i = 0; i < COLS; i++)
            printf("%.*s\n", ROWS, perm[i]);
        printf("\n");
    }
    r--;
}

int main() { test(); }

Ausgabe:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
$ gcc EEAK18112.c -o EEAK18112.out && time ./EEAK18112.out
42351
12345
34512
53412
31245

real  0m0.003s
user  0m0.000s
sys  0m0.003s


Eingabe:
Eingabe


BenBE - Do 13.12.18 00:37

Okay, da wir jetzt soweit sind, gibt's hier meine Lösung.

Da ich keine Lust hatte, das rekursiv mit allen Constraints selber zu implementieren, und mit Prolog eine Sprache existiert, die Constraints auf diskreten Integer-Problemen sehr gut lösen kann, ist meine Lösung in Prolog.

Nun hatte ich aber keine Lust, die ganzen Constraints per Hand zu schreiben, also musste ein Code-Generator her. An dieser Stelle kam ein kleines PHP-Script zum Einsatz:


PHP-Quelltext
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:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
<?php

$a = array(
    array(  0,  011,  015,  013,  0 ),
    array14,  0,  013,  0,  018,  0 ),
    array(  0,  012,  0,  022,  010 ),
    array(  0,  020,  015,  0,  0,  8 ),
    array11,  0,  0,  015,  021,  0 ),
    array(  615,  021,  0,  0,  0,  0 ),
    array(  015,  0,  0,  019,  015 ),
    array(  012,  019,  012,  0,  0 )
    );

echo "digit(1).\n";
echo "digit(2).\n";
echo "digit(3).\n";
echo "digit(4).\n";
echo "digit(5).\n";

echo "solve(...) :-\n";
for($r = 0$r < 8$r++) {
    for($c = 0$c < 8$c++) {
        if($a[$r][$c] == 0) {
            printf("digit(A%d%d),\n"$r$c);
        }
    }
}
for($r = 0$r < 8$r++) {
    for($c = 0$c < 8$c++) {
        if($a[$r][$c] != 0) {
            $d = array();
            for($dr = -1$dr <= 1$dr++) {
                for($dc = -1$dc <= 1$dc++) {
                    if($r + $dr >= 0 && $r + $dr < 8) {
                        if($c + $dc >= 0 && $c + $dc < 8) {
                            if(!$a[$r + $dr][$c + $dc]) {
                                $d[] = sprintf("A%d%d"$r + $dr$c + $dc);
                            }
                        }
                    }
                }
            }
            echo implode("+"$d) . " =:= " . $a[$r][$c] . ",\n";
        }
    }
}

for($r = 0$r < 8$r++) {
    $d = array();
    for($c = 0$c < 8$c++) {
        if(!$a[$r][$c]) {
            $d[] = sprintf("A%d%d"$r$c);
        }
    }
    echo "permutation([1,2,3,4,5],[" . implode(","$d) . "]),\n";
}
for($c = 0$c < 8$c++) {
    $d = array();
    for($r = 0$r < 8$r++) {
        if(!$a[$r][$c]) {
            $d[] = sprintf("A%d%d"$r$c);
        }
    }
    echo "permutation([1,2,3,4,5],[" . implode(","$d) . "]),\n";
}

echo "true.\n";


Die Ausgabe davon ist (in Reinform) erstmal nur sowas:

Quelltext
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:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
digit(1).
digit(2).
digit(3).
digit(4).
digit(5).
solve(...) :-
digit(A00),
digit(A01),
digit(A03),
digit(A05),
digit(A07),
digit(A11),
digit(A12),
digit(A14),
digit(A15),
digit(A17),
digit(A20),
digit(A21),
digit(A23),
digit(A24),
digit(A26),
digit(A30),
digit(A31),
digit(A33),
digit(A35),
digit(A36),
digit(A41),
digit(A42),
digit(A43),
digit(A45),
digit(A47),
digit(A52),
digit(A54),
digit(A55),
digit(A56),
digit(A57),
digit(A60),
digit(A62),
digit(A63),
digit(A64),
digit(A66),
digit(A70),
digit(A72),
digit(A74),
digit(A76),
digit(A77),
A01+A03+A11+A12 =:= 11,
A03+A05+A14+A15 =:= 15,
A05+A07+A15+A17 =:= 13,
A00+A01+A11+A20+A21 =:= 14,
A03+A12+A14+A23+A24 =:= 13,
A05+A07+A15+A17+A26 =:= 18,
A11+A12+A21+A23+A31+A33 =:= 12,
A14+A15+A24+A26+A35+A36 =:= 22,
A17+A26+A36 =:= 10,
A21+A23+A31+A33+A41+A42+A43 =:= 20,
A23+A24+A33+A35+A43+A45 =:= 15,
A26+A36+A47 =:= 8,
A30+A31+A41 =:= 11,
A33+A35+A43+A45+A54+A55 =:= 15,
A35+A36+A45+A47+A55+A56+A57 =:= 21,
A41+A60 =:= 6,
A41+A42+A52+A60+A62 =:= 15,
A42+A43+A52+A54+A62+A63+A64 =:= 21,
A52+A60+A62+A70+A72 =:= 15,
A54+A55+A56+A64+A66+A74+A76 =:= 19,
A56+A57+A66+A76+A77 =:= 15,
A60+A62+A70+A72 =:= 12,
A62+A63+A64+A72+A74 =:= 19,
A64+A66+A74+A76 =:= 12,
permutation([1,2,3,4,5],[A00,A01,A03,A05,A07]),
permutation([1,2,3,4,5],[A11,A12,A14,A15,A17]),
permutation([1,2,3,4,5],[A20,A21,A23,A24,A26]),
permutation([1,2,3,4,5],[A30,A31,A33,A35,A36]),
permutation([1,2,3,4,5],[A41,A42,A43,A45,A47]),
permutation([1,2,3,4,5],[A52,A54,A55,A56,A57]),
permutation([1,2,3,4,5],[A60,A62,A63,A64,A66]),
permutation([1,2,3,4,5],[A70,A72,A74,A76,A77]),
permutation([1,2,3,4,5],[A00,A20,A30,A60,A70]),
permutation([1,2,3,4,5],[A01,A11,A21,A31,A41]),
permutation([1,2,3,4,5],[A12,A42,A52,A62,A72]),
permutation([1,2,3,4,5],[A03,A23,A33,A43,A63]),
permutation([1,2,3,4,5],[A14,A24,A54,A64,A74]),
permutation([1,2,3,4,5],[A05,A15,A35,A45,A55]),
permutation([1,2,3,4,5],[A26,A36,A56,A66,A76]),
permutation([1,2,3,4,5],[A07,A17,A47,A57,A77]),
true.


Das funktioniert (abgesehen von der Aufruf-Zeile für solve) auch soweit, wäre aber extrem unperformant. Das kann man aber durch kurzes Umsortieren der Constraints stark beschleunigen:


Quelltext
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:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
digit(1).
digit(2).
digit(3).
digit(4).
digit(5).

solve(A00,A01,A03,A05,A07,A11,A12,A14,A15,A17,A20,A21,A23,A24,A26,A30,A31,A33,A35,A36,A41,A42,A43,A45,A47,A52,A54,A55,A56,A57,A60,A62,A63,A64,A66,A70,A72,A74,A76,A77) :-
digit(A00),
digit(A01),
digit(A03),
digit(A05),
digit(A07),
permutation([1,2,3,4,5],[A00,A01,A03,A05,A07]),
digit(A11),
digit(A12),
A01+A03+A11+A12 =:= 11,
digit(A14),
digit(A15),
A03+A05+A14+A15 =:= 15,
digit(A17),
permutation([1,2,3,4,5],[A11,A12,A14,A15,A17]),
A05+A07+A15+A17 =:= 13,
digit(A20),
digit(A21),
A00+A01+A11+A20+A21 =:= 14,
digit(A23),
digit(A24),
A03+A12+A14+A23+A24 =:= 13,
digit(A26),
permutation([1,2,3,4,5],[A20,A21,A23,A24,A26]),
A05+A07+A15+A17+A26 =:= 18,
digit(A30),
digit(A31),
digit(A33),
A11+A12+A21+A23+A31+A33 =:= 12,
digit(A35),
digit(A36),
permutation([1,2,3,4,5],[A30,A31,A33,A35,A36]),
A17+A26+A36 =:= 10,
A14+A15+A24+A26+A35+A36 =:= 22,
digit(A41),
A30+A31+A41 =:= 11,
digit(A42),
digit(A43),
A21+A23+A31+A33+A41+A42+A43 =:= 20,
digit(A45),
A23+A24+A33+A35+A43+A45 =:= 15,
digit(A47),
permutation([1,2,3,4,5],[A41,A42,A43,A45,A47]),
A26+A36+A47 =:= 8,
digit(A52),
digit(A54),
digit(A55),
A33+A35+A43+A45+A54+A55 =:= 15,
digit(A56),
digit(A57),
permutation([1,2,3,4,5],[A52,A54,A55,A56,A57]),
A35+A36+A45+A47+A55+A56+A57 =:= 21,
digit(A60),
A41+A60 =:= 6,
digit(A62),
A41+A42+A52+A60+A62 =:= 15,
digit(A63),
digit(A64),
A42+A43+A52+A54+A62+A63+A64 =:= 21,
digit(A66),
permutation([1,2,3,4,5],[A60,A62,A63,A64,A66]),
digit(A70),
digit(A72),
A52+A60+A62+A70+A72 =:= 15,
A60+A62+A70+A72 =:= 12,
digit(A74),
A62+A63+A64+A72+A74 =:= 19,
digit(A76),
A64+A66+A74+A76 =:= 12,
A54+A55+A56+A64+A66+A74+A76 =:= 19,
digit(A77),
permutation([1,2,3,4,5],[A70,A72,A74,A76,A77]),
A56+A57+A66+A76+A77 =:= 15,

permutation([1,2,3,4,5],[A00,A20,A30,A60,A70]),
permutation([1,2,3,4,5],[A01,A11,A21,A31,A41]),
permutation([1,2,3,4,5],[A12,A42,A52,A62,A72]),
permutation([1,2,3,4,5],[A03,A23,A33,A43,A63]),
permutation([1,2,3,4,5],[A14,A24,A54,A64,A74]),
permutation([1,2,3,4,5],[A05,A15,A35,A45,A55]),
permutation([1,2,3,4,5],[A26,A36,A56,A66,A76]),
permutation([1,2,3,4,5],[A07,A17,A47,A57,A77]),
true.


Die Regel zum Umsortieren ist, dass die Zeilen-Permutation direkt nach der letzten der Variablen-Instantiierung jeweils geprüft wird und die Summen-Bedingungen jeweils direkt nach der letzten dafür nötigen Variable aufgelöst/ausgewertet werden.

Die ersten 5 Zeilen sagen einfach nur den Fakt an, dass das Argument von digit die Werte 1 bis 5 annehmen kann.

Läd man diese leicht optimierte Datei in SWI Prolog, erhält man:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
$ swipl 
?- [solve].
true.

?- solve(A00,A01,A03,A05,A07,A11,A12,A14,A15,A17,A20,A21,A23,A24,A26,A30,A31,A33,A35,A36,A41,A42,A43,A45,A47,A52,A54,A55,A56,A57,A60,A62,A63,A64,A66,A70,A72,A74,A76,A77).
A00 = A11, A11 = A24, A24 = A36, A36 = A43, A43 = A55, A55 = A62, A62 = A77, A77 = 2,
A01 = A17, A17 = A20, A20 = A33, A33 = A45, A45 = A52, A52 = A66, A66 = A74, A74 = 3,
A03 = A15, A15 = A26, A26 = A30, A30 = A41, A41 = A57, A57 = A64, A64 = A72, A72 = 5,
A05 = A12, A12 = A23, A23 = A31, A31 = A47, A47 = A54, A54 = A60, A60 = A76, A76 = 1,
A07 = A14, A14 = A21, A21 = A35, A35 = A42, A42 = A56, A56 = A63, A63 = A70, A70 = 4 ;
false.

?-

Danach muss man die Lösung nur noch abtippen.

Ach ja: Dass die letzte Zeile in meinem Prolog-Skript true. lautet, ist übrigens Absicht. Damit wird der Code-Generator etwas übersichtlicher. :mrgreen:


pzktupel - Do 13.12.18 10:51

Hallo ,gibt es paar Hinweise zu heute ?

Was habe ich gemacht. Die Scheibe in ein Programm übertragen, aber es kommt nur Käse raus.

Deshalb paar Fragen:

Stimmt ein Buchstabe mit der Zurücksetzfunktion ?
Wird alternativ nach links und rechts gedreht ?
Ist der Positionswechsel konstant ?

Gruß


Symbroson - Do 13.12.18 11:51

user profile iconpzktupel hat folgendes geschrieben Zum zitierten Posting springen:
Hallo ,gibt es paar Hinweise zu heute ?

Was habe ich gemacht. Die Scheibe in ein Programm übertragen, aber es kommt nur Käse raus.

Hinweis 1: Vielleicht ist der Programmatische Weg ist nicht immer unbedingt der erste Schritt den man tun sollte :mahn:
Sicher ist das Programm ein Zweizeiler wenn man weiß wie es funktioniert, jedoch...

Hinweis 2: Die Ringe der Scheibe können mit der Maus gedreht werden ;)

Gruß zurück


Ralf Jansen - Fr 14.12.18 14:25

user profile iconGausi hat das Puzzle in 46 Sekunden gelöst. Ich bin schwer beeindruckt :shock:


Gausi - Fr 14.12.18 14:52

Tja, ich bin eben ein Meister-Puzzler. Ich habe sogar das legendäre Giraffen-Puzzle in weniger als drei Wochen gelöst, und zwar ganz ohne Video-Guide [https://www.youtube.com/watch?v=4c1qhCtpAa4]. :mrgreen:

(ggf. sag ich morgen was dazu, falls mir Steffen nicht zuvor kommt. Hab ihn schon angeschrieben deswegen. Das ist nämlich nicht so beeindruckend, wie es den Anschein hat. ;-))


Horst_H - Fr 14.12.18 14:53

Hallo,

meine Güte, kannte er das Bild?
Mir war es etwas zu wenig Platz auf der Fensterfläche und die Teile ließen sich leider nicht auf dem gesamten Bildschirm verteilen :-)
Dieser magnetische Effekt, wenn man an der richtigen Stelle mit einem Nachbarn ist, ist immer wieder toll.
Nächstes Jahr muss man die Teile wie bei Pentomino noch drehen und spiegeln, damit user profile iconpzktupel auch ausgelastet ist :D :duckweg:

Gruß Horst


Mathematiker - Fr 14.12.18 15:38

Hallo,
user profile iconGausi hat das Puzzle entsprechend den Möglichkeiten korrekt gelöst. Da ist keine Hexerei dabei.
Ich kann nur gratulieren! :beer:
In der Auflösung wird er es sicher erklären.

Die 12.Aufgabe muss nicht erklärt werden, da sie extrem einfach war.
Für die Kodierungsscheibe gibt es noch sehr viele offene Versuche. Irgendwann heute Nacht, werde ich es erklären.

Viel Spaß noch
Steffen


Delphi-Laie - Fr 14.12.18 20:38

user profile iconRalf Jansen hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconGausi hat das Puzzle in 46 Sekunden gelöst. Ich bin schwer beeindruckt :shock:


Das kommt mir wie Hexerei vor.

Man kann sich natürlich "vorbereiten". Das erste Mal fast bis zum Schluß lösen, die Teile "numerieren", und im nächsten Durchlauf den Turbogang einlegen. Vielleicht liegen die Teile anfangs auch immer an derselben (oder der gleichen) Stelle, was das ungmein erleichtern würde. Aber allein das Sichten und Schieben kostet soviel Zeit, daß weniger als eine Minute nicht realistisch erscheint.

Ich hätte noch einen Verbesserungsvorschlag für die Puzzles, wenn das genehm und nicht zu aufwendig zu implementieren ist: Daß die Einrastfunktion nicht nur existiert, wenn man die Teile (fast) an die richtige Position geschoben hat, sondern auch dann, wenn sich zwei - oder mehr - Teile außerhalb der korrekten Position gefunden haben. Wie im richtigen Puzzleleben eben. Damit ließen sich solche Teile dann allerdings auch nicht mehr voneinander trennen, sofern man die anderen angedockten Teile mit verschiebt, wenn man das mit nur einem Teile tut.

Gruß Delphi-Laie


pzktupel - Fr 14.12.18 20:53

Also 46s ist wirklich unmöglich, zumal man sich erstmal einen Überblick verschaffen muß. Irgendwas ist da passiert :-)
Vielleicht gibts schon ein Tool, das die Teile erkennt und händelt.

Auf die Lösung über die Codierscheibe bin ich wirklich gespannt, habe nichts erkennen können !!!


Mathematiker - Fr 14.12.18 21:09

Nochmals zu Gausis 46 Sekunden-Puzzle:
Es ist wie kurz vor der Bescherung :lol: . Man weiß einfach nicht, was man bekommt, und hier weiß man einfach nicht, wie so etwas möglich ist. :nixweiss:
Aber es gibt keine andere Möglichkeit als die Stunden bis zur Bescherung; bei uns die Auflösung :wink: , zu warten.

Aber dann: :think:

Andere Zeitzone, relativistische Zeitdilatation oder sogar eine Zeitreise sind es nicht.
Ich wiederhole mich: Es ist alles korrekt und viel banaler. :mahn:

LG Steffen


Hidden - Fr 14.12.18 22:14

user profile iconMathematiker: Bitte unbedingt einen Dialog zur Bestätigung bei "Ende" einbauen. (Also z.B. "Bist du sicher, dass du das Puzzle abbrechen willst?".)

Ich war so ziemlich fertig mit dem Puzzle; vermutlich noch 1 oder 2 Teile vertauschen, die ähnlich aussahen und die gleiche Form hatten. Da ich nichts mehr gesehen habe, wollte ich schauen ob es under Ende einen "Prüfen"-Dialog gibt. Das hat dann aber ungefragt das Puzzle geschlossen, jetzt bin ich wieder ganz am Anfang.^^


Mathematiker - Fr 14.12.18 23:05

Hallo,
Der letzte Versuch, die verschlüsselte Nachricht zu finden, ist beendet.
Wie immer muss man einfach etwas Glück haben, um eine Idee zum Decodieren zu finden.

Die kodierte Nachricht ist jmyluw7hleslu , also nur Kleinbuchstaben und die Ziffer 7. Kleinbuchstaben und die 7 sind auf der inneren Scheibe angebracht, d.h., die entschlüsselte Nachricht wird dann wahrscheinlich auf der äußeren Scheibe abgelesen.
Auf beiden Scheiben ist ein #.
Probiert man: Drehe das äußere # auf das j der kodierten Nachricht und lese beim inneren # auf der äußeren Scheibe ab, so bekommt man ein A. Dreht man wieder das äußere # auf den 2.Buchstaben m, kann man ein D ablesen usw.

Und genau so funktioniert es. :zustimm: Als Bestellung ergibt sich ADVENTSKERZEN.

Allen Mitspielern, die die Bestellung entschlüsseln konnten, ein besonderer Glückwunsch. 21 richtige Lösungen sind wirklich gut.

LG Steffen

Nachtrag:
user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconMathematiker: Bitte unbedingt einen Dialog zur Bestätigung bei "Ende" einbauen. (Also z.B. "Bist du sicher, dass du das Puzzle abbrechen willst?".)

Tut mir leid. Ich werde es berücksichtigen.


Gausi - Sa 15.12.18 00:15

Da ich bei der Scheibe zuerst das leicht gestörte "Happy New Year" vom letzten Mal gelesen habe, dann aber doch auf keinen grünen Zweig kam, fing ich das Programmieren an, was letztlich auch nichts gebracht hat. Aber nach der gefundenen Lösung hab ich dann das Programm doch noch angepasst:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
    S1 := 'MVLKZGHPDEYAONIQS4UBRTXJF#';
    S2 := Ansiuppercase('apnwerbk7zguqjclmoitshvyf#');
    crypt := Ansiuppercase('jmyluw7hleslu');
    plain := '';
    for i := 1 to length(crypt)  do
        plain := plain + S1[length(S1) - pos(crypt[i], S2)];
    Memo1.Lines.Add(plain);


Mir lag wegen der Betonung auf die Möglichkeit, die Scheiben zu drehen, ja zwischendurch ein Kommentar auf der Zunge wie
Zitat:
I'm not going to spin the disk. I'm going to solve it! #Dracarys #GreatQuiz

Aber ich war mir nicht sicher, ob die hier ja doch unüblichen Hashtags (also die #) ein zu großer Tipp gewesen wären. Habe es also gelassen. :angel:


pzktupel - Sa 15.12.18 01:30

Aha, ich konnte nun das Decodieren nachvollziehen. Zum Glück konnte ich das Lösungswort erraten.

Wer sich aber mit sowas auskennt, findet natürlich schneller einen Weg :)


Mathematiker - Sa 15.12.18 12:34

Hallo,
jetzt ist es möglich das Winter-Puzzle aufzulösen. Fast alle Versuche waren erfolgreich, die noch offenen sind beendet.
Wie kommt es nun zu der Weltrekord-Zeit von 46 Sekunden durch user profile iconGausi?

Eine Vorbemerkung: Bastelt man Rätsel, so sollte man diese ausführlich testen. Macht man es nicht genügend, so kommt so etwas wie das diesjährige "Licht aus" heraus. So einfach sollte es nicht sein. Zu wenig getestet. :cry:

Bei einem Spiel wie dem Winter-Puzzle kann man beim Testen natürlich nicht immer alles durchspielen, da es viel zu lange dauern würde; ebenso bei den "Lateinischen Summen" und bei ... und bei ... :wink:
Also baut man eine versteckte Funktion (Cheat) ein, die einem die Arbeit erleichtert. Nur sollte man diese am Ende auch wieder entfernen. :mrgreen: Und das habe ich vergessen. :nut:
Konkret: Klickt man ein Puzzle-Teil an und hält dabei die Shift- oder Strg-Taste gedrückt, springt das Teil wie durch Zauberhand an die richtige Stelle.
Und da Gausi vermutete, die Teile wären noch gedreht, hat er dies ausprobiert. (beim Pentomino musste man Strg festhalten und rechts klicken) Ich kann mir lebhaft vorstellen, dass er überrascht war.

Und das ist es schon. Also keine Zeitreise, sondern einer meiner Fehler.
Komischer Weise kann ich mich gar nicht darüber ärgern. Ich finde es lustig. :lol:

Bevor jetzt jemand in den verbleibenden Rätseln nach versteckten Funktionen sucht, so habe ich nachgesehen. Da ist nichts mehr, alles vor der Veröffentlichung entfernt. :rofl:

Viel Spaß weiterhin
Steffen


pzktupel - Sa 15.12.18 12:37

Ich glaubs nicht..nun habe ich einen Lachanfall bekommen :D


Hidden - Sa 15.12.18 13:17

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
vermutlich noch 1 oder 2 Teile vertauschen, die ähnlich aussahen und die gleiche Form hatten

Das führte bei mir zu etwas Kombinatorik :) a passt an b oder c, b passt an c, c passt an a. Als RegEx also b*cab*c, was zu drei verschiedenen Kombinationen führt. Davon dann jeweils 8 verschiedene Kombinationen, weil ich die Teile b/B, c/C und d/D nicht genug unterscheiden konnte.^^ (auf einem Teil ist eine Wolke, ich konnte aber aus dem Bild nicht genau genug einschätzen auf der wie-vielten Position im Raster die dann landen muss.

puzzle_kombinatorik

Witzigerweise war nachdem ich mir das alles überlegt hatte gleich die erste Kombination, die ich probierte, erfolgreich :rofl:

(Das soll keine Kritik am Puzzle sein weil die Teile nicht unterscheidbar waren, es war in dem Fall sogar interessanter.)


Symbroson - Sa 15.12.18 14:03

@Mathematiker: Nächstes Mal einfach eine nicht so leicht zu findende Cheat-Funktion einbauen ;)
Vor allem wenn man genau dieselbe Funktion in anderen Teilprogrammen verwenden soll/muss ist das ein quasi unvermeidbares Ereignis bei einer gewissen Anzahl an Benutzern


Mathematiker - Sa 15.12.18 18:22

user profile iconSymbroson hat folgendes geschrieben Zum zitierten Posting springen:
Vor allem wenn man genau dieselbe Funktion in anderen Teilprogrammen verwenden soll/muss ist das ein quasi unvermeidbares Ereignis bei einer gewissen Anzahl an Benutzern

Es geht aber nicht anders. :hair:
Ich bin so alt, dass ich mir nur mit Mühe höchstens eine solche Funktion merken kann. :bawling: :bawling: :bawling: :bawling: Selbst aufschreiben hilft nicht, da ich dann nicht weiß, wo der Zettel ist. :cry: :cry:

LG Steffen


Symbroson - Sa 15.12.18 18:27

Gibt es nicht irgendeine Computerspezifische ID die man in Delphi auslesen und deren Hash man mit deinem eigenem abgleichen kann, sodass von Haus aus nur eine bestimmte Liste von Geräten auf diese Funktion Zugriff hat?


Delphi-Laie - Sa 15.12.18 22:42

user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:
Und genau so funktioniert es.


Beruhigt stelle ich fest, daß es richtig war, sich nicht daran zu verbeißen: Ich hatte mal wieder nicht den Hauch einer Chance. Verschlüsselungen haben so unendlich viele Freiheitsgrade, daß ich immer wieder über die Naturtalente erstaunt bin, die sie zu knacken imstande sind.

Aber mal eine Frage: Ist dieses Weiterdrehen im weitesten Sinne der Enigma angelehnt? Mir ist bekannt, daß nach jeder Buchstabenverschlüsselung die betreffende Walzen weitergedreht wurde, um welchen Betrag (fest / variabel), ist mir unbekannt. Geht ja auch nicht anders, ansonsten hätte die Verschlüsselung nur "antikes Niveau" (Caesar-Verschlüsselung).

Gruß Delphi-Laie


Mathematiker - Sa 15.12.18 22:48

Hallo,
user profile iconDelphi-Laie hat folgendes geschrieben Zum zitierten Posting springen:
Aber mal eine Frage: Ist dieses Weiterdrehen im weitesten Sinne der Enigma angelehnt? Mir ist bekannt, daß nach jeder Buchstabenverschlüsselung die betreffende Walzen weitergedreht wurde, um welchen Betrag (fest / variabel), ist mir unbekannt.

Meine Seite https://mathematikalpha.de/enigma ist zwar nicht besonders aussagekräftig, da gibt es bessere im WWW, aber die Stärke der Enigma lag vor allem an der Vielzahl von Einstellmöglichkeiten der Walzen, des Steckerbrets und der Umkehrwalze.

LG Steffen


BenBE - So 16.12.18 00:07

user profile iconDelphi-Laie hat folgendes geschrieben Zum zitierten Posting springen:
Geht ja auch nicht anders, ansonsten hätte die Verschlüsselung nur "antikes Niveau" (Caesar-Verschlüsselung).

Hatte sie doch auch. ;-)

Naja, so fast ... :mrgreen: [https://de.wikipedia.org/wiki/Chiffrierscheibe]

Wobei alles an Kryptographie bis zum zweiten Weltkrieg ist mit mehr oder weniger Aufwand noch per Hand lösbar; wobei ADFGVX [https://de.wikipedia.org/wiki/ADFGX#ADFGVX] per Hand schon etwas nervig wird ...


BenBE - So 16.12.18 02:25

Hmmm, wenn man von Hand schneller ist, als sein Lösungsprogramm ...


pzktupel - So 16.12.18 09:38

Gruß in die Runde und schönen Start in den 3. Advent ! :wave:


Sinspin - So 16.12.18 10:34

Is mir klar, total OT aber es muss sein!
user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:
Es geht aber nicht anders. :hair:
Ich bin so alt, dass ich mir nur mit Mühe höchstens eine solche Funktion merken kann. :bawling: :bawling: :bawling: :bawling: Selbst aufschreiben hilft nicht, da ich dann nicht weiß, wo der Zettel ist. :cry: :cry:

Ganz ehrlich, das glaube ich Dir nicht! :?!?:
Was soll das überhaupt? Was hat es mit deinem Alter zu tuen? Maximal mit dem Alter deines Körpers. Aber sebst dann, Du bist Mathematik alpha! Du kannst dir alles merken, und zwar doppelt. :flehan: :flehan:

Ich erreiche in knapp zwei Monaten ein Alter in dem meine Kinder (so ich welche hätte) zu mir sagen würden, "Feier du mal schön deinen Geburtstag, aber wir wollen uns mit Freuden treffen und bräuchten ein bisschen Taschengeld. Sieh es einfach als unser Geschenk an, dass wir euch in Ruhe lassen wenn ihr über eine bessere Welt quatschen wollt. Für uns ist die beste Welt die, wo man nichts für sein Taschengeld tuen muss."

Selbst wenn ich eines fernen Tages das doppelte Alter erreichen werde, werd ich mich niemals als "alt" bezeichnen. Vieleicht meinen Körper.


pzktupel - So 16.12.18 10:42

@Sinspin: Ich verstehe Mathematiker schon wie es gemeint war. Es war einfach nur eine übertriebende Selbstabwertung nach außen....wissentlich, das dies sowieso nicht der Fall ist. Quasi ein Späßchen.


Mathematiker - So 16.12.18 23:35

Hallo,
für die gestrige und heutige Aufgabe gibt es nicht viel zu sagen. Wer es versucht, hat es auch fast immer gelöst.
Besonders anspruchsvoll waren beide Aufgaben nicht.

Für Morgen: Wer ein Instrument spielen kann ist klar im Vorteil. :wink: Ansonsten kann ich nur sagen: Clever raten.
Mittlerweile haben wir 16 Aufgaben geschafft, d.h. 2/3. Bisher lief alles gut. :angel:
Ich hoffe, dass es keine zu großen Probleme gab.

Auf zu den letzten 8 Rätseln! :wave:
Steffen


BenBE - So 16.12.18 23:41

Bin ja mal gespannt, wie viele am Ende alle Aufgaben gelöst bekommen haben werden.


Mathematiker - Mo 17.12.18 11:11

Hmm, meine diesjährige (Scherz)Frage (ohne Informatik, Mathe, usw.), zum Punktsammeln :wink: , ist doch ganz einfach.
Dieses Weihnachtslied hat jeder sicher schon letztes Weihnachten gehört, auch wenn er es vielleicht nicht mag.
Ich schon. :lol:

LG Steffen


Gausi - Mo 17.12.18 15:25

Ich muss sagen: Das Lieder-Rätsel hat mir jetzt nicht so gut gefallen. Das ist halt so gar nicht mein Gebiet. Ich kann nämlich so gut singen, dass ich immer alle Noten treffe - auch die, die im Lied gar nicht vorkommen. :P

Das hier zu lösen war dann eher Frust als Rätselspaß bei mir. Daher Glückwunsch an alle, die das nach ein paar Minuten raushatten. :zustimm:

Und um etwas Informatik reinzubringen: Typisches NP-Problem. Leicht zu verifizieren, schwierig zu lösen. :zwinker: (Ja, ich weiß, das ist nicht "wirklich" NP, weil es auch deterministisch polynomiell lösbar ist, aber trotzdem. :mrgreen:)


Mathematiker - Mo 17.12.18 18:12

Ok, so war es nicht gedacht.
Offensichtlich hat diese Frage viel mehr Probleme bereitet, als ich gedacht habe.

LG Steffen


Horst_H - Mo 17.12.18 18:58

Hallo,

@user profile iconMathematiker Deine Tipps sind ja schon sorgloses Geflüster.
Ich kann ja nicht mal den Taktklopfen.Villeicht kann Michael helfen.
Lass uns rausgehen,

Gruß Horst


Gausi - Mo 17.12.18 19:42

Ach, mach dir jetzt aber keinen Kopp deswegen. Dass jeder mit allen Rätseln 100%ig glücklich wird, ist ja eh utopisch. Und ein guter Teil des Frusts war bei mir auch technisch bedingt. Die Handy-App zum Einscannen der Noten funktionierte nicht und das Notensatz-Abspielprogramm für Windows war für mich alles andere als intuitiv bedienbar ... Bei einer bekannten Melodie kann ich mich zwar an den Noten orientieren, aber im Kopf aus Noten eine erstmal unbekannte Melodie zusammensetzen, das kann ich einfach nicht.

Aber ich musste auch an diesem Tag meinen Frust nicht an jemand Besonderen geben, um mich vor Tränen zu retten. So schlimm war es dann auch nicht. :zwinker:

Es haben ja durchaus auch einige sehr schnell geschafft. Passt also alles. :zustimm:


Symbroson - Di 18.12.18 00:32

Es reicht eigentlich mal einige Weihmachtslieder vorzusummen oder es sich zu denken wenn man so garnicht summen kann und die Notenabfolge mit der aus dem Rätsel zu vergleichen. ;)


Blawen - Di 18.12.18 01:13

user profile iconSymbroson hat folgendes geschrieben Zum zitierten Posting springen:
Es reicht eigentlich mal einige Weihmachtslieder vorzusummen oder es sich zu denken wenn man so garnicht summen kann und die Notenabfolge mit der aus dem Rätsel zu vergleichen. ;)
Da ich absolut unmusikalisch bin, habe ich zuerst meine bessere Hälfte gefragt. Da sie es nicht wirklich erkannte, habe ich kurzerhand Google gefüttert - Google war schneller ;-)


Symbroson - Di 18.12.18 01:24

user profile iconNarses hat folgendes geschrieben Zum zitierten Posting springen:
Bei den etwas kniffligeren Problemen kann eventuell ein kleines Programm bei der Lösung helfen.

Also ich weiß ja nicht so recht ob Google in diese Kategorie einzuordnen ist :roll:


Mathematiker - Di 18.12.18 21:14

Hallo,
der letzte Versuch zum Weihnachtslied wurde gerade erfolgreich beendet.
Das gesuchte Lied ist natürlich "Last Christmas". https://www.youtube.com/watch?v=E8gmARGvPlI

LG Steffen


Blawen - Mi 19.12.18 00:48

user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:
Hallo,
der letzte Versuch zum Weihnachtslied wurde gerade erfolgreich beendet.
Das gesuchte Lied ist natürlich "Last Christmas". https://www.youtube.com/watch?v=E8gmARGvPlI

LG Steffen
Bei Google hat es gereicht nach "Noten" und "Weichnachtslieder" zu suchen https://www.google.com/search?q=noten+weihnachtslieder&tbm=isch&tbo=u&source=univ&sa=X&ved=2ahUKEwjArbW8uqrfAhVsx4UKHSL_AvwQsAR6BAgEEAE&biw=1920&bih=976. Schon beim 4. Bild wirds verdächtig ;-)


Delphi-Laie - Mi 19.12.18 01:29

user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:
Dieses Weihnachtslied hat jeder sicher schon letztes Weihnachten gehört, auch wenn er es vielleicht nicht mag.


Das reichte als entscheidender Wink mit dem Zaunpfahle (danke!), da mein bescheidenes Ab-/Nachspielen zunächst keine mir bekannte Melodie erklingen ließ. Erst, als ich etwas ahnte, kam die akustische Erkenntnis. Auf dieses Lied wäre ich zuallerletzt gekommen, denn besagtes Lied trifft zwar meinen Geschmack mit der Maßzahl 0, eher -1 oder gar -∞, aber die Rätselidee war überraschend und gefiel mir!


BenBE - Mi 19.12.18 16:38

user profile iconDelphi-Laie hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:
Dieses Weihnachtslied hat jeder sicher schon letztes Weihnachten gehört, auch wenn er es vielleicht nicht mag.


Das reichte als entscheidender Wink mit dem Zaunpfahle (danke!),

Zaunpfahl? Das war ne ganze Gartenanalge, mit der da gewunken wurde!

Genauso:
user profile iconGausi hat folgendes geschrieben Zum zitierten Posting springen:
Aber ich musste auch an diesem Tag meinen Frust nicht an jemand Besonderen geben, um mich vor Tränen zu retten. So schlimm war es dann auch nicht. :zwinker:

Das war ja jetzt auch nicht gerade subtil ... :mrgreen:

Naja: Zu heute kann ich nur sagen, es hilft ungemein, wenn man richtig UND das Richtige rechnet ;-)


Gausi - Mi 19.12.18 16:43

Merke: Wenn in der Statistik bisher nur wenige richtige Lösungen sind, und alle mit mehr als nur ein paar Minuten Lösungsdauer, dann ist es für eine gute Zeit ungünstig, wenn man 10 Minuten vor der Weihnachtsfeier damit anfängt. :lol:

Typisches Mathelehrer-Rätsel, würde ich sagen :mrgreen:. (Beim ersten Versuch habe ich einfach in der Endabrechnung eine Kleinigkeit vergessen. Lösungsweg/-idee war aber richtig.)


pzktupel - Mi 19.12.18 19:15

....ist geklärt.


Delphi-Laie - Do 20.12.18 03:53

user profile iconGausi hat folgendes geschrieben Zum zitierten Posting springen:
Typisches Mathelehrer-Rätsel, würde ich sagen :mrgreen:


Nun, das ist wohl eher etwas für die Physik-Leistungskurse, aber nicht Normalunterricht. Ohne jetzt geringschätzig sein zu wollen, aber der Masse der Abiturienten traue ich nicht zu, dieses Rätsel zu lösen (wäre schön, wenn ich da falsch läge). Wäre fein, wenn Mathematiker sich kurz dazu äußern könnte, wo dieses Niveau tatsächlich angesiedelt ist. Ich kann mich jedenfalls noch an einen "Hilfeschrei" auf einer Internet-Hausaufgabenseite in den 90ern mit einer "unlösbaren" Hausaufgabe im Mathematik-Leistungskurs erinnern. Meine Güte, die Aufgabe war sogar mit darüberhinausgehenden Mathematikkenntnissen eine ziemliche Herausforderung!

Dieses war von den von mir gelösten Rätseln das bisher hartnäckigste, aber auch großartigste, Kompliment und Dank für diese Aufgabe! Im nachhinein grämt es mich, das erst beim erneuten Durchdenken vor dem Einschlafen gelöst zu haben (wozu ist die Nacht sonst da?), weil mir die dahinterstehende Mathematik / Rechnerei eigentlich seit langem bekannt ist.


pzktupel - Do 20.12.18 07:36

Rätsel 20:

Sagt mal, wer hat auch nach langem spielen mit dem Puzzle den Eindruck, er sähe alle in extra fetter Schrift und stärkerem Kontrast alles auf dem Bildschirm danach ??? (1-2 min hält dies an)


Gausi - Do 20.12.18 09:25

user profile iconDelphi-Laie hat folgendes geschrieben Zum zitierten Posting springen:
Nun, das ist wohl eher etwas für die Physik-Leistungskurse, aber nicht Normalunterricht.

Es war sicherlich nicht trivial, aber ich bin auf meinem Lösungsweg mit NRW-Mittelstufen-Mathematik ausgekommen. :zwinker:

Falls meine recht einfache Lösung von der "offiziellen" abweicht, werde ich die natürlich posten. Aber ich glaube, dass ich das so gemacht habe, wie es gedacht war. :D


BenBE - Do 20.12.18 15:19

Also ich hab mich primär mehrfach verrechnet, bzw. mich beim Umrechnen der Zeit etwas vertan und hatte daher sinnfreie Ergebnisse. Ansonsten war die Aufgabe aber Physik 6. Klasse problemlos machbar mit der richtigen Idee. Mehr dazu, sobald alle fertig sind mit Verzweifeln am Lösen der Aufgabe. :mrgreen:


Gausi - Do 20.12.18 16:23

Ich bin ja mal wirklich auf die unterschiedlichen Lösungswege gespannt. Denn wirklich "Physik" hab ich bei mir auch nicht drin. :lol:


Mathematiker - Do 20.12.18 18:24

Hallo,
da die Spannung offensichtlich steigt jetzt nur so viel: gegen 21.30 Uhr löse ich das Transport-Rätsel auf.

LG Steffen


Delphi-Laie - Do 20.12.18 20:27

user profile iconGausi hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconDelphi-Laie hat folgendes geschrieben Zum zitierten Posting springen:
Nun, das ist wohl eher etwas für die Physik-Leistungskurse, aber nicht Normalunterricht.

Es war sicherlich nicht trivial, aber ich bin auf meinem Lösungsweg mit NRW-Mittelstufen-Mathematik ausgekommen. :zwinker:


Das erfordert keinesfalls höhere Mathematik (womit ich wohl hoffentlich nicht zuviel verraten habe), lieber Gausi. Gut, ich werde dann etwas deutlicher: Es ist nicht der mathematische, sondern der intellektuelle Anspruch, den (nicht nur) diese Aufgabe an uns stellt (stellen). Das ist es, was ich etliche Beiträge vorher schrieb: Aus den "Schölern" intellektuell das herausholen, was mit deren Wissen möglich ist, kennzeichnet einen guten Lehrer, einen, der seinen Beruf als Berufung empfindet und auslebt. Und einen guten Schüler, sich einer solchen Herausforderung gewillt, im Idealsfalle sogar mit Freude und Enthusiasmus zu stellen.

Man muß eben nicht studiert haben, um gute Leistungen zu erbringen. Etliche, teilweise erstklassige Mathematiker waren, als das Studium noch nicht so verbreitet war, sogar Autodidakten.


BenBE - Do 20.12.18 20:34

Die Aufgabe wird sicherlich gut gefiltert haben …


Narses - Do 20.12.18 21:11

Was ist "filgern"? :gruebel: ;)


pzktupel - Do 20.12.18 21:12

Zu R19:
Leider habe ich die Aufgabe verbockt, da 3 Versuche als Limit.
Wer nicht den Weg findet, hatte Pech. Dennoch werde ich später einen Lösungsweg vorstellen, der das richtige Ergebnis liefert. Ich fand die Aufgabe insofern persönlich knifflig, da ich mal wieder die Aufgabenstellung nicht sofort schnallte. Nicht die Zeitspanne von einem Transporter von Start-A und Start-B war gefordert, sondern 2 aufeinander kommende.
Ein 6 Klassenschüler wird dies allgemein NICHT lösen können.
____________________________________________________________


Horst_H - Do 20.12.18 21:52

Hallo,

für heute, Rätsel 20, habe ich nur 800 Lösungen gefunden.
Davon sind ja einige kongruent, durch Drehung oder Spiegelung ineinander überführbar.

Gruß Horst
P.S.
Filgern kommt kaffeefilgern, einer besonderen Art der Zubereitung kalten Kaffees, mjam-mjam.
Oder waren es die Filger-Väter,die mit dem Truthahn.


Schestex - Do 20.12.18 22:16

Auf Arbeit plagte mich heute nur ein Gedanke, wie kommt man auf ein sinnvolles Ergebnis.
Nach 4h Qual und einem sinnvollen Ansatz, konnte ich beruhigt rechnen und das Rätsel absolvieren!

Bei der Rechenaufgabe darf man einfach nicht Runden ;)


Mathematiker - Do 20.12.18 22:35

Hallo,
gerade eben ist der letzte Versuch beendet. Nun die Auflösung der Aufgabe mit Mariana und den Geschenketransportern.
Ich gebe zwei nicht besonders elegante Lösungen. Es gibt eine viel schönere, die wahrscheinlich user profile iconOrakel_von_Delphi vorstellen wird.

Lösung 1:
t sei der konstante Zeitabstand zwischen zwei Transportern.
Durch Marianas Fahrt zum Nordpol, gegen die Fahrtrichtung der Transporter, wird eine Zeit von t – 18 min gewonnen. Dieser
Zeitgewinn verteilt sich gleichmäßig auf die 18 min, bis die nächste Begegnung stattfindet.
In Richtung Nordpol werden 22 – t min verloren, was sich jetzt auf die 22 min bis zur nächsten Begegnung (Mariana wird eingeholt) verteilt.
Es muss der Zeitverlust etwas größer sein als der Zeitgewinn, da die Fahrt mit dem Rentierschlitten Richtung Nordpol bis zum nächsten Treff länger dauert als gegen die Fahrtrichtung der Transporter.
Die Werte des Zeitgewinns und des Zeitverlustes sind jetzt auf jeweils 1 min zu normieren, d.h.
\frac{t-18}{18}=\frac{22-t}{22}

22t-396=396-18t

40t=792

t=19,8 min = 19 min 48 s = 1188 s.

Das ist der Zeitabstand, in dem die Transporter regelmäßig fahren.

Lösung 2:
Die Relativgeschwindigkeiten von Mariana und Transporter v_t - v_m und v_t + v_m , wobei v_t die Transportergeschwindigkeit und v_m Marianas Geschwindigkeit sind, verhalten sich wie die 18 min zu den 22 min, allerdings indirekt proporttional, d.h. höhere Geschwindigkeit -> kleinere Zeit.
Das ergibt
\frac{v_t - v_m}{v_t + v_m}=\frac{18}{22}

22\cdot (v_t - v_m) = 18 \cdot (v_t + v_m)

10 v_m = v_t

Die Strecke, die zwischen zwei Treffen in Richtung Nordpol aller 18 min zurückgelegt wird, ergibt sich aus v_t und einem Zehntel v_t (Marianas Geschwindigkeit) zusammen. Der Transporter allein würde also ein Zehntel mehr als 18 min benötigen, d.h., die Abstände zwischen den Transportern ist
1.1\cdot 18 min = 19,8 min.

Viel Spaß weiterhin und ich hoffe auf viele interessante Lösungsvorschläge :wink:
LG Steffen

@pkztupel: Danke für den Hinweis auf den Schreibfehler.


Symbroson - Do 20.12.18 22:35

Also meiner Meinung nach ist das eine Aufgabe für die 8. Klasse. Die Vorüberlegungen sind ja nun nicht allzu schwer:

Zum Verständis: Marianas Geschwindigkeit ist v1 (v1 > 0), die der anderen Wagen v2. Der Abstand zweier Schlitten ist d in Längeneinheiten (LE).

Der Ansatz besteht im Wesentlichen aus dieser Formel:
s = v * t + s0

Die entgegenkommenden Schlitten (v = -v2) sind zu t0 genau d[LE] vor Mariana (s0 = +d).
Nach 18min befinden sich Mariana und der Schlitten am gleichen Ort:
v1 * 18min + 0LE = -v2 * 18min + d

Die überholenden Schlitten (v = +v2) befinden sich zu t0 d[LE] hinter Mariana (s0 = -d) und treffen nach 22min auf sie:
v1 * 22min + 0LE = +v2 * 22min - d

Für Marianas Geschwindigkeit nehmen wir einen beliebigen Wert v1 (v1 ≠ 0) an, zB. 1[LE/min]
dann stellen wir das Gleichungssystem auf:

Quelltext
1:
2:
3:
4:
5:
18[min] * -v2 + d = 18[min] * v1
22[min] * +v2 - d = 22[min] * v1

-18 * v2 + d = 18
+22 * v2 - d = 22

ergibt:

Quelltext
1:
2:
 d = 198[LE]
v2 =  10[LE/min]

Die Zeit ergibt sich nun folgendermaßen:

Quelltext
1:
t = s / v = 60[s] * 198[LE] / 10[LE/min] = 1188[s]                    


pzktupel - Do 20.12.18 22:37

Auflösung R19:

Mariana kommt alle 18min einer entgegen und alle 22min wird sie eingeholt.
Alle 198min sind 3 auf einer Linie, dabei kommen ihr 11 entgegen und 9 holen sie ein.
Es sind 20 Transporter im "Umlauf". Da die Frage nach der Zeit war, wann die Transporter
nach und nach wieder starten, käme man auf 198min*60s/10=1188s.
10 auf jeder Seite befindlich.

Leider verbaddelt... :cry:


Schestex - Do 20.12.18 22:57

Okay, habe da einen total anderen Ansatz als ihr.

18min | 22min | Differenz = 4min


Quelltext
1:
2:
3:
4:
5:
6:
 22/18 = 11/9 = (1,222.....)
18min + x = 22min - 11/9x
x = 4min - 11/9x
20/9x= 4min
x = 1,8 min
18min + 1,8min = 1188s


Delphi-Laie - Do 20.12.18 23:44

Ich werfe einfach mal das harmonische Mittel in die Runde. Damit ging die Berechnung am schnellsten. Mittelwert zweier Geschwindigkeiten / Quotienten mit gleichem Zähler, der Strecke, aber ungleichen Nennern, der Zeit. Da darf man nicht das arithmetische Mittel verwenden; dafür ist das harmonische da!


Gausi - Fr 21.12.18 00:48

Ich habe das gewissermaßen grafisch über ein s-t-Diagramm gelöst.
rätsel19
Zum Zeitpunkt t=0 trifft Mariana (rot) an Stelle s=0 sowohl den entgegenkommenden, als auch den überholenden Transporter (gestrichelte Geraden) (gilt ohne Beschränkung der Allgmeinheit). Wenn die gesuchte Zeitspanne vorbei ist, treffen sich die beiden Transporter wieder bei s=0 (blaue Geraden). In der Grafik findet man dann zwei kongruente Dreiecke, und darüber ein einfaches Gleichungssystem mit zwei Unbekannten.


Delphi-Laie - Fr 21.12.18 01:01

user profile iconSymbroson hat folgendes geschrieben Zum zitierten Posting springen:
Also meiner Meinung nach ist das eine Aufgabe für die 8. Klasse.


Die vergleichsweise bescheidene Anzahl an Lösungen spricht eine deutlich andere Sprache! Und das Gros der Teilnehmer dürfte dem Schulalter schon mehr oder weniger entwachsen sein. Deswegen witterte ich sehr schnell mindestens Leistungskursniveau. Ergo: Wenn das so "hammer-easy" (gewesen) wäre, hätten wir deutlich mehr Lösungen.

Bevor ich das Rätsel aufschlug, sah ich in die Lösungsstatistik, war ernüchtert und rechnete schon mit der nächsten Entschlüsselungsaufgabe.


BenBE - Fr 21.12.18 02:19

Also ich hab die Aufgabe mit den Transportern basierend auf deren Position gelöst, bzw. wie viel Strecke die Transporter jeweils fahren mussten.

Hierbei sei v_L die Geschwindigkeit der Laster und v_M Mariana's Geschwindigkeit.

In der Zeit t zwischen zwei Abfahrenden Lastern legen diese eine Strecke von s_L = v_L * t zurück.

Wenn Mariana also gerade einem entgegenkommenden Laster begegnet, so wird die nächste Begegnung 18 Minuten später nach einer Strecke s_1 = v_M * 1080 sein. Dies entspricht aber auch der Position des entgegenkommenden Lasters, der gerade an s_L vorbeifährt. aus dessen Sicht findet die Begegnung an s_1 = s_L - v_L * 1080 statt. Ui, wir können gleichsetzen.

Nun zur zweiten Angabe in dieser Aufgabe: Wenn Mariana gerade überholt wurde, so findet die nächste Überholung nach 22 Minuten statt. Da zum Startzeitpunkt der Betrachtung Mariana genau eine Laster-Interval-Länge voraus ist, leitet sich analog den vorigen Überlegungen die Gleichung s_2 = s_L + v_M * 1320 = v_L * 1320 ab.

Yay, wir haben ein lineares Gleichungssystem aus zwei Gleichungen und drei Unbekannten.

Ignorieren wir die Orte s_1, sowie s_2 und stellen die zweite Gleichung nach v_M um, so können wir diese in die erste einsetzen. Das eliminiert eine Gleichung und eine Unbekannte. Diese teilen wir (o.B.d.A.) durch v_L (was valide ist, da sich sowohl Mariana als auch die Laster bewegen*) und erhalten eine einzelne Gleichung mit einer Unbekannten t die nach Vereinfachung t = 1188 lautet.

q.e.d.

Konvertieren von Einheiten ist Physik 5. Klasse; Überholen/Begegnung von Objekten ist Physik 6. Klasse. Lineare Gleichungssysteme lösen IIRC auch.
Für die eingesetzte Gleichung im letzten Schritt kommen zwar Zahlen größer 9000 vor, da für diese aber die Faktorisierung bekannt ist, lassen sich diese sehr schön kürzen.

Die Aufgabe wird übrigens deutlich einfacher, wenn man 22 Minuten als 1320 Sekunden umrechnet und nicht halb müde versehentlich die gesamten Gleichungen mit 1440 Sekunden versucht zu lösen. Das hat mich knapp ne Stunde zurückgeworfen.

* Ceci n'est pas une Xeno's Paradox.


Schestex - Fr 21.12.18 10:19

In der heutigen Aufgabe wurde der Text nicht angepasst ;)

Die fette Schrift über dem Spielbereich, passt nicht zur Sprungreihenfolge im Aufgabentext.
Wo waren da die Wichtel wieder?


Mathematiker - Fr 21.12.18 10:22

user profile iconSchestex hat folgendes geschrieben Zum zitierten Posting springen:
In der heutigen Aufgabe wurde der Text nicht angepasst ;)

Der linke Text ist nur eine allgemeine Erklärung des Spielprinzips.

LG Steffen


Schestex - Fr 21.12.18 11:35

Das ist heute wieder richtig tricky, wieviele Lösungen gibt es in diesem Fall?
Mehr als eine?


Gausi - Fr 21.12.18 14:35

Joah, so ein Rätsel ohne "Undo"-Funktion kann schon mal frusten. Also wieder ein Lösungsprogramm geschrieben. :lol:


Schestex - Fr 21.12.18 15:20

user profile iconGausi hat folgendes geschrieben Zum zitierten Posting springen:
Joah, so ein Rätsel ohne "Undo"-Funktion kann schon mal frusten. Also wieder ein Lösungsprogramm geschrieben. :lol:


Ich komme mir so blind vor, das glaubst du nicht!


Delphi-Laie - Fr 21.12.18 18:04

user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:
Nun die Auflösung der Aufgabe mit Mariana und den Geschenketransportern.
Ich gebe zwei nicht besonders elegante Lösungen. Es gibt eine viel schönere, die wahrscheinlich user profile iconOrakel_von_Delphi vorstellen wird.


Hm, ob die noch kommt - von Orakel_von_Delphi oder wem sonst?


Orakel_von_Delphi - Fr 21.12.18 18:17

Mein Lösungsweg stimmt mit dem von pzktupel überein. Da er diesen bereits veröffentlicht hatte, verzichtete ich auf eine Wiederholung.


Hidden - Fr 21.12.18 19:19

Zu Marinas Geschenketransportern:

d: Abstand zwischen zwei Transportern
v: Geschwindigkeit der Transporter
k: Geschwindigkeit von Marinas Schlitten

Die Zeit zwischen zwei Transportern ist deren Abstand, geteilt durch die Relativ-Geschwindigkeit zu Marinas Schlitten.
Damit habe ich die Aufgabenstellung in dieses Gleichungssystem übersetzt:
d / (v + k) = 18,


d / (v - k) = 22,


d / v = \quad?\quad\text{(gesucht)}


Umstellen nach dem Nenner der linken Seite liefert:
v + k = d/18,

v - k = d/22


Addieren der Gleichungen liefert die Geschwindigkeit des Transporters,
v = (v+k + v-k) / 2 = d/36 + d/44


Und damit die gesuchte Größe
d/v = d / (d/36 + d/44) = 1 / (1/36 + 1/44) = (36*44) / (44 + 36) = (36*44) / 80 = (9*11) / 5


Da die Zeiten in Minuten angegeben waren, aber die Antwort in Sekunden gegeben werden soll, muss umgerechnet werden:
60 * (9*11) / 5 = 9 * 11 * 12 = 1188


Mathematiker - Fr 21.12.18 22:21

Hallo,
hier eine mögliche Lösung zum Tetraden-Puzzle
tetrade08

Das Bild, aber vor allem die Idee zu diesem Spiel stammt von http://www.mathematische-basteleien.de/tetrade.htm .
Dort wird noch etwas mehr zum Thema gesagt.

Ein wichtiger Hinweis für morgen: Wenn ihr das Rätsel startet, wird eine Nachricht angezeigt. Diese solltet ihr unbedingt beachten. Danke.

LG Steffen


BenBE - Sa 22.12.18 02:40

Eine allgemeine Frage zu dem Fenster "Versuch X von Y": Zählt da jedes Mal öffnen von dem Rätsel, oder erst, wenn da etwas Submitted wird?


Delphi-Laie - Sa 22.12.18 04:04

user profile iconBenBE hat folgendes geschrieben Zum zitierten Posting springen:
Eine allgemeine Frage zu dem Fenster "Versuch X von Y": Zählt da jedes Mal öffnen von dem Rätsel, oder erst, wenn da etwas Submitted wird?


Wenn etwas übertragen wird.


BenBE - Sa 22.12.18 05:00

Das ist von der UX aber dann für das aktuelle Rätsel irgendwie sinnfrei (Naja, Details dazu wenn das Rätsel durch ist).


pzktupel - Sa 22.12.18 08:18

Leute, ich schloß das Rätsel und startete neu. Versuch 1/3 noch...es fehlt der Kontroll-Button !!!!

Ich habe zwar eine Position vielleicht gefunden, kann nicht prüfen lassen , und nun ?
______
Nachtrag: Okay,wahrscheinlich wurde die Prüfung umgestellt.....


Orakel_von_Delphi - Sa 22.12.18 09:15

Die Prüfung erfolgt permanent. Sobald die letzte Figur an der richtigen Stelle steht, schließt sich das Fenster und stattdessen erscheint ein Glückwunsch.


Mathematiker - Sa 22.12.18 09:30

Hallo,
ich habe es geahnt. Mit dem Schach-Rätsel gibt es Probleme. :autsch:
Sollte jemand ganz sicher sein, dass er eine richtige Lösung hat, die aber nicht erkannt wird, so sendet mir bitte eine Kopie des Spielfelds mit den eingetragenen Figuren.

Ich werde es dann "per Hand" auswerten.
Tut mir leid, ich kann nur um Entschuldigung bitten.

LG Steffen

Nachtrag: Die schon eingegangene 2.Lösung war doch nicht korrekt. Egal. Sollte es Probleme geben, wendet euch an mich.
Eigentlich dürfte es keine "alternative Lösung" geben, aber ...


Horst_H - Sa 22.12.18 09:45

Hallo,

zu den Tetraden habe ich ein Programm gepinselt.Es wird eine zufällige Lösung ausgegeben, indem ich die Startaufstellung mische.


Delphi-Quelltext
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:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
program Aufgabe20;
//Spielsteine werden Reihe für Reihe von links nach rechts belegt und getestet
{$IFDEF FPC}{$MODE DELPHI}{$ENDIF}
//{$R+,O+}
type
 tKoor = record
           zeile,spalte:byte;
         end;
 tSpielstein  = array[0..1,0..1of byte;
 tpSpielstein  = ^tSpielstein;
 trow = array[0..7of byte;
 tSpielfeld = array[0..7of trow;
 tpRow = ^trow;
 tSpielFeldPos = array[0..15of tKoor;
 tSpielsteine = array[0..15of tSpielstein;
 tReihenfolge = array[0..15of byte;
 tbelegt = array[0..15of boolean;
var
  SpielFeld:tSpielFeld;
  SpielFeldPos :tSpielFeldPos;
  Spielsteine : tSpielsteine;
  Reihenfolge : tReihenfolge;
  belegt : tBelegt;

  gblCount : NativeInt;
  HabeFertig: Boolean;

procedure SwapElem(FeldNr,i:NativeInt);inline;
var
  tmp : byte;
begin
  tmp:= Reihenfolge[FeldNr];
  Reihenfolge[FeldNr]:= Reihenfolge[i];
  Reihenfolge[i] := tmp;
end;

procedure InitSpielsteine;
var
 i,row,col :NativeInt;
Begin
  fillchar(SpielSteine,SizeOf(SpielSteine),#0);
//Spielsteine[0]
  Spielsteine[1][0,0] := 1;
  Spielsteine[2][0,1] := 1;
  Spielsteine[3][1,0] := 1;
  Spielsteine[4][1,1] := 1;

  Spielsteine[5][0,0] := 1;
  Spielsteine[5][0,1] := 1;
  Spielsteine[6][0,0] := 1;
  Spielsteine[6][1,0] := 1;

  Spielsteine[7][0,0] := 1;
  Spielsteine[7][1,1] := 1;

  //invertieren
  For i := 8 to 15 do
    For row := 1 downto 0 do
      For col := 1 downto 0 do
        Spielsteine[i][row,col] := 1-Spielsteine[i-8][row,col];

  i := 0;
  //Auf welchem Platz wird ein Spielstein abgelegt ( linke obere Ecke )
  For row := 0 to 3 do
    For col := 0 to 3 do
    Begin
      with SpielFeldPos[i] do
      Begin
        zeile := 2*row;
        spalte := 2*col;
      end;
      inc(i);
    end;

  For i := 0 to 15 do
    Reihenfolge[i]:= i;
  randomize;
  For i := 15 downto 1 do
  Begin
    col:= random(i+1);
    SwapElem(i,col);
  end;

  HabeFertig := false;
  gblCount := 0;
end;

function TesteSpielStein(SpFdPos:NativeInt):boolean;
var
 pRow1,pRow2 :tpRow;
 row,col :NativeInt;
Begin
  result := true;

  with SpielFeldPos[SpFdPos] do
  begin
    row := zeile;
    col := spalte;
  end;
  pRow1 := @Spielfeld[row];
  //teste darueber, wenn nicht oberste Zeile
  If row >0 then
    Begin
      //pRow2:=@Spielfeld[row-1];
      pRow2 := pRow1;
      dec(pRow2);
      result := (pRow1^[col]=pRow2^[col]) AND (pRow1^[col+1] =pRow2^[col+1]);
      IF NOT(Result) then
        EXIT;
    end;

  //teste links, wen nicht linke Spalte
  If col>0 then
    Begin
    //pRow2:=@Spielfeld[row+1];
    pRow2 := pRow1;
    inc(pRow2);
    result := (pRow1^[col-1] =pRow1^[col]) AND (pRow2^[col-1] =pRow2^[col]);
  end;
end;

procedure SetzeSpielStein(SpFdPos:NativeInt;SpStNr:NativeInt);
var
 pSp:tpSpielstein;
 pRow :tpRow;
 col :NativeInt;
Begin
  pSp := @Spielsteine[SpStNr];
  belegt[SpFdPos]:= true;
  with SpielFeldPos[SpFdPos] do
  begin
    pRow := @Spielfeld[zeile];
    col := spalte;
  end;

  pRow^[col] := pSp^[0,0];
  pRow^[col+1] := pSp^[0,1];
  inc(pRow);
  pRow^[col] := pSp^[1,0];
  pRow^[col+1] := pSp^[1,1];
end;

procedure LoescheSpielStein(SpFdPos:NativeInt);
var
 pRow : tpRow;
 col :NativeInt;
Begin
  belegt[SpFdPos]:= false;
  with SpielFeldPos[SpFdPos] do
  begin
    pRow := @Spielfeld[zeile];
    col := spalte;
  end;
  pRow^[col] := 0;
  pRow^[col+1] := 0;
  inc(pRow);
  pRow^[col] := 0;
  pRow^[col+1] := 0;
end;

procedure Ausgabe;
var
  col,row :NativeInt;
  pRow : tpRow;
Begin
  pRow := @Spielfeld[0];
  For row := 0 to 7 do
  Begin
    iF Not(Odd(row)) then
      writeln;
    For col := 0 to 7 do
    begin
      iF Not(Odd(col)) then
        write('.');
      write(pRow^[col]);
    end;
    writeln;
    inc(pRow);
  end;
  writeln;
end;

procedure Rekurs(FeldNr:nativeInt);
var
  i : NativeInt;
Begin
  IF FeldNr <=  High(tSpielsteine) then
  Begin
    For i := FeldNr to High(tSpielsteine) do
    begin
      SwapElem(FeldNr,i);
      SetzeSpielStein(FeldNr,Reihenfolge[FeldNr]);
      IF TesteSpielStein(FeldNr) then
        Rekurs(FeldNr+1);
      LoescheSpielStein(FeldNr);
      SwapElem(FeldNr,i);
    end
  end
  else
  Begin
    inc(gblCount);
    IF NOT(Habefertig) then
    Begin
      Ausgabe;
      HabeFertig:= true;
    end;
  end;
end;

begin
  InitSpielsteine;
  Rekurs(0);
  Writeln('Es gibt ',gblCount,' Anordnungen');
  readln;
end.


Mit der Ausgabe

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
{ Eine moegliche Ausgabe }
.01.11.11.11
.10.00.01.10

.10.00.01.10
.10.00.00.00

.10.00.00.00
.01.11.10.01

.01.11.10.01
.01.11.11.11

Es gibt 800 Anordnungen


Gruß Horst


Gausi - Sa 22.12.18 10:36

Zum Schachrätsel:

Sehe ich das richtig, dass man nicht davon ausgehen darf, auf dem 4er-Feld eine Figur steht?

Wenn da eine Figur stehen soll, hätte ich eine Lösung, die nicht erkannt wird. Sonst muss ich weiter probieren. ;-)


pzktupel - Sa 22.12.18 10:42

@Gausi

Die Felder mit den Zahlen bleiben unbesetzt.


Gausi - Sa 22.12.18 10:55

Das ist klar. Meine Frage ist, ob ich auf dem 4er-Feld eine gegnerische Figur annehmen kann, die eine der zu setzenden Figuren am "durchlaufen" hindert.


Mathematiker - Sa 22.12.18 11:03

Es gibt keine weiteren Figuren als die genannten 6, also auch keine gegnerischen.


pzktupel - Sa 22.12.18 11:09

Gausi, das 4er Feld ist jenes, was 4mal von den Figuren gleichzeitig attackiert wird.


Gausi - Sa 22.12.18 11:21

Das ist mir klar. Aber wenn auf dem Feld eine gegnerische Figur stünde, dann hätte ich weniger Probleme damit, die Attacken von Turm und Dame auf die 0-Felder zu blocken.

Deswegen frage ich. ;-)

Edit: hat sich erledigt. :D


Aviator - Sa 22.12.18 13:01

Tag zusammen!

Ich habe jetzt nicht alle 13 Seiten des Threads durchgelesen, da ich die Lösungen zu den Rätseln nicht sehen wollte.

Aber ich wollte mir gerade mit etwas Verspätung die 2018er Version runterladen, bekam diese aber nicht entpackt. GData schlägt an und sagt mir, dass es ein Trojaner sei. Mit ein paar Ausnahmen auf der Datei funktioniert es zwar jetzt, aber ich musst etwas tricksen, da die Datei ja gar nicht erst erstellt/entpackt wurde.

Wollte das hier nur mal als Info da lassen. Aber trotz allem eine super Anwendung und viel Arbeit. Danke dafür. :)


Ich wünsche allen eine frohe Weihnachtszeit und einen guten Rutsch.


Narses - Sa 22.12.18 13:48

Moin!

user profile iconAviator hat folgendes geschrieben Zum zitierten Posting springen:
die 2018er Version runterladen, bekam diese aber nicht entpackt. GData schlägt an und sagt mir, dass es ein Trojaner sei. Mit ein paar Ausnahmen auf der Datei funktioniert es zwar jetzt, aber ich musst etwas tricksen, da die Datei ja gar nicht erst erstellt/entpackt wurde.

Wollte das hier nur mal als Info da lassen.
Danke für den Hinweis, ist aber (leider) alles schon bekannt. Die Heuristiken sprechen leider sehr oft (eigentlich grundlos) auf Delphi-Executables an, die Netzwerkfunktionen nutzen. :nixweiss: Da leider Delphi bei Malware-Entwicklern sehr „beliebt“ ist, müssen wir dieses Los mittragen... :?

Ich versichere hiermit offiziell, dass der Kalender das Vertrauen verdient und wir keine Malware verteilen!

cu
Narses


Schestex - Sa 22.12.18 13:59

Zitat:
Ich versichere hiermit offiziell, dass der Kalender das Vertrauen verdient und wir eine Malware verteilen!

+k oder?


Mathematiker - Sa 22.12.18 14:06

@Schestex: Danke für den Hinweis. Ist geändert.


Narses - Sa 22.12.18 15:37

Moin!

user profile iconSchestex hat folgendes geschrieben Zum zitierten Posting springen:
Zitat:
Ich versichere hiermit offiziell, dass der Kalender das Vertrauen verdient und wir eine Malware verteilen!

+k oder?
:autsch: :nut: :oops: Selbstverständlich... (dämliche Autokorrektur :motz:) Danke für den Hinweis und Steffen für die zügige Korrektur. :flehan:


user profile iconNarses hat folgendes geschrieben Zum zitierten Posting springen:
Da leider Delphi bei Malware-Entwicklern sehr „beliebt“ ist, müssen wir dieses Los mittragen... :?
Wobei :gruebel: genau genommen müsste man das ja als Kompliment für Delphi werten! :shock: Man kommt damit schnell zu einem Ergebnis, ohne sich viel mit der "Technik" der Anwendungsentwicklung beschäftigen zu müssen. :lol: Nur scheint sich dieses "Wissen" offensichtlich in den "falschen Kreisen" rumzusprechen... :evil:

cu
Narses


pzktupel - Sa 22.12.18 15:59

Habe auch GDATA. Bei mir war alles friedlich. System: Windows 7 64bit


Hidden - Sa 22.12.18 16:11

Welche Farbe der Bauer hat, ist nicht bekannt -- oder?


Mathematiker - Sa 22.12.18 16:13

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Welche Farbe der Bauer hat, ist nicht bekannt -- oder?

Die sechs Schachfiguren sind alle weiß. Für die Aufgabe ist das aber nicht von Bedeutung.

LG Steffen


Schestex - Sa 22.12.18 16:19

user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Welche Farbe der Bauer hat, ist nicht bekannt -- oder?

Die sechs Schachfiguren sind alle weiß. Für die Aufgabe ist das aber nicht von Bedeutung.

LG Steffen


Hier muss ich korregieren, da sich somit der Angriff des Bauers schon entscheidet ;)


pzktupel - Sa 22.12.18 16:33

Frage, bei dem Spiel morgen - reicht wieder nur durchrennen (wie letztes Jahr) oder muß die geforderte Anzahl eingesammelt werden ?


Hidden - Sa 22.12.18 16:33

user profile iconSchestex hat folgendes geschrieben Zum zitierten Posting springen:
Hier muss ich korregieren, da sich somit der Angriff des Bauers schon entscheidet ;)

Ja, genau^^

Von der Farbe würde abhängen in welche Richtung der Bauer schlagen kann. Ein weißer Bauer auf G2 wäre zum Beispiel legal, aber ein schwarzer könnte H1 oder F1 schlagen.

Wenn beides funktioniert, ist das indirekt noch ein Tipp :P


Gausi - Sa 22.12.18 16:34

user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:
Die sechs Schachfiguren sind alle weiß. Für die Aufgabe ist das aber nicht von Bedeutung.

In meiner Lösung schon. Es funktioniert zwar auch mit einem schwarzen Bauern, aber dann sieht die Lösung etwas anders aus. :zwinker:

(Ich hoffe, das ist jetzt kein zu großer Tipp, aber Steffens Antwort könnte einige auf die falsche Fährte locken, finde ich.)


Mathematiker - Sa 22.12.18 17:51

user profile iconGausi hat folgendes geschrieben Zum zitierten Posting springen:
... aber Steffens Antwort könnte einige auf die falsche Fährte locken, finde ich.)

Stimmt. Danke für den Hinweis.
Bei meiner Antwort habe ich nicht an den Bauern gedacht.
Die sechs Schachfiguren sind weiß und das ist sogar wichtig.

LG Steffen


Delphi-Laie - Sa 22.12.18 19:14

Ich rege an und bitte devot darum zu erwägen, ob zukünftig, falls es weitere Adventskalender geben wird, eine 48-h-Frist zur Lösung eingerichtet werden könnte, denn die 24-h-Frist empfinde ich manchmal als etwas knapp. Vielleicht geht es anderen ja auch so.


ub60 - Sa 22.12.18 19:54

user profile iconDelphi-Laie hat folgendes geschrieben Zum zitierten Posting springen:
Ich rege an ... ob zukünftig ... eine 48-h-Frist zur Lösung eingerichtet werden könnte ...

Die Idee finde ich nicht so gut, denn eigentlich ist die jetzige Regelung ja schon die entschärfte Variante. Früher begann es 0 Uhr und endete 23:59 Uhr. Bei der Verlängerung auf 2 Tage müsste man noch länger auf Lösungen oder Beispiellösungen von anderen warten. Nach 2 Tagen wäre da schon ziemlich die Luft raus ...
Also mein Vorschlag: Weiter wie bisher.

PS: Das setzt natürlich voraus, dass der Mathematiker weiterhin die riesige Vorbereitungsarbeit für einen weiteren Adventskalender auf sich nimmt (BIIITTTTEEEE!).

ub60


Hidden - Sa 22.12.18 22:01

Für die Verlosung haben wir denke ich einen guter Kompromiss gefunden. Da man für maximale Chancen nicht alle 24 Rätsel gelöst haben muss, ist es okay wenn man ein paar nicht innerhalb der 24 Stunden schafft.

Wer versuchen will, in den Statistiken ganz oben zu stehen, für den kann es unter Umständen natürlich mal knapp sein. Man kann dann für sich entscheiden, ob man die Lösung lesen möchte oder die Posts dazu erst liest wenn man die Aufgabe gelöst hat.

Ich habe bisher zwei nicht abgegeben. Als es die 20 (Tetraeden) gab habe ich den Tag lang kein Internet gehabt (-> ergo auch kein Abruf um 23:59 + Lösungsfrist bis zum nächsten Tag).


Mathematiker - Sa 22.12.18 23:04

Hallo,
das Kugelschieben war wohl schwieriger als erwartet. Ich habe keine schöne Lösung, da ich es nur so lange probiert habe, bis es ging. Eine Zugfolge (wahrscheinlich geht es kürzer) ist:

Lösung: lrl dur lrl rrl rrd lrl rrl lur dlr uud ul
(left, right, up, down)

LG Steffen


Symbroson - Sa 22.12.18 23:32

Es war auf jeden Fall hilfreich den Weg rückwärts ein Stück zurückzuvervolgen. vom Ziel ausgegangen gibt es nämlich nur wenige Möglichkeiten dorthin zu gelangen. Im Endeffekt habe ich damit ca die Hälfte des Rätsels gelöst (es wäre durchaus mehr möglich gewesen), und die andere Hälfte durch probieren, bis ich mit der richtigen Zuganzahl auf einem von mir ermittelten Felder gelangte.

Das mit der Maus schreiben hat sich allerdings als schwierigstes Problem herausgestellt... :lol:

21


Hidden - Sa 22.12.18 23:45

Lösung zu (21) Kugel in javascript (Breitensuche):


JavaScript-Quelltext
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:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
{
  /*
    0x88 board
    https://en.wikipedia.org/wiki/Board_representation_(chess)#0x88_method
    s: Start
    f: Finish
    Die rechte Hälfte dieses 16x8 Boards dient zur Kontrolle, ob ein Zug das Spielfeld verlässt.
  */

  const level = `
    x . . . x . . . . . . . . . . .
    . . . . . . . . . . . . . . . .
    . . x . x . . . . . . . . . . .
    . . . s . . x . . . . . . . . .
    . x . . f . . . . . . . . . . .
    . . . x . . . . . . . . . . . .
    . . . . . . . . . . . . . . . .
    x . x . x . . . . . . . . . . .
  `
.trim().split(/\s*/g);

  const moves = [
    [ 1,  0],
    [ 0,  1],
    [-1,  0],
    [ 0, -1],
  ].map( ([x,y]) => x + 16 * y );

  const steps = [135];

  console.log( breadthFirstSearch(level, moves, steps, 1000) );
}

function decodeFieldIndex (i) {
  const x = i & 0b00000111;       // last 3 bits
  const y = i >> 4 & 0b00000111;  // last 7th to 5th bit
  return "abcdefgh"[x] + (y+1);
}

function breadthFirstSearch (level, moves, steps, depthLimit) {
  let depth = 0;
  let positions = [{
    index: level.indexOf("s"),
    history: [],
  }];

  while (depth < depthLimit) {
    const phase = depth % 3;
    const newPositions = [];

    for (const move of moves) {
      for (let {index, history} of positions) {

        let blocked = false;
        for (let step = 0; step < steps[phase]; step++) {
          index += move;
          if ((index & 0x88) || level[index] === "x") {
            blocked = true;
            break;
          }
        }
        if (blocked) continue;

        history = [...history, index];

        if (level[index] === "f") {
          /*
            solution found
          */

          return history
            .map(decodeFieldIndex)
            .join(" ");
        }

        newPositions.push({
          index,
          history,
        });
      }
    }

    positions = newPositions;
    depth++;
  }
  return "failed";
}


Output: c4 f4 a4 a5 a2 f2 e2 h2 c2 d2 g2 b2 c2 f2 f7 e7 h7 c7 d7 g7 b7 a7 a4 f4 f5 c5 h5 h4 h1 h6 h5 e5

Zugfolge

Edit: Ich habe vergessen, ein visited Array anzulegen in dem ich für jedes Feld und jede Phase (1/3/5 Sprung) abspeichere ob diese Kombination bereits besucht wurde. An den Stellen könnte man sich das Weitersuchen dann sparen und die Laufzeit reduzieren. Die ist aber auch so schon sehr klein, weil der branching-Faktor dieses Spiels nicht sehr hoch zu sein scheint.

Edit2: 32 scheint damit tatsächlich die kürzeste Lösung zu sein, da die Breitensuche bei Tiefe 32 das erste Ergebnis findet.

Edit3: Ich hab das mal in einen Generator umgeschrieben, damit ich alle Lösungen und nicht nur die eine bekomme. Ergebnis: Die Lösung ist Eindeutig. Am Output sieht man sehr schön, dass wie gesagt der branching-Faktor sehr klein ist.


JavaScript-Quelltext
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:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
{
  /*
    0x88 board
    https://en.wikipedia.org/wiki/Board_representation_(chess)#0x88_method
    s: Start
    f: Finish
    Die rechte Hälfte dieses 16x8 Boards dient zur Kontrolle, ob ein Zug das Spielfeld verlässt.
  */

  const level = `
    x . . . x . . . . . . . . . . .
    . . . . . . . . . . . . . . . .
    . . x . x . . . . . . . . . . .
    . . . s . . x . . . . . . . . .
    . x . . f . . . . . . . . . . .
    . . . x . . . . . . . . . . . .
    . . . . . . . . . . . . . . . .
    x . x . x . . . . . . . . . . .
  `
.trim().split(/\s*/g);

  const moves = [
    [ 1,  0],
    [ 0,  1],
    [-1,  0],
    [ 0, -1],
  ].map( ([x,y]) => x + 16 * y );

  const steps = [135];

  (async () => {
    for await
 (const line of breadthFirstSearch(level, moves, steps, 1000)) {
      console.log(line);
    }
  })();

}

function decodeFieldIndex (i) {
  const x = i & 0b00000111;       // last 3 bits
  const y = i >> 4 & 0b00000111;  // last 7th to 5th bit
  return "abcdefgh"[x] + (y+1);
}

async function* breadthFirstSearch (level, moves, steps, depthLimit) {
  let depth = 0;
  let positions = [{
    index: level.indexOf("s"),
    history: [],
  }];
  const visited = Array(level.length)
    .fill()
    .map( () => [falsefalsefalse] );


  while (positions.length && depth < depthLimit) {
    const phase = depth % 3;
    yield `depth: ${depth}, nodes: ${positions.length}`;
    const newPositions = [];

    for (const move of moves) {
      for (let {index, history} of positions) {

        let blocked = false;
        for (let step = 0; step < steps[phase]; step++) {
          index += move;
          if ((index & 0x88) || level[index] === "x") {
            blocked = true;
            break;
          }
        }
        if (blocked || visited[index][phase]continue;
        visited[index][phase] = true;

        history = [...history, index];

        if (level[index] === "f") {
          /*
            solution found
          */

          yield history
            .map(decodeFieldIndex)
            .join(" ");

          continue;
        }

        newPositions.push({
          index,
          history,
        });
      }
    }

    positions = newPositions;
    depth++;
  }
  yield "done";
}



Output
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:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
depth: 0, nodes: 1
depth: 1, nodes: 4
depth: 2, nodes: 6
depth: 3, nodes: 2
depth: 4, nodes: 6
depth: 5, nodes: 8
depth: 6, nodes: 4
depth: 7, nodes: 9
depth: 8, nodes: 5
depth: 9, nodes: 3
depth: 10, nodes: 7
depth: 11, nodes: 5
depth: 12, nodes: 2
depth: 13, nodes: 6
depth: 14, nodes: 3
depth: 15, nodes: 3
depth: 16, nodes: 3
depth: 17, nodes: 3
depth: 18, nodes: 3
depth: 19, nodes: 3
depth: 20, nodes: 2
depth: 21, nodes: 1
depth: 22, nodes: 4
depth: 23, nodes: 3
depth: 24, nodes: 1
depth: 25, nodes: 1
depth: 26, nodes: 2
depth: 27, nodes: 2
depth: 28, nodes: 3
depth: 29, nodes: 3
depth: 30, nodes: 2
depth: 31, nodes: 2

c4 f4 a4 a5 a2 f2 e2 h2 c2 d2 g2 b2 c2 f2 f7 e7 h7 c7 d7 g7 b7 a7 a4 f4 f5 c5 h5 h4 h1 h6 h5 e5

depth: 32, nodes: 1
depth: 33, nodes: 1

done


pzktupel - So 23.12.18 00:55

Oh ja, die Kugel:

Gelöst siehe Bilder


BenBE - So 23.12.18 02:34

Ich hab das als Breitensuche mit maximal 64 Zügen gelöst und dabei durch Optimierung folgende Varianten (jeweils im Suchraum bis dahin kürzeste Lösung) gefunden:


Quelltext
1:
2:
3:
4:
5:
6:
Found: lrldurllrllrdduddlurldurllrrdlurldurlrlrrlrrdlrlrrllurdlruudul
Found: lrldurllrllrdduddlurldurlrlrlrlrlrrlrrdlrlrrllurdlruudul
Found: lrldurllrllrdduddlurldurlrlrrlrrdlrlrrllurdlruudul
Found: lrldurllrrdlurldurlrlrrlrrdlrlrrllurdlruudul
Found: lrldurlrlrlrlrlrrlrrdlrlrrllurdlruudul
Found: lrldurlrlrrlrrdlrlrrllurdlruudul



PHP-Quelltext
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:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
<?php

$f = array(
    array("#"," "," "," ","#"," "," "," "),
    array(" "," "," "," "," "," "," "," "),
    array(" "," ","#"," ","#"," "," "," "),
    array(" "," "," "," "," "," ","#"," "),
    array(" ","#"," "," "," "," "," "," "),
    array(" "," "," ","#"," "," "," "," "),
    array(" "," "," "," "," "," "," "," "),
    array("#"," ","#"," ","#"," "," "," ")
    );

function show($p) {
    static $ps = "";
    if(!strlen($ps)) {
        $ps = str_repeat("#"256);
    }
    if(strlen($p) < strlen($ps)) {
        $ps = $p;
        echo "Found: $p\n";
    }
}

function check($f$a1$b1$a2$b2) {
    $ca1 = min($a1$a2);
    $cb1 = min($b1$b2);

    $ca2 = max($a1$a2);
    $cb2 = max($b1$b2);

    if($ca1 < 0 || $cb1 < 0) {
        return false;
    }

    if($ca2 > 7 || $cb2 > 7) {
        return false;
    }

    for($ca = $ca1$ca <= $ca2$ca++) {
        for($cb = $cb1$cb <= $cb2$cb++) {
            if($f[$ca][$cb] == "#") {
                return false;
            }
        }
    }

    return true;
}

function jump($f$a$b$p) {
    if(strlen($p) > 64) {
        return;
    }

    if($a == 4 && $b == 4) {
        show($p);
        return;
    }

    $r = strlen($p) % 3;
    $d = 1 + 2 * $r;

    $al = $a;
    $bl = $b - $d;

    $ar = $a;
    $br = $b + $d;

    $au = $a - $d;
    $bu = $b;

    $ad = $a + $d;
    $bd = $b;

    if(check($f$a$b$al$bl)) {
        jump($f$al$bl$p . "l");
    }

    if(check($f$a$b$ar$br)) {
        jump($f$ar$br$p . "r");
    }

    if(check($f$a$b$au$bu)) {
        jump($f$au$bu$p . "u");
    }

    if(check($f$a$b$ad$bd)) {
        jump($f$ad$bd$p . "d");
    }
}

jump($f33"");


Insgesamt also recht straight forward ... Durch probieren bin ich immer nicht weit gekommen ...


pzktupel - So 23.12.18 09:09

Ihr seid voll krass mit programmieren. Im-MP-Forum gibts eine Aufgabe mit Preisgeld. Ein magisches Quadrat 3x3 was nur unterschiedliche Quadratzahlen enthält.

https://matheplanet.de/matheplanet/nuke/html/viewtopic.php?topic=239373&start=0&lps=1741685#v1741685


Gausi - So 23.12.18 09:21

Meine Lösung in Delphi: Nicht so elegant wie die vorherigen, aber mit "visited"-Array. Ohne das laufe ich (ohne Tiefenbeschränkung) bei meiner Reihenfolge der Richtungen in Kreise rein, und das Programm stürzt in Nullkommanichts ab. :lol:

Die Lösung scheint eindeutig zu sein.

Mit einer Rückwärtslösung per Paint habe ich es auch probiert, bin damit aber nicht durchgekommen.

Delphi-Quelltext
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:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
  TDirection = (dirUp, dirRight, dirDown, dirLeft);
  TFieldVisited = Array [1..81..81..5of Boolean;

var
  Form1: TForm1;

  Steps: Array [0..2of Integer = (1,3,5);
  Spielfeld: Array [1..81..8of Integer =
  ( (0,1,1,1,0,1,1,1),
    (1,1,1,1,1,1,1,1),
    (1,1,0,1,0,1,1,1),
    (1,1,1,1,1,1,0,1),
    (1,0,1,1,1,1,1,1),
    (1,1,1,0,1,1,1,1),
    (1,1,1,1,1,1,1,1),
    (0,1,0,1,0,1,1,1)
  );

  FieldVisited: TFieldVisited;
  MoveList: TStringList;
  curX, curY, curStep: Integer;

implementation

{$R *.dfm}

procedure OutPutPath;
var i: Integer;
begin
    for i := 0 to MoveList.Count-1 do
      Form1.Memo1.Lines.Add(Movelist[i]);
    Form1.Memo1.Lines.Add('-------');
end;

function FreeLineUp(Stepwidth: Integer): Boolean;
var i: Integer;
begin
    result := True;
    for i := 1 to Stepwidth do
        result := result AND (Spielfeld[curY-i, curX] = 1);
end;

function FreeLineDown(Stepwidth: Integer): Boolean;
var i: Integer;
begin
    result := True;
    for i := 1 to Stepwidth do
        result := result AND (Spielfeld[curY+i, curX] = 1);
end;

function FreeLineLeft(Stepwidth: Integer): Boolean;
var i: Integer;
begin
    result := True;
    for i := 1 to Stepwidth do
        result := result AND (Spielfeld[curY, curX-i] = 1);
end;

function FreeLineRight(Stepwidth: Integer): Boolean;
var i: Integer;
begin
    result := True;
    for i := 1 to Stepwidth do
        result := result AND (Spielfeld[curY, curX+i] = 1);
end;


function MovePossible(aDir: TDirection): Boolean;
var currentWidth: Integer;
begin
    currentWidth := Steps[curStep mod 3];
    case aDir of
      dirUp    : result := (curY - currentWidth >= 1and FreeLineUp(currentWidth);
      dirRight : result := (curX + currentWidth <= 8and FreeLineRight(currentWidth);
      dirDown  : result := (curY + currentWidth <= 8and FreeLineDown(currentWidth);
      dirLeft  : result := (curX - currentWidth >= 1and FreeLineLeft(currentWidth);
    end;
end;

procedure DoMove(aDir: TDirection);
var currentWidth: Integer;
begin
    currentWidth := Steps[curStep mod 3];
    case aDir of
      dirUp    : begin
          curY := curY - currentWidth;
          MoveList.Add('Hoch');
      end;
      dirRight : begin
          curX := curX + currentWidth;
          MoveList.Add('Rechts');
      end;
      dirDown  : begin
          curY := curY + currentWidth;
          MoveList.Add('Runter');
      end;
      dirLeft  : begin
          curX := curX - currentWidth;
          MoveList.Add('Links');
      end;
    end;
    inc(curStep);
end;

procedure UndoMove(aDir: TDirection);
var currentWidth: Integer;
begin
    dec(curStep);
    currentWidth := Steps[curStep mod 3];
    case aDir of
      dirUp    : curY := curY + currentWidth;
      dirRight : curX := curX - currentWidth;
      dirDown  : curY := curY - currentWidth;
      dirLeft  : curX := curX + currentWidth;
    end;
    MoveList.Delete(MoveList.Count - 1);
end;


procedure GoOnWalking;
var aDir: TDirection;
    currentWidth: Integer;
begin
    currentWidth := Steps[curStep mod 3];
    // check for circle
    if FieldVisited[curX, curY, currentWidth] then
        exit;

    // check for destination
    if (curX = 5and (curY = 5then
        OutPutpath;

    FieldVisited[curX, curY, currentWidth] := True;
    for aDir := Low(TDirection) to High(TDirection) do
    begin
        if MovePossible(aDir) then
        begin
            DoMove(aDir);
            GoOnWalking;
            UnDoMove(aDir);
        end;
    end;
    FieldVisited[curX, curY, currentWidth] := False;
end;


procedure TForm1.Button1Click(Sender: TObject);
var x,y, s: Integer;
begin
    curStep := 0;
    curX := 4;
    curY := 4;
    Memo1.Clear;

    for x := 1 to 8 do
      for y := 1 to 8 do
        for s := 1 to 5 do
            FieldVisited[x,y,s] := False;

    MoveList := TStringList.Create;
    try
      GoOnWalking;
    finally
      MoveList.Free;
    end;
end;


Schestex - So 23.12.18 10:16

Der Abschluss heute klappt auch ohne 40 Diamanten, ist das gewollt?


Lemmy - So 23.12.18 10:23

hm... hatte alle Diamanten gesammelt, Spiel hat sich beendet, dann kam "Schade das hat nicht gereicht" und anschließend der Glückwunsch zum Sieg ?!?


Schestex - So 23.12.18 10:28

user profile iconLemmy hat folgendes geschrieben Zum zitierten Posting springen:
hm... hatte alle Diamanten gesammelt, Spiel hat sich beendet, dann kam "Schade das hat nicht gereicht" und anschließend der Glückwunsch zum Sieg ?!?


Ging mir im 2 Durchlauf dann auch so, habe natürlich auch 40 Steine danach gesammelt.
Die Tore haben dann eine Animation, glaube da ist eine Überprüfung untergegangen.

Ist dieses Jahr aber entspannter als im letzten ;)


Delphi-Laie - So 23.12.18 19:03

user profile iconSymbroson hat folgendes geschrieben Zum zitierten Posting springen:
Es war auf jeden Fall hilfreich den Weg rückwärts ein Stück zurückzuvervolgen.


Richtig, dito. Leider sah ich bei Zug 16 nur den nach oben und verfing mich dann in einer Endlosschleife. Also aufgegeben.

user profile iconSymbroson hat folgendes geschrieben Zum zitierten Posting springen:
Das mit der Maus schreiben hat sich allerdings als schwierigstes Problem herausgestellt... :lol:


Das ist in der Tat eine Qual und sieht fast schlimmer aus, als mit der untergeordneten Hand geschrieben. Doch sogar Paint hat eine Schreib- bzw. Textfunktion!


Mathematiker - Mo 24.12.18 00:40

Hallo,
auch der letzte Versuch des Schach-Rätsels ist beendet. Hier die Lösung
schach
Die Auswertung wäre mit einem zusätzliche Button wahrscheinlich besser gewesen.
In der Offline-Version zum Nachspielen habe ich es geändert.

LG Steffen


Mathematiker - Mo 24.12.18 01:00

Adventskranz-6Hallo und frohe Weihnachten,
soeben beginnt der letzte Tag des EE-Adventsgewinnspiels 2018. :D Als letztes Rätsel gibt es wieder das Puzzeln eines Weihnachtsbildes.

Ich möchte mich bei euch für die Teilnahme bedanken und hoffe, ihr hattet etwas Spaß und Freude. :beer:
Besonderer Dank geht an user profile iconNarses und user profile iconChristian S.. Narses und Christian haben dieses Jahr durch viel Arbeit das AGS wieder möglich gemacht, da ohne Organisation des AGS "im Hintergrund" nichts funktionieren würde.

Die Gewinner werden in den nächsten Tagen durch Narses bekanntgegeben. Allen, die eine der wertvollen AGS-Tassen gewinnen werden :party: , möchte ich schon gratulieren.
Sobald die letzte Lösung abgegeben wurde, werde ich unter https://mathematikalpha.de/adventskalender den Adventskalender 2018 als Offline-Version zum Download und Nachspielen bereitstellen; irgendwann am 25. Dezember.

Ich wünsche euch schöne Festtage, viele Geschenke und ein glückliches Neues Jahr 2019. :dunce:
Wenn nichts dazwischen kommt, so sehen wir uns im Dezember 2019 zum 6.Entwickler-Ecke-Adventskalender wieder. :zwinker:

Steffen


pzktupel - Mo 24.12.18 04:43

Vielen Dank, für den schönen Zeitvertreib !
Ich wünsche auch allen Frohe, friedliche und besinnliche Weihnachten !!! :zustimm:


BenBE - Mo 24.12.18 05:43

Also das Schach-Rätsel sah bei mir in PHP eher länglich aus. Einen Trick, den ich gemacht hab, war die Effekte von Turm und Dame erst am Ende einzutragen, nachdem deren Position auf dem Spielfeld bereits markiert war. Dadurch konnte ich mir die Backtracking-Logik sparen und konnte die Check-Routine inkrementell prüfen.

Source sah dann am Ende so aus:

PHP-Quelltext
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:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
<?php

/*
  A B C D E F G H
8 - 0 0 - - 0 - - 8
7 - - - - - L - 0 7
6 - - - - - - - 0 6
5 - - - - - - - - 5
4 0 - - - - 4 - 0 4
3 - - - - - - - - 3
2 - - - - - - - 0 2
1 - - 0 - - 0 0 0 1
  A B C D E F G H
*/


function check($f) {
    if(
        $f[0][1] || $f[0][2] || $f[0][5] || 
        $f[1][7] || 
        $f[2][7] || 
        $f[4][0] || $f[4][7] || 
        $f[6][7] || 
        $f[7][2] || $f[7][5] || $f[7][6] || $f[7][7] || ($f[4][5] > 4)) {
        return false;
    }

    return true;
}

function checkAt($f$a$b) {
    if($a >= 0 && $a <= 7) {
        if($b >= 0 && $b <= 7) {
            return $f[$a][$b];
        }
    }
    return 0;
}

$board = array(
    array(0,0,0,0,0,0,0,0),
    array(0,0,0,0,0,0,0,0),
    array(0,0,0,0,0,0,0,0),
    array(0,0,0,0,0,0,0,0),
    array(0,0,0,0,0,0,0,0),
    array(0,0,0,0,0,0,0,0),
    array(0,0,0,0,0,0,0,0),
    array(0,0,0,0,0,0,0,0)
    );

function attack($f$a$b) {
    if($a < 0) { return $f; }
    if($a > 7) { return $f; }
    if($b < 0) { return $f; }
    if($b > 7) { return $f; }

    if($f[$a][$b] < 1000) {
        $f[$a][$b]++;
    }

    return $f;
}

function attackB($f$a$b) {
    $f = attack($f$a - 1$b - 1);
    $f = attack($f$a - 1$b + 1);
    return $f;
}

function attackK($f$a$b) {
    $f = attack($f$a - 1$b - 1);
    $f = attack($f$a - 1$b);
    $f = attack($f$a - 1$b + 1);

    $f = attack($f$a$b - 1);
    $f = attack($f$a$b + 1);

    $f = attack($f$a + 1$b - 1);
    $f = attack($f$a + 1$b);
    $f = attack($f$a + 1$b + 1);
    return $f;
}

function attackL($f$a$b) {
    for($l = 1$l < 8$l++) {
        if(checkAt($f$a - $l$b - $l) >= 1000 ) {
            break;
        }
        $f = attack($f$a - $l$b - $l);
    }
    for($l = 1$l < 8$l++) {
        if(checkAt($f$a - $l$b + $l) >= 1000 ) {
            break;
        }
        $f = attack($f$a - $l$b + $l);
    }
    for($l = 1$l < 8$l++) {
        if(checkAt($f$a + $l$b - $l) >= 1000 ) {
            break;
        }
        $f = attack($f$a + $l$b - $l);
    }
    for($l = 1$l < 8$l++) {
        if(checkAt($f$a + $l$b + $l) >= 1000 ) {
            break;
        }
        $f = attack($f$a + $l$b + $l);
    }
    return $f;
}

function attackT($f$a$b) {
    for($l = 1$l < 8$l++) {
        if(checkAt($f$a + $l$b) >= 1000 ) {
            break;
        }
        $f = attack($f$a + $l$b);
    }
    for($l = 1$l < 8$l++) {
        if(checkAt($f$a - $l$b) >= 1000 ) {
            break;
        }
        $f = attack($f$a - $l$b);
    }
    for($l = 1$l < 8$l++) {
        if(checkAt($f$a$b - $l) >= 1000 ) {
            break;
        }
        $f = attack($f$a$b - $l);
    }
    for($l = 1$l < 8$l++) {
        if(checkAt($f$a$b + $l) >= 1000 ) {
            break;
        }
        $f = attack($f$a$b + $l);
    }
    return $f;
}

function attackD($f$a$b) {
    $f = attackL($f$a$b);
    $f = attackT($f$a$b);
    return $f;
}

function attackS($f$a$b) {
    $f = attack($f$a - 2$b - 1);
    $f = attack($f$a - 2$b + 1);
    $f = attack($f$a - 1$b - 2);
    $f = attack($f$a - 1$b + 2);
    $f = attack($f$a + 1$b - 2);
    $f = attack($f$a + 1$b + 2);
    $f = attack($f$a + 2$b - 1);
    $f = attack($f$a + 2$b + 1);
    return $f;
}

function place($f$a$p) {
    $y = $a >> 3;
    $x = $a % 8;
    $f[$y][$x] = $p;
//    var_dump($y, $x, $p, $f);
    return $f;
}

// Läufer
$board = place($board8 + 51012);
for($a = 0$a < 64$a++) {
    $game = $board;

    // Springer
    $game = place($game$a1019);
    $game0 = attackS($game$a >> 3$a % 8);
    if(!check($game0)) {
        continue;
    }

    for($b = 0$b < 64$b++) {
        if($b == 13) { continue; }
        if($b == $a) { continue; }

        // König
        $game = place($game0$b1011);
        $game1 = attackK($game$b >> 3$b % 8);
        if(!check($game1)) {
            continue;
        }

        for($c = 0$c < 64$c++) {
            if($c == 13) { continue; }
            if($c == $a) { continue; }
            if($c == $b) { continue; }

            // Bauer
            $game = place($game1$c1002);
            $game2 = attackB($game$c >> 3$c % 8);
            if(!check($game2)) {
                continue;
            }

            if($game2[4][5] < 2) {
                continue;
            }

            for($d = 0$d < 64$d++) {
                if($d == 13) { continue; }
                if($d == $a) { continue; }
                if($d == $b) { continue; }
                if($d == $c) { continue; }

                // Turm
                $game3 = place($game2$d1020);

                for($e = 0$e < 64$e++) {
                    if($e == 13) { continue; }
                    if($e == $a) { continue; }
                    if($e == $b) { continue; }
                    if($e == $c) { continue; }
                    if($e == $d) { continue; }

                    // Turm
                    $game = place($game3$e1004);

                    $game = attackL($game15);
                    $game = attackT($game$d >> 3$d % 8);
                    $game4 = attackD($game$e >> 3$e % 8);

                    if(!check($game4)) {
                        continue;
                    }

                    if(4 != $game4[4][5]) {
                        continue;
                    }

                    echo "\nFound solution:\n";
                    var_dump($game4);
                    for($y = 0$y < 8$y++) {
                        for($x = 0$x < 8$x++) {
                            echo (checkAt($game4$y$x) >= 10) ? chr((checkAt($game4$y$x) % 1000 + 64) & 127) :
                                ((checkAt($game4$y$x) > 0) ? chr(checkAt($game4$y$x) % 10 + 48) : "_");
                        }
                        echo "\n";
                    }
                    echo "\n";
                }
            }
        }
    }
}


Geht sicher kürzer, aber tat seinen Job (in etwa 29 Sekunden) und lieferte (_ :arrow: 0):

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
1__11_1_
_1_1_L1_
__11221_
111D2T1S
__12241_
_1_1BK2_
1__1111_
___1____


pzktupel - Mo 24.12.18 10:05

Der Adventskalender
__________________

Der Erste naht - es ist soweit,
bald kommt die schöne Rätselzeit.
Geduldig wartet schon der User,
er weiß - "Ich! bin bestimmt kein Loser."
Die ersten Türchen sind erreicht -
winkt ab und sagt: " Das ist doch leicht !"

Doch schon nach einer Woche
fängts an im Gehirn zu koche!
Der Quizmaster, wer hätte es gedacht -
zog an die Schrauben ab Türchen Acht !

Bis zur 24 ist's noch hin.
Da ist bestimmt noch einiges drin !
Am Ende und nach viel geschussel,
was leichtes - ein Puzzle !

Bonus:

Jaja was leichtes, so dachte er.
Das Puzzle war dann doch ganz schön schwer.
Mit ohne Farbe und 25min danach
fand er endlich den ersehnten Schlaf.

:D


Schestex - Mo 24.12.18 10:22

FROHE WEIHNACHTEN UND VIELEN DANK FÜR DIESEN SPASS!!!

:D :) :D


Symbroson - Mo 24.12.18 13:48

Auch von meiner Seite viele Dank für die tollen Rätsel user profile iconMathematiker, user profile iconNarses, user profile iconChristian S. und wer sonst alles noch beteiligt war!
Ich wünsche euch allen ein schönes Weihnachtsfest und im Vorraus schonmal einen guten Rutsch ins neue Jahr :party:

Glückwunsch an alle, die von Anfang bis Ende dabei waren und durchgehalten haben :zustimm:
und besonderen Glückwunsch an alle Mit-Treppchensieger :dance2: :dunce:


Orakel_von_Delphi - Mo 24.12.18 14:33

Ich kann mich der allgemeinen Euphorie nicht anschließen, da ich sehr sehr traurig bin. :cry: Noch 341 Tage bis zum nächsten Adventsspiel, wie soll man das aushalten? :gruebel:


Hidden - Mo 24.12.18 17:10

user profile iconOrakel_von_Delphi hat folgendes geschrieben Zum zitierten Posting springen:
Noch 341 Tage bis zum nächsten Adventsspiel, wie soll man das aushalten? :gruebel:

Man macht einen Trainingsplan für das nächste Halbjahr :lol:
Januar - Adventskalender 2013
Februar - Adventskalender 2014
März - Adventskalender 2015
April - Adventskalender 2016
Mai - Adventskalender 2017
Juni - Adventskalender 2018


Mathematiker - Di 25.12.18 01:03

Hallo,
der letzte offene Versuch ist 3 Minuten nach Mitternacht abgelaufen.

Damit ist der diesjährige Entwickler-Ecke-Adventskalender beendet. :beer: :bawling:
Ab sofort findet ihr unter https://mathematikalpha.de/adventskalender den Kalender zum Offline-Nachspielen. Alternativ geht auch der direkte Download-Link https://mathematikalpha.de/?smd_process_download=1&download_id=19703 .

Nicht wundern, aber die Online-Version wird bald nicht mehr spielbar sein.

Das einzige was noch bleibt ist die spannende Verlosung der EE-Tassen. :wink:

LG Steffen


BenBE - Di 25.12.18 01:21

Wird es auch eine Siegerehrung der Erstplatzierten geben?


Gausi - Di 25.12.18 11:20

Zum Schachrätsel: Da habe ich auch zuerst relativ unkoordiniert rumprobiert. Dabei habe ich die zwei "sinnvollen" Positionen des Springers recht schnell erkannt, habe aber die richtige erstmal ausgeschlossen.
Bei der Dame hatte ich die falsche Annahme, dass sie zu den Angreifern des 4er-Feldes gehört ... war natürlich beides falsch. :autsch:

Und dann bin ich systematisch rangegangen und habe nach und nach alle Felder ausgeschlossen, wo die Dame definitiv nicht platziert werden kann. Und wenn die einmal richtig steht, ist der Rest der Lösung einfach. :idea:

Als kleine Kritik zum wirklich (mal wieder!) großartigen Adventsgewinnspiel: Der Schwierigkeitsgrad stieg meiner Ansicht nach in der letzten Woche deutlich an. Das fand ich ein wenig stressig kurz vor Weihnachten. Alles in allem fand ich es aber wieder richtig toll, mit einigen neuen interessanten Rätseln und Knobelaufgaben, dazu ein paar "alte Bekannte". Auch von mir zum Ende nochmal ein großes Dankeschön an alle, die an der Vorbereitung und Durchführung mitgewirkt haben.

Nur etwas wurmt mich - dass ich die Kistenschubserei schlicht und ergreifend vergessen habe. Leider nur 23 Richtige für mich :bawling:. Aber dafür habe ich meinen "Meister-Puzzler-Titel" am 24. erfolgreich verteidigt, auch ohne "Strg+Klick". :mrgreen:


Narses - Di 25.12.18 16:24

Moin!

user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:
Nicht wundern, aber die Online-Version wird bald nicht mehr spielbar sein.
So ist es, ich habe soeben den Server-Endpunkt für den Kalender deaktiviert, damit ist die Online-Version nicht mehr nutzbar. :idea:

Bitte verwendet ab sofort zum Nachspielen der diesjährigen Rätsel die Offline-Version, die Steffen oben verlinkt hat. :beer:

Auch von mir nochmal herzlichen Dank an dich, Steffen, für deinen unermüdlichen Einsatz als unser Quizmaster! :flehan: :zustimm: Und genau so herzlichen Dank auch nochmal an Christian, der uns dieses Jahr mit der neuen Anmeldeseite für den Kalender sehr viel Ärger für euch und ziemlich viel Nacharbeiten für uns erspart hat! :beer:

user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:
Das einzige was noch bleibt ist die spannende Verlosung der EE-Tassen. :wink:
So ist es, das wird Steffen morgen im Laufe des Tages tun. :)


user profile iconBenBE hat folgendes geschrieben Zum zitierten Posting springen:
Wird es auch eine Siegerehrung der Erstplatzierten geben?
Nein, wir werden lediglich die Tassen-Gewinner verkünden. Du darfst dich aber gerne bei einem Getränk deiner Wahl über die reife Leistung, alle Rätsel gelöst zu haben, im Stillen freuen. :party:

cu
Narses


Narses - Mi 26.12.18 01:53

Moin!

Unser Quizmaster hat vorhin noch die Verlosung der Preise gestartet, der Server hat folgende Gewinner der unbezahlbaren EE-AGS-Tasse 2018 ermittelt:Allen Gewinnern viel Spaß mit dem neuen Gizmo. :beer:

Die Tassen gehen sobald Deutschland wieder "arbeitet" in Produktion und - wie immer - voraussichtlich Anfang Januar in die Post.

cu
Narses


Symbroson - Mi 26.12.18 01:53

Glückwunsch an alle Tassengewinner :beer:

auf ein Neues im nächsten Jahr :dance: :wave:


pzktupel - Mi 26.12.18 10:08

Jo auch Glückwunsch.

Mal eine Frage, werden auch Tassen vergeben, wenn die volle Punktzahl nicht erreicht wurde, aber es gab bei ausreichend anderen Teilnehmern diese ?


Mathematiker - Mi 26.12.18 10:23

Hallo,
im Startbeitrag steht:

Zitat:
Die Verlosung

Wer für die abschließende Verlosung registriert ist und mindestens einen Punkt erhalten hat, nimmt auch an der abschließenden Verlosung der Preise teil. Diejenigen, die mehr Rätsel lösen, haben eine höhere Wahrscheinlichkeit, einen Preis zu gewinnen. Für jeden Punkt kommt einmal euer Name in den Lostopf, dann werden 6 (eindeutige) Namen gezogen (Duplikate durch Nachzug ersetzt). Da es in der Vorweihnachtszeit schonmal stressig werden kann, ist die Punktzahl (=Anzahl Namen im Lostopf) pro Spieler auf 17 begrenzt. So hat jeder die Chance auf die maximale Wahrscheinlichkeit zu kommen.


Jeder, der auch nur eine Aufgabe gelöst hat (und sich zur Verlosung angemeldet hat) ist im Lostopf. Da dieses Jahr sehr viele Mitspieler 17 und mehr richtige Lösungen hatten, war der Lostopf sehr voll. Damit hat man selbst mit 24 gelösten Aufgaben nur eine geringe Gewinnchance.
Dann würfelt der Computer!

Und da kann es schon vorkommen, dass man mit nur 1 Lösung gewinnt (hatten wir nicht). Es ist eben Zufall.

Alle, die nun traurig sind, dass sie nicht unter den Gewinnern sind, möchte ich etwas trösten. In nur einem Jahr gibt es die nächste Chance. :wink:

LG Steffen


pzktupel - Mi 26.12.18 11:07

Danke Steffen, das leuchtet ein :-) Eine faire Lösung.


Narses - Fr 04.01.19 19:08

Moin!

Die Tassen sind in der Post! :zustimm: Der DHL-LKW fährt üblicherweise gegen 18 Uhr weg, also sollten die Päckchen mit einem Hop von NRW aus zum Ziel vielleicht schon morgen eintrudeln. :dance2: Realistischerweise würde ich aber mal nicht davon ausgehen, dass was vor Montag ankommt. :beer:

Bitte bestätigt kurz den Empfang (entweder hier im Thread oder per VA/PN), damit wir eure Adresse auch löschen können. ;)

cu
Narses


Lemmy - Mo 07.01.19 13:46

eben angekommen. Sieht gut aus :-) Herzlichen Dank!


Delphi-Laie - Do 10.01.19 16:25

Gut Ding wollte bei mir Weile haben, aber seit einer Viertelstunde bin auch ich nun endlich im Besitz meiner ersten und schmucken Adventsgewinnspiel-Tasse. Endlich kann ich beim Programmieren ein Warm-/Heißgetränk zu mir nehmen.

Herzlichen Dank Christian und den anderen Mitgliedern des Adventsgewinnspielteams!


BenBE - Sa 12.01.19 02:02

Nachdem ich gestern den Postboten verpasst hab, weil ich das Paket abholen war, was er mir vorgestern bringen wollte, habe ich vorhin dann von den Nachbarn das Paket von gestern auch noch in Empfang nehmen können.

Laut Röntgen-Blick könnte der Inhalt Ähnlichkeit mit einer Tasse aufweisen.


Hidden - Sa 12.01.19 19:37

user profile iconBenBE hat folgendes geschrieben Zum zitierten Posting springen:
Laut Röntgen-Blick könnte der Inhalt Ähnlichkeit mit einer Tasse aufweisen.

Also irgendwas Donut-artiges? :lupe:


BenBE - So 13.01.19 04:31

Topologisch wahrscheinlich, aber kulinarisch wohl eher nicht. :mrgreen: