Search found 16 matches

by Manfred
Tuesday 28. December 2010, 13:25
Forum: Extreme Str8ts
Topic: Solver
Replies: 19
Views: 34013

Brute Force Batch

... und hier noch einmal in Deutsch: StrassenRows und StrassenCols errechnen alle "Straits" für Reihen und Spalten . "iterate" ist das zentrale rekursive Unterprogramm, um durch die möglichen Ziffernfolgen zu iterieren. "notStr8t" und "checkStr8t" überprüfen, ...
by Manfred
Tuesday 28. December 2010, 11:43
Forum: Extreme Str8ts
Topic: Solver
Replies: 19
Views: 34013

Brute Force Batch-program

Some explanations: StrassenRows and StrassenCols calculate all straits for Rows and Columns. iterate is the main recursive routine to iterate through all possible Digit-Combinations. notStr8t and checkStr8t test, if there is a Hole in a Strait, and if it is legal. The switch CFIRST controls, if iter...
by Manfred
Tuesday 28. December 2010, 11:29
Forum: Extreme Str8ts
Topic: Solver
Replies: 19
Views: 34013

Brute Force Batch-program

As promised, this is the comand-line version of my Brute-Force module in C-Sharp: using System; using System.IO; namespace BFStr8ts { class Program { static bool CFIRST = false; static int CSnum = 0, RSnum = 0, nSol = 0; static int[,] CStreet = new int[36, 3]; // Index, col, anfang, ende static int[...
by Manfred
Monday 6. December 2010, 18:24
Forum: Extreme Str8ts
Topic: Solver
Replies: 19
Views: 34013

@Jens: neuer Compartment Check

Hallo Jens, danke für Deinen Beitrag. Deine Vermutung ist richtig. Die neuen Kandidaten 2 oder 8 würden erst nach Verschiebung des Zahlenfensters nach unten oder oben zum Tragen kommen. Dann könnte die Reihe z. B. so aussehen: "45678, 45678, 678, 678, 678" bei Verschiebung des Fensters nac...
by Manfred
Sunday 5. December 2010, 13:41
Forum: Extreme Str8ts
Topic: Solver
Replies: 19
Views: 34013

neuer Compartment Check

... hier noch einmal das Ganze in Deutsch: ... wie in meinem Beitrag im englischen Extreme Forum angekündigt, erkläre ich also hier mein neues Modul compartment check. Stellen Sie sich folgende Kandidaten in 5 Zellen vor: 34567, 34567, 67, 67, 67. Diese leichte Beispiel kann man gleich erkennen, es ...
by Manfred
Sunday 5. December 2010, 10:46
Forum: Extreme Str8ts
Topic: Solver
Replies: 19
Views: 34013

new Compartment check

... as indicated in the main Extreme page of today, this is my new module for the compartment check. First, why is it needed? Think of a situation, where the candidates are as follows: 34567, 34567, 67, 67, 67. The compartment has the length of 5, and a street 23456 or 45678 could possibly been buil...
by Manfred
Monday 22. November 2010, 03:44
Forum: Extreme Str8ts
Topic: Solver
Replies: 19
Views: 34013

Re: Solver

Bei der Einführung von "Column first" (CFIRST) ist mir jetzt doch noch ein Fehler unterlaufen. Die rekursiv aufgerufene "iterate" Subroutine muss also so aussehen: private void iterate(int row, int col) { int i1, j; bool vorhanden; for (i1 = 1; i1 < 10; i1++) // new Digit { if (f...
by Manfred
Thursday 18. November 2010, 13:41
Forum: Extreme Str8ts
Topic: Solver
Replies: 19
Views: 34013

Re: Solver

Anmerkungen zu meinem Code: 1. Dies ist ein "dummes" Brute-Force Modul für mein ansonsten deduktiv logisches Solver-Programm. Es scheint bei allen Str8ts eine Lösung zu finden, allerdings mit stark unterschiedlichen Lösungszeiten: Extr01 0:01:26,780 Extr02 0:04:14,593 Extr03 0:15:34,546 Ex...
by Manfred
Thursday 18. November 2010, 13:21
Forum: Extreme Str8ts
Topic: Solver
Replies: 19
Views: 34013

Re: Solver

Ich habe die Fehler gefunden. Hier ist der neue Code in C': private bool notStr8t(int row, int col) { int i, iR=-1, iC=-1; for (i = 0; i < RSnum; i++) // find Index of Street in Row if (row == RStreet[i, 0] && col >= RStreet[i, 1] && col < RStreet[i, 2]) { iR = i; break; } if (iR >= ...
by Manfred
Friday 12. November 2010, 10:43
Forum: Extreme Str8ts
Topic: Solver
Replies: 19
Views: 34013

Re: Solver

Hier ist der Horror eines jeden deduktiven Logikers: Meine Brute-Force Lösungstaste. Die Matrizen RStreet und CStreet wurden bei der Aufnahme der Aufgabenstellung von Excel schon eingefüllt: 1. Paramter: Index, 2. Paramter: 0 für die Reihe (oder Spalte), 1 für den Anfangsindex und 2 für den Endindex...