Autor |
Beitrag |
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Sa 01.06.13 11:06
Hallo,
es soll keine Konkurrenz zu www.entwickler-ecke....+gesucht_111556.html sein, aber ich habe auch einmal die berühmten Ameisen versucht.
Eingegeben werden kann die Anzahl der Ameisen (maximal 50) und ein Regelsystem (max.Länge 15) bestehend aus L und R für links und rechts, dass mit seiner Länge auch die Anzahl der verwendeten Farben festlegt.
Ist der Rechner schnell genug, dann können auch Tausende Schritte in sehr kurzer Zeit ermittelt und angezeigt werden.
Im Gegensatz zum Original lasse ich mich meine Ameisen auf einem (aufgefalteten) Torus laufen. Dadurch entstehen noch zusätzliche Effekte. U.a. kann es geschehen, dass zwei Ameisen mit der Regel LR ihre Wege wieder löschen.
Interessante Regelsysteme, außer dem klassischen LR, sind z.B. RLR, LLRR, LRRRRRLLR, LLRRRLRLRLLR und RRLLLRLLLRRR.
Beste Grüße
Mathematiker
Rev 1: Änderung in der Geschwindigkeitsauswahl und weiteres. Quelltext kommentiert. Regel kann Länge 20 annehmen.
Rev 2: Erste Ameise kann zentral starten und weitere kleine Änderungen
Rev 3: Ideen von Horst_H eingebaut, wodurch der Ablauf deutlich schneller wird.
Rev 4: Wenn es um Geschwindigkeit bei solchen grafischen Darstellungen geht, kann nur Horst_H helfen. Seine Superidee mit Scanline macht das Programm nochmals viel schneller; mehr als 20 Millionen Schritte je Sekunde auf meinem alten PC.
Rev 5: Eine Änderung der Darstellungsgeschwindigkeit wirkt sich auch während der Simulation aus.
Rev 6: Über den Schalter "Regeln testen" werden systematisch, ab der eigegebenen Regel, alle getestet und jeweils einige Millionen Schritte berechnet.
Rev 7: Für jede Regel wird die "Horst_H-Martok"-Nummer angegeben.
Rev 8: Regel kann entweder als String mit L und R oder aber über die "Horst_H-Martok"-Nummer eingegeben werden.
Rev 9: Torus kann abgeschaltet werden.
Rev 10: Die erzeugten Abbildungen können automatisch als GIF gespeichert werden.
Rev 11: Veränderte Dateinamen beim Speichern. Unter "Regel testen" werden die Regeln mit einem 'R' am Anfang übersprungen, da diese schon mit der symmetrischen Regel (L gegen R getauscht) schon untersucht wurden.
In einem späteren Beitrag befindet sich ein analoges Programm zu Turmiten.
Einloggen, um Attachments anzusehen!
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
Zuletzt bearbeitet von Mathematiker am Mo 17.06.13 19:11, insgesamt 14-mal bearbeitet
Für diesen Beitrag haben gedankt: Delphi-Laie, lenamarkert
|
|
IhopeonlyReader
Beiträge: 600
Erhaltene Danke: 23
Delphi 7 PE
|
Verfasst: Sa 01.06.13 12:42
Guten Tag,
ja wie öfters arbeiten wir "paralell" Aber ist doch auch schön mal andere "Quelltexte" zu sehen oder?
- zum Quelltext:
finde ich leider sehr unübersichtlich
- Fehler gefunden (wundert mich, dass das bei dir klappt):
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| const abbruch:boolean = true; if not abbruch then begin abbruch:=true; exit; end;
abbruch:=false; |
du weist einer Konstanten einen Wert zu ?!
und am Anfang evt. dein Label "aktualisieren", sonst klickt man erneut auf Starten und ist angeblich schon bei Schritt 100 mio obwohl man bei 0,2 mioist
label3.caption := '0'; am Anfang reicht ja
-Farbe müsste geändert werden, aber ich seh nur "schwarz/weiß"
sollte noch einstellbar sein: Startposition einer neuen Ameise, jede Ameise besitzt verschiedene Regeln etc... gibt viel zu tun
_________________ Sucht "neueres" Delphi
Wer nicht brauch was er hat, brauch auch nicht was er nicht hat!
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Sa 01.06.13 13:00
Hallo,
IhopeonlyReader hat folgendes geschrieben : | - Fehler gefunden (wundert mich, dass das bei dir klappt):
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| const abbruch:boolean = true; if not abbruch then begin abbruch:=true; exit; end; abbruch:=false; |
du weist einer Konstanten einen Wert zu ?! |
Das ist kein Fehler, sondern eine typisierte Konstante (Compilerschalter {$J+})
Alles andere sehe ich mir noch an. Danke für die Hnweise.
Beste Grüße
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
IhopeonlyReader
Beiträge: 600
Erhaltene Danke: 23
Delphi 7 PE
|
Verfasst: Sa 01.06.13 13:35
Mathematiker hat folgendes geschrieben : |
Das ist kein Fehler, sondern eine typisierte Konstante (Compilerschalter {$J+})
|
Für mich sind das dann variablen
P.S: Mein Compiler meckert auch, dass der linken Seite (abbruch) nichts zugewiesen werden kann.. ab welcher Delphi-Version geht das?
(ich hatte mal in anderen Threads gelesen, dass du mit Delphi 5 arbeitest ? ich habe Delphi 7, wieso geht's bei dir und mir nicht Oo )
_________________ Sucht "neueres" Delphi
Wer nicht brauch was er hat, brauch auch nicht was er nicht hat!
|
|
jaenicke
Beiträge: 19272
Erhaltene Danke: 1740
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 01.06.13 14:55
|
|
IhopeonlyReader
Beiträge: 600
Erhaltene Danke: 23
Delphi 7 PE
|
Verfasst: Sa 01.06.13 16:02
Ich habe bei meiner "Ameisen-Turingmaschine" eine extra Unit zum Typ TAmeise angelegt
die finde ich übersichtlicher.. für Mahtematiker als Beispiel:
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:
| unit uTAmeise;
interface
uses Windows, uT2DDDynArray, Graphics;
Procedure FeldErstellen; Procedure FeldFree; Procedure FeldZeichne( var Bild: TBitmap );
type TAmeise = class private Schritte: Cardinal; SAusrichtung, Ausrichtung: ShortInt; Position: TPoint; BG, BUG: ShortInt; procedure gehRechts; procedure gehLinks; procedure lauf; public property Schritt: Cardinal read Schritte; property StartAusrichtung: ShortInt read SAusrichtung; property BeiUngeraden: ShortInt read BUG; property BeiGeraden: ShortInt read BG;
constructor create(Start_Ausrichtung, Bei_Ungeraden, Bei_Geraden: ShortInt); procedure EinWeiter; procedure Weiter( AnzahlSchritte: Cardinal ); procedure GehAuf( SchrittNr: Cardinal ); procedure setBeiUngeraden( Bei_Ungeraden: ShortInt ); procedure setBeiGeraden( Bei_Geraden: ShortInt ); destructor destroy; override;
procedure Zeichne( var Bild: TBitmap; ZStartpunkt, ZPosition: Boolean ); end;
var Feld: T2DArray;
const Oben = 0; Rechts = 1; Unten = 2; Links = 3;
WSize = 0; HSize = 0; implementation
Procedure FeldErstellen; begin Feld := T2DArray.create( -WSize, WSize, -HSize, HSize, weiss); end;
Procedure FeldFree; begin Feld.Free; end;
Procedure FeldZeichne( var Bild: TBitmap ); begin Feld.zeichne( Bild ); end;
procedure TAmeise.gehRechts; begin case Ausrichtung of Oben: Ausrichtung := Rechts; Rechts: Ausrichtung := Unten; Unten: Ausrichtung := Links; Links : Ausrichtung := Oben; else end; end;
procedure TAmeise.gehLinks; begin case Ausrichtung of Oben: Ausrichtung := Links; Rechts: Ausrichtung := Oben; Unten: Ausrichtung := Rechts; Links : Ausrichtung := Unten; else end; end;
procedure TAmeise.lauf; begin case Ausrichtung of Oben: dec(Position.Y); Rechts: inc(Position.X); Unten: inc(Position.Y); Links: dec(Position.X); else end; end;
constructor TAmeise.create(Start_Ausrichtung, Bei_Ungeraden, Bei_Geraden: ShortInt); begin Schritte := 0; Ausrichtung := Start_Ausrichtung; SAusrichtung := Start_Ausrichtung; BG := Bei_Geraden; BUG := Bei_Ungeraden; Position.X := 0; Position.Y := 0; end;
procedure TAmeise.EinWeiter; procedure Dreh(Richtung: ShortInt); begin case Richtung of Oben: begin end; Rechts: gehRechts; Unten: begin gehRechts; gehRechts; end; Links: gehLinks; else end; end; begin if Feld.read( Position.X, Position.Y) then begin Feld.write( Position.X, Position.Y, weiss); Dreh( BG ); end else begin Feld.write( Position.X, Position.Y, schwarz); Dreh( BUG ); end; lauf; Feld.sfnE( Position.X, Position.Y ); inc(Schritte); end;
procedure TAmeise.Weiter( AnzahlSchritte: Cardinal ); var C: Cardinal; begin For C := 1 to AnzahlSchritte do EinWeiter; end;
procedure TAmeise.GehAuf( SchrittNr: Cardinal ); begin if SchrittNr >= Schritt then Weiter( SchrittNr - Schritt ) else begin free; create( SAusrichtung, BUG, BG ); Weiter( SchrittNr ); end; end;
procedure TAmeise.setBeiUngeraden( Bei_Ungeraden: ShortInt ); begin BUG := Bei_Ungeraden; end;
procedure TAmeise.setBeiGeraden( Bei_Geraden: ShortInt ); begin BG := Bei_Geraden; end;
procedure TAmeise.Zeichne( var Bild: TBitmap; ZStartpunkt, ZPosition: Boolean ); begin if ZStartpunkt then Feld.UmrandePixel( Bild, 0, 0, cllime, bsBDiagonal); if ZPosition then Feld.UmrandePixel( Bild, Position.X, Position.Y , clred, bsClear); end;
initialization FeldErstellen;
finalization FeldFree; end. |
_________________ Sucht "neueres" Delphi
Wer nicht brauch was er hat, brauch auch nicht was er nicht hat!
Zuletzt bearbeitet von IhopeonlyReader am Sa 01.06.13 16:14, insgesamt 2-mal bearbeitet
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Sa 01.06.13 19:03
Hallo,
jaenicke hat folgendes geschrieben : | Vor allem die selbst angebbaren Regeln machen das Programm interessant. |
Danke.
jaenicke hat folgendes geschrieben : | Diese typisierten Konstanten sind nur wegen Kompatibilität mit Delphi 1 noch vorhanden und sie zu verwenden ist sehr schlechter Programmierstil, da man durch das const jeden Leser des Quelltextes in die Irre führt. Und diese Irreführung ist ja auch der einzige Unterschied zu echten Variablen, denen man das auch ansieht, dass es Variablen sind. |
Ist ja beabsichtigt. Nein, nicht wirklich. Ich habe es in Revision 1 geändert.
Aus irgendeinem Grund "liebe" ich dieses Konstrukt. Warum, kann ich nicht begründen.
IhopeonlyReader hat folgendes geschrieben : | Ich habe bei meiner "Ameisen-Turingmaschine" eine extra Unit zum Typ TAmeise angelegt
die finde ich übersichtlicher.. |
Das bestreite ich nicht. Ich versuche immer möglichst schnell die Idee als Quelltext umzusetzen und den Quelltext möglichst kurz zu halten. Dass dies kein moderner und gut lesbarer Stil ist, weiß ich.
Selbst auf die Gefahr hin, dass einige lachen: Sobald ich einen Algorithmus mir überlegt habe, "sehe" ich den Quelltext und tippe darauflos. Dadurch wird es bei mir oft nur eine einzige, wichtige Methode.
Müsste ich im Team programmieren, hätten mich die Anderen schon lange ... und ich würde wohl gefeuert.
In der Revision 1 habe ich noch einige Änderungen durchgeführt. Die maximale Regelsystemlänge ist jetzt 20.
Den Quelltext habe ich etwas kommentiert. Für richtiges Programmieren ist das noch nicht ausreichend. Ich weiß.
Beste Grüße
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
IhopeonlyReader
Beiträge: 600
Erhaltene Danke: 23
Delphi 7 PE
|
Verfasst: Sa 01.06.13 19:17
Welcher Hobby-Programmierer würde in einer Programmiergruppe nicht gehasst
Aber ich versuche mein Quelltext, wenn ich weiß dass andere versuchen werden ihn zu verstehen, so zu konstruieren, dass er für die späteren Leser, die die Programmiersprache evt. nur in Teilen beherrschen, verständlich ist.
P.S: Meine Mammutsätze mag ich auch (siehe 2ten Satz oben)
_________________ Sucht "neueres" Delphi
Wer nicht brauch was er hat, brauch auch nicht was er nicht hat!
|
|
jaenicke
Beiträge: 19272
Erhaltene Danke: 1740
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 01.06.13 20:09
Mathematiker hat folgendes geschrieben : | Den Quelltext habe ich etwas kommentiert. Für richtiges Programmieren ist das noch nicht ausreichend. Ich weiß. |
Der beste Quelltext ist der, der nur wenige Kommentare braucht. An der Stelle bist du auch auf einem guten Weg, denn du bezeichnest wie ich schon geschrieben hatte deine Variablen sinnvoll. Das fehlt vielen. Und einrücken tust du auch.
Deine jetzige Anzahl an Kommentaren ist normalerweise ausreichend, wenn der Quelltext ansonsten gut ist. (Für Spezialfälle oder spezielle Erklärungen natürlich nicht.)
Dass der Quelltext nicht in gut benannte Funktionen aufgeteilt ist und noch dazu direkt im Buttonklick liegt, lässt sich bei der Länge des Quelltextes verschmerzen, ist bei größeren Programmen aber ein ernstes Problem.
Schlecht lesbar ist der Quelltext durch folgende Faktoren: - Keine Groß- und Kleinschreibung:
Wie auch in der deutschen Sprache selbst macht das Quelltext sehr viel schlechter lesbar.
setlength versteht man nun einmal z.B. langsamer als SetLength.
- Keine Leerzeichen neben Operatoren usw.:
Ich finde es deutlich übersichtlicher, wenn Parameter usw. auch visuell getrennt sind, z.B.
Delphi-Quelltext 1:
| TempBitmap.Canvas.Rectangle(-1, -1, breite + 1, hoehe + 1); |
statt
Delphi-Quelltext 1:
| tempbitmap.Canvas.rectangle(-1,-1,breite+1,hoehe+1); |
- Mehrere Befehle in einer Zeile:
Delphi-Quelltext 1:
| for j:=0 to tempbitmap.height+1 do speicher[i,j]:=0; |
Man muss erst die gesamte Zeile anschauen um zu sehen, ob dort noch Befehle folgen oder ob die danach folgenden Zeilen zur Schleife gehören.
Diese Punkte findest du so übrigens auch im Object Pascal Style Guide.
Für diesen Beitrag haben gedankt: Mathematiker
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Sa 01.06.13 21:41
Hallo,
In der Revision 2 habe ich versucht, etwas von dem Genannten zu berücksichtigen.
Außerdem kann man jetzt eine einzelne Ameise zentral starten lassen. Damit werden die Ergebnisse "symmetrischer".
Faszinierend finde ich die Regel "LLRRLLRRLLRRLLRR" (4mal die voreingestellte). Die dort entstehenden Abbildungen sind schon bemerkenswert; chaotische Teile und Abschnitte mit einer gewissen Ordnung.
Beste Grüße
Mathematiker
Nachtrag: Ich melde mich erst einmal für 6 Tage aus der EE ab. Morgen geht's auf Klassenfahrt in die Toscana.
Ob ich soll oder , weiß ich erst hinterher. Mal sehen, wieviel Ärger mir meine "Lieblinge" machen.
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
IhopeonlyReader
Beiträge: 600
Erhaltene Danke: 23
Delphi 7 PE
|
Verfasst: Sa 01.06.13 21:45
Ab schritt 40mio siehts aus wie ein Panzer
_________________ Sucht "neueres" Delphi
Wer nicht brauch was er hat, brauch auch nicht was er nicht hat!
|
|
Martok
Beiträge: 3660
Erhaltene Danke: 604
Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
|
Verfasst: Sa 01.06.13 23:51
Ihr solltet alle mal NKS lesen
So falsch kann der Herr Wolfram da nicht sein, wenn hier wieder genau das gleiche rauskommt.
Faszinierend, Captain.
EDIT: LLLLLRLR ist toll. Da passiert fast nix
Anders als bei normalen CA scheints hier nur 2 Gruppen zu geben: die, die irgendwann den Torus komplett mit "Zufall" füllen (auch wenn vorher vielleicht viel Struktur ist!) und die, die praktisch keinen Weg zurücklegen (Extremfall: LLL... bzw RRR...). Die "nested structures" scheints hier nicht zu geben, oder?
_________________ "The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
|
|
Horst_H
Beiträge: 1652
Erhaltene Danke: 243
WIN10,PuppyLinux
FreePascal,Lazarus
|
Verfasst: So 02.06.13 18:53
Hallo,
ich habe es für Lazarus etwas umgebaut, das aber auch mit Delphi noch funktionieren sollte.
Die Rechnerei bekomme ich mit meinen 3.2 Ghz AMD Ph X4 955 nicht schneller als ~41 Mio Schritte/s ohne irgendeine Darstellung.
Anbei im Programm sind es etwa 27 Mio. Schritte/s, wenn alle 1 Mio Schritte eine Ausgabe erfolgt.
Dazu habe ich die IF Abfragen durch einen Zugriff auf ein Feld geändert.
Ala: In Feld[x] steht der Wert x+1 außer in Feld[max+1], dort steht 0.Ein falscher Sprung ist ja so wahnsinnig teuer.
Edit:
Ich habe spaßeshalber mal den Nährboden in einer zufälligen Farbe eingefärbt, womit sich die Ausgangssituation ändert-> unterschiedliche Ansichten.
Einmal Herzförmig, einmal sehr eckig
Gruß Horst
Einloggen, um Attachments anzusehen!
Für diesen Beitrag haben gedankt: Mathematiker
|
|
Ralf Jansen
Beiträge: 4700
Erhaltene Danke: 991
VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
|
Verfasst: So 02.06.13 19:55
LLRL (eigentlich ein Chaot der irgendwann anfängt eine Strasse zu bauen) macht hin und wieder merkwürdige Effekte aufgrund dessen das es in euren Versionen ein Torus ist.
Sehr spaßig.
Hat schonmal jemand über ein 3D Variante nachgedacht?
|
|
IhopeonlyReader
Beiträge: 600
Erhaltene Danke: 23
Delphi 7 PE
|
Verfasst: So 02.06.13 20:46
Ja, ich
Nur als ich dachte, "wie soll man das als 2D-Bild darstellen" fande ich es nicht eine so tolle Idee...
Ich würde die "hintereinanderliegenden Farben" übereinanderlegen.. also dasselbe als wenn ich die Farben beim 2D entsprechend wähle
_________________ Sucht "neueres" Delphi
Wer nicht brauch was er hat, brauch auch nicht was er nicht hat!
|
|
Horst_H
Beiträge: 1652
Erhaltene Danke: 243
WIN10,PuppyLinux
FreePascal,Lazarus
|
Verfasst: So 02.06.13 21:42
Hallo,
auf youtube gibt es ja schöne Sachen dazu:
www.youtube.com/resu...ch_query=Langton+Ant
Man könnte 3D mäßig das ebene Gitternetz ja auf einen Torus projezieren, aber das ist wohl eher was für 3D Experten.
Das folgende Programm in C# kann viel mehr.
www.lukas.ck-servers...ex.php?id=langtonant
Gruß Horst
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Fr 07.06.13 10:23
Hallo,
nach meiner Klassenfahrt in die Toskana (ich bin sehr, sehr müde) melde ich mich zurück und habe auf die Schnelle in Revision 3 die tollen Ideen von
Horst_H hat folgendes geschrieben : | Dazu habe ich die IF Abfragen durch einen Zugriff auf ein Feld geändert. |
eingebaut.
Dadurch wird es deutlich schneller, allerdings Host_H's Lösung erreiche ich noch nicht.
Jetzt gehe ich erst einmal schlafen und stehe so gegen 8 Uhr Morgen(!) wieder auf.
Beste Grüße
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
Horst_H
Beiträge: 1652
Erhaltene Danke: 243
WIN10,PuppyLinux
FreePascal,Lazarus
|
Verfasst: Fr 07.06.13 11:21
Hallo,
Eine kleine Bitte.Bei Revisionen den Dateinamen ändern Ameise_Rev3 / pameise3
offtopic:
dass Dir das keine Ruhe lässt, obwohl Du müde bist
Angenehme Ruhe
Gruß Horst
|
|
Ralf Jansen
Beiträge: 4700
Erhaltene Danke: 991
VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
|
Verfasst: Fr 07.06.13 12:11
Ich wünsche auch schöne Nicht-Ameisen-Träume.
|
|
Horst_H
Beiträge: 1652
Erhaltene Danke: 243
WIN10,PuppyLinux
FreePascal,Lazarus
|
Verfasst: Mo 10.06.13 14:27
Hallo,
Meine Version ist nur deshalb so schnell, da bitmap.pixels so langsam ist.
Mithilfe Bitmap scanline siehe
edn.embarcadero.com/article/29173 und viele andere, ist Delphi wieder schneller, weil ich bei wieder zurückkopieren muss und anschließend in die paintbox, also zweimal das komplette Bild.
Auf Wikipedia bin ich auf etwas interessantes gestoßen:
Über en.wikipedia.org/wiki/Langton%27s_ant gelangte ich zu
en.wikipedia.org/wiki/Turmite und dann zu
Paterson's_worms
Zitat: | ...{1,0,4,2,0,2,0}..who determined that it halts after 57 trillion timesteps leaving only {1,0,4,2,0,1,5} unsolved. According to Rokicki, the worm is still active after 5.2×1e19 timesteps. |
Wow oder Wau! Das fragte ich mich, wie geht das denn?
en.wikipedia.org/wiki/Hashlife beschrieben auch in www.drdobbs.com/jvm/...pace-and-t/184406478
unter
sourceforge.net/projects/golly/ findet man das passende Win32 Program dazu.
Unter "other rules" ist auch Langton's ant in der LR Form in schwarzweiß und in ein paar Sekunden bis 1e17 brechnet.
Da fehlt nur noch der Wurm, der Primzahlen produziert
Gruß Horst
Moderiert von Martok: URL-Tags repariert
Für diesen Beitrag haben gedankt: Mathematiker
|
|
|