Autor |
Beitrag |
TmpDir
      
Beiträge: 53
Erhaltene Danke: 3
Win7HP Win8.1 Deb/Ubuntu
C# [Delphi 6 Pro, Delphi 2005 PE, TurboDelphi PE]
|
Verfasst: Fr 05.12.14 14:59
@Mathematiker: Verägerung nein, macht ja spass zu rätseln.
Verwirrung  ja
Lt. deiner Aussage sollte man ja auch ruhig mal abschalten eh, ausschalten können.
_________________ repeat until
|
|
Mathematiker
      
Beiträge: 2622
Erhaltene Danke: 1448
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Fr 05.12.14 15:09
Ok, ich hab's kapiert.
Meine Aussagen widersprechen sich. Ich bin schuldig.
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
Oliver Marx
      
Beiträge: 80
Erhaltene Danke: 18
Win 7 Prof.
Delphi XE Prof.
|
Verfasst: Fr 05.12.14 16:42
Mathematiker, ich spreche dich schuldig einen exzellenten Adventskalender entwickelt zu haben.
Auch wenn man wegen Missverständnissen mal einen Punkt verliert, so ist das eigentliche Ziel doch das Lösen der Rätsel.
Für diesen Beitrag haben gedankt: Narses
|
|
Cybersurfer
Hält's aus hier
Beiträge: 7
Erhaltene Danke: 3
|
Verfasst: Fr 05.12.14 20:30
Mathematiker hat folgendes geschrieben : | Hallo,
ich versuche es zu erklären, am Beispiel des 4.Rätsels, also vom 4.12.
Von 0.00 Uhr bis 23.59 Uhr am 4.12. ist das Rätsel freigeschaltet mit(!) Ergebnisabgabe. D.h., wird im Kalender der Dialog vom 4.12. in dieser Zeit gestartet, erhält man die entsprechende Freischaltung, welche dann 24 Stunden aktiv ist.
Schließt man den Dialog, ist die aktuelle Freischaltung beendet. Startet man den Dialog erneut, so erhält man eine erneute Freischaltung nur, wenn der Startzeitpunkt zwischen 0.00 Uhr und 23.59 Uhr am 4.12. liegt.
Holt man sich eine solche Freischaltung bis 23.59 Uhr am 4.12., so bleibt das "Recht" zur Lösungsabgabe ab diesem Moment wieder 24 Stunden.
Folgendes geht deshalb zum Beispiel nicht. Ich starte den Dialog erstmals am 4.12. 13 Uhr, schließe ihn aber um 14 Uhr. Nach dem ich eine Lösung gefunden habe, starte ich den Dialog um beispielweise 1 Uhr am 5.12. Dies ist zwar noch in den 24 Stunden nach dem aller ersten Start, aber eine erneute Freischaltung geht "nur" bis 23.59 Uhr.
Ich hoffe, ich habe es einigermaßen erklärt.
Schade, wenn es die eine oder andere Verärgerung gibt.
Dennoch wünsche ich weiteres gutes Rätseln.
Mathematiker |
Hätte ich das mal früher gewusst
Mein Programm hat übrigens 8,7 Std. benötigt die Lösung zu finden.
|
|
trm
      
Beiträge: 491
Erhaltene Danke: 19
Windows 7x64
Delphi 7
|
Verfasst: Fr 05.12.14 20:52
Es gibt wirklich Teilnehmer, die ein Programm schreiben?
Ich habe das mit Zettel (ein halber A4 hat gereicht) und Stift gemacht.. :-/
_________________ In Erfurt gibt es eine Pension, in der es gemütlich ist, Google einfach nach Pension Fiege
|
|
Mathematiker
      
