Hello Folks Tvådimensionell vektor? Det blir väl en enkel uttömmande sökning, tror jag? Varför inte göra på samma sätt som man gör manuellt? Det här är i och för sig inte i VB men angreppssättet kan vara intresant. Mycket intressant , skall börja med att porta koden ograverat till VB Förslagsvis väljer du vb.net eller c# så får du lite utmaning. <b> Tvådimensionell vektor? Att 1+2+3+4+5+6+7+8+9 = 45 är sant men att 1+2+4+5+5+6+7+7+8 = 45 är också sant.. så att använda det faktum att 1+2+3+4+5+6+7+8+9 = 45 är inget bra.. eller har jag fel?? Man kanske kan låta 1 representeras av 2 upphöjt i 0, 2 av 2 upphöjt i 1, 3 av 2 upphöjt i 2 etc. Jag skrev en kod i Javascript för ett tag sedan, men jag hittar den inte just nu.Sudoku
I brist på ideer och understimulerad sitter jag och fundera på
att låta datorn lösa ett givet problem till mig.
Hur skulle Ni börja tänka för att låta datorn lösa ett givet Sodoku problem ?Sv: Sudoku
1+2+3+4+5+6+7+8+9 = 45, kan man använda detta faktum?
Sedan är det väl alltid nio "delkuber" index-intervallen 0-2, 3-5, 6-8?
Sv:Sudoku
Fast först efter att man tar alla enkla fall, då.
Alltså typ:
A)
1. Kolla för alla 1:or, 2:or, osv. följande.
2. Finns det ingen av ovanstående i en "storruta"? I så fall:
3. Kolla storrutorna runtom. (samma "storrad" och "storkolumn"), för att konstatera vilka kolumner och rader den inte kan ligga i. Finns det bara en ruta kvar; fyll i den.
B)
1. Kolla för lediga rutor vilka möjliga värden de kan ha. Om det bara är ett, fyll i det.
C)
...
Ifall det finns några fler enkla varianter, gör dem. Gör sen en fixpunktsiteration, dvs kör tills det inte händer något mer. Då har man fyllt i grejen så mycket man kan rent spontant.
Gå sen igenom varje cell, fyll i vilka möjliga värden den kan ha.
Sortera alla lediga celler efter antalet möjliga värden. Traversera sen trädet med de med minst antal val först. Typ.Sv: Sudoku
- Skapa en 3 dimensionell matris där 3:e dimensionen innehåller de möjliga val som finns för varje ruta.
- Gå sedan igenom matrisen med olika metoder och stryk de val som inte är möjliga i varje ruta.Sv: Sudoku
http://www.codeproject.com/useritems/sudoku.aspSv:Sudoku
Sedan får jag se om det finns smartare lösningar.
Tack och ha detSv: Sudoku
Innerst inne längar du nog efter lite nytt.
mvh RolandSv:Sudoku
1+2+3+4+5+6+7+8+9 = 45, kan man använda detta faktum? </b>
Du har rätt . Det är/blir en av vektorerena.
Kör nu Er intelligens !Sv: Sudoku
Sv:Sudoku
Då kan man väl skilja dem åt?
Mvh
Lasse LSv: Sudoku
I alla fall så gick den igenom alla tomma rutor och kolla vilka tal som var möjliga i den rutan, genom att utesluta de tal som fanns på samma rader och i samma delruta.
Typ:
var grid = [...alla rutor...];
for (var y=0; y<9; y++) {
for (var x=0; x<9; x++) {
if (grid[y][x] == 0) {
possible = [1,2,3,4,5,6,7,8,9];
possible.remove(getGridHLine(y));
possible.remove(getGridVLine(x));
possbile.remove(getGridSquare(x, y));
if (possible.length == 1) grid[y][x] = possible[0];
}
}
}
Upprepa så länge den fyller i rutor.