Beiträge: 2622
Erhaltene Danke: 1448
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Fr 05.12.14 20:54
Hallo,
da keine Anmeldung für den 4.12. mehr aktiv ist, gebe ich wenige Anmerkungen zu den Aufgaben vom 3. und 4.12.:
3.12.
Die 20 blauen Kugeln links oben müssen durch das Gitter fallen und sich in Diamanten verwandeln. Dazu muss man sich einen Weg vorbei an den 2 Monstern suchen. Ansonsten muss man eben "vorsichtig" zum Ausgang laufen.
siehe auch: www.entwickler-ecke....amp;highlight=digger
4.12.
E kann nicht 2 oder größer sein, da selbst mit Übertrag die 2 fünfstelligen Zahlen THREE kein sechsstelliges ELEVEN ergeben.
Man kann durch analoge Überlegung erkennen, dass T mindestens 4 sein muss. T=9 ist nicht möglich, da H+H eine Zahl mit Einerziffer 1 ergeben soll, d.h. ein Übertrag auftritt.
Damit sind die Möglichkeiten schon eingeschränkt. Mit Brute Force erhält man, je nach Berücksichtigung der Einschränkungen, verschiedene Lösungen.
Mein (wirklich nicht elegantes) Delphi-Programm im Anhang liefert nach Start sofort die eindeutige Lösung:
THREE TWO ONE ELEVEN
84611 803 391 171219
Dabei habe ich nicht einmal die Einschränkung von T berücksichtigt.
Selbst ohne Test auf die Zehnerstelle von ELEVEN = 1L1V1N erhält man 19 Lösungen, von denen nur die letzte Zeile korrekt ist.
D.h.: T=8, H=4, R=6, E=1, W=0, O=3, N=9, L=7 und V=2
Natürlich ist mir klar, dass es bessere Lösungsvarianten gibt.
Übrigens: Zieht man logisch alle Möglichkeiten schrittweise durch, gelangt man am Ende mit etwas Aufwand zu der einen Lösung.
Beste Grüße
Mathematiker
Einloggen, um Attachments anzusehen!
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
mandras
      
Beiträge: 432
Erhaltene Danke: 107
Win 10
Delphi 6 Prof, Delphi 10.4 Prof
|
Verfasst: Fr 05.12.14 21:20
trm, ja, in der Tat! Nachdem mir das Papier ausging (ich hatte nur 2 A4-Blätter zur Verfügung) wollte ich es wissen, außerdem interessierte mich, wie lange ein kleines Brutus-Programm braucht. Damit kommen wir zu
cybersurfer: Ich hab es mit Delphi mit ein paar for-schleifen gemacht, mein Zeitbedarf lag bei ca. 5sek auf dem alten Laptop. Davon war ich selbst überrascht, es waren keine besonderen Optimierungen enthalten außer eben der Test daß jeder Platzhalter eine andere Ziffer darstellen muß.
|
|
Horst_H
      
Beiträge: 1654
Erhaltene Danke: 244
WIN10,PuppyLinux
FreePascal,Lazarus
|
Verfasst: Fr 05.12.14 21:58
Hallo,
So langsam ist das nicht, irdensowas um 3 ms.
Bei inuse o, n hatte ich mich mal vertan und vergessen n wieder auszutragen. e hatte ich auch mal auf 1..2 beschränkt, aber mal als Test, ob da noch was kommt 1..9.
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:
| {$IFNDEF FPC} {$APPTAYPE CONSOLE} {$ENDIF}
var InUse : array[0..9] of boolean; t,h,r,e,o,w,n,l,v : longint; one, two,three,eleven : longint; begin fillchar(InUse,SizeOf(inUse),#0); For r := 0 to 9 do begin InUse[r] := true; For w := 0 to 9 do begin IF InUse[w] then continue; InUse[w] := true; For h := 0 to 9 do begin IF InUse[h] then continue; InUse[h] := true; For t := 1 to 9 do begin IF InUse[t] then continue; InUse[t] := true; For e := 1 to 9 do begin IF InUse[e] then continue; InUse[e] := true; For o := 1 to 9 do begin IF InUse[o] then continue; InUse[o] := true;
n := (3*e+2*o) MOD 10; IF InUse[n] then Begin InUse[o] := false; continue; end;
InUse[n] := true; three := ((((t*10+h)*10+r)*10+e)*10+e); two := ((t*10+w)*10+o); one := (o*10+n)*10+e; eleven := 2*three+2*two+one; IF eleven MOD 100 <> 10*E+N then Begin InUse[o] := false; InUse[n] := false; continue; end;
if (eleven div 1000) = e then if (eleven div 100000) Mod 10 = e then Begin v := (eleven div 100) Mod 10; IF Not(InUse[v]) then begin l := (eleven div 10000) Mod 10; IF NOT(InUse[l]) AND (l<>v) then begin write ('ONE ',one,' TWO ',two,' THREE ',Three); writeln(' ELEVEN ',eleven); end; end; InUse[o] := false; InUse[n] := false; continue; end; inuse[o] := false; InUse[n] := false; end; inuse[e] := false; end; inuse[t] := false; end; inuse[h] := false; end; inuse[w] := false; end; inuse[r] := false; end; {$IFDEF WINDOWS} readln; {$ENDIF} end. |
Gruß Horst
Für diesen Beitrag haben gedankt: Mathematiker
|
|
Tilo
      
Beiträge: 1098
Erhaltene Danke: 13
Win7 geg. WInXP oder sogar Win98
Rad2007
|
Verfasst: Fr 05.12.14 22:58
Hab Rätsel 4 zuerst versucht per Hand zu Lösung und mich dabei ständig zettelt.
Nach fast 2 Stunden hab ich es dann wie BenBE in Prolog gemacht.
Hab mal das entsprechende Prologstatement angehangen.
Einloggen, um Attachments anzusehen!
Für diesen Beitrag haben gedankt: Mathematiker
|
|
trm
      
Beiträge: 491
Erhaltene Danke: 19
Windows 7x64
Delphi 7
|
Verfasst: Sa 06.12.14 01:19
In der Walze gibt es eine unverhoffte Hilfe.. 
_________________ In Erfurt gibt es eine Pension, in der es gemütlich ist, Google einfach nach Pension Fiege
|
|
Mathematiker
      
Beiträge: 2622
Erhaltene Danke: 1448
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Sa 06.12.14 01:27
Toll!
Der heutige Tag ist nicht meiner!
Na ja, so ist das eben. Das meiner Meinung nach schwierigste Rätsel, mit dem größten Programmieraufwand, wird zum Punktelieferanten.
Ich gehe jetzt in's Bett.
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
Oliver Marx
      
Beiträge: 80
Erhaltene Danke: 18
Win 7 Prof.
Delphi XE Prof.
|
Verfasst: Sa 06.12.14 01:29
Dann bin ich aber total blind...
Oder auch doch nicht. 
Zuletzt bearbeitet von Oliver Marx am Sa 06.12.14 01:31, insgesamt 1-mal bearbeitet
|
|
dsi
Hält's aus hier
Beiträge: 22
Erhaltene Danke: 8
|
Verfasst: Sa 06.12.14 01:29
Diese Hilfe hat bei mir viel zu schnell zugeschlagen.
|
|
trm
      
Beiträge: 491
Erhaltene Danke: 19
Windows 7x64
Delphi 7
|
Verfasst: Sa 06.12.14 01:47
Ich sehe es, dsi
Aber lösbar ist es auch ohne die Hilfe, durch bloßes zugucken und zählen
13 Schritte - oder, wenn man es anders zählt - nur 7
Mathematiker, Du bist echt genial - oder sind das Aufgaben, die Du Deinen Schülern gestellt hast, so als Hausarbeit?
LG, schönen 2. Advent.
_________________ In Erfurt gibt es eine Pension, in der es gemütlich ist, Google einfach nach Pension Fiege
|
|
jfheins
      
Beiträge: 918
Erhaltene Danke: 158
Win 10
VS 2013, VS2015
|
Verfasst: Sa 06.12.14 02:58
Bei mir sah das ungefähr so aus:
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:
| private void Button_Click(object sender, RoutedEventArgs evta) { for (int t = 0; t < 10; t++) { for (int h = 0; h < 10; h++) { for (int r = 0; r < 10; r++) { for (int e = 0; e < 10; e++) { for (int w = 0; w < 10; w++) { for (int o = 0; o < 10; o++) { for (int n = 0; n < 10; n++) { int result = (t * 10000 + h * 1000 + r * 100 + e * 10 + e) * 2 + (t * 100 + w * 10 + o) * 2 + o * 100 + n * 10 + e; if (result % 10 == n) { if (result % 100 / 10 == e && result % 10000 / 1000 == e && result % 1000000 / 100000 == e) { var l = result % 100000 / 10000; var v = result % 1000 / 100; if (AllUnequal(t, h, r, e, w, o, n, l, v)) { Console.WriteLine(result); Console.WriteLine("t:{0} h:{1} r:{2} e:{3} w:{4} o:{5} n:{6} l:{7} v:{8}", t, h, r, e, w, o, n, l, v); } } } } } } } } } } } |
Unerwartet schnell, und es kommen drei Lösungen heraus. Von denen ist aber nur die Richtig, bei der E != 0 ist.
Für diesen Beitrag haben gedankt: Mathematiker
|
|
Jann1k
      
Beiträge: 866
Erhaltene Danke: 43
Win 7
TurboDelphi, Visual Studio 2010
|
Verfasst: Sa 06.12.14 08:52
Also ohne die Hilfe hätte ich das heutige Rätsel wahrscheinlich nicht gemacht. Per Hand lösen geht zwar schnell, aber das ganze nur mit den Buttons wäre mir dann doch zu umständlich gewesen.
Zuletzt bearbeitet von Jann1k am Sa 06.12.14 11:55, insgesamt 1-mal bearbeitet
|
|
trm
      
Beiträge: 491
Erhaltene Danke: 19
Windows 7x64
Delphi 7
|
Verfasst: Sa 06.12.14 11:42
Meine Lösung sah übrigens so aus...

Einloggen, um Attachments anzusehen!
_________________ In Erfurt gibt es eine Pension, in der es gemütlich ist, Google einfach nach Pension Fiege
Zuletzt bearbeitet von trm am Sa 06.12.14 12:05, insgesamt 1-mal bearbeitet
|
|
Mathematiker
      
Beiträge: 2622
Erhaltene Danke: 1448
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Sa 06.12.14 11:48
Hallo,
schöne Lösung, wenngleich es schwierig ist, das zu verstehen.
Kannst du bitte die Abbildung etwas kleiner machen. Bei langsamen Internetverbindungen, wie meiner, sind 2 MB Bild nicht so schnell zu laden.
Und der Hinweis auf ein anderes Spiel muss nicht sein.
Beste Grüße
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
Boldar
      
Beiträge: 1555
Erhaltene Danke: 70
Win7 Enterprise 64bit, Win XP SP2
Turbo Delphi
|
Verfasst: So 07.12.14 06:24
Sind die Lampen wirklich immer lösbar? (Kann sein dass ich jetzt einfach zu müde bin, aber ich habe den eindruck die Anordnung ist logisch nicht lösbar. Ich schaue es mir später nochmal an und setze dann einen screenshot rein. Sehr nervig übrigens das immer neu-generieren des rätsels beim klick auf "Zurücksetzen" - das wäre besser wenn das nur die Lampen entfernen würde.
|
|
Mathematiker
      
Beiträge: 2622
Erhaltene Danke: 1448
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: So 07.12.14 06:49
Hallo,
Boldar hat folgendes geschrieben : | Sind die Lampen wirklich immer lösbar? |
Ja, sind sie.
Boldar hat folgendes geschrieben : | Sehr nervig übrigens das immer neu-generieren des rätsels beim klick auf "Zurücksetzen" - das wäre besser wenn das nur die Lampen entfernen würde. |
Das ist Ansichtssache.  Dadurch wird es aber schwerer.
Beste Grüße
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
|