nivS
2011-03-19 19:57:40 UTC
Jeg sidder og bikser med et program som skal forsøge at finde alle de
mulige løsnings metoder til en IQ block. Kort fortalt er der 10
brikker af forskellig form som skal lægges i en 8x8 ramme. Se et foto
her: Loading Image...
Hvis computeren skal forsøge alle kombination så siger mine
beregninger at det er 8*8 = 64 mulige placeringer af en brik og der er
10 brikker så det er vel 64^10 kombinationer? Værre er at en brik jo
både kan vendes om og roteres. Så det giver endnu flere. Det virker
som en total uoverkommelige opgave at få en computer til at løse sådan
en. Men jeg tænkte der der måske sidder nogle matematiske genier der
ude som kan komme på nogle optimeringer eller andet så der ikke skal
forsøges så mange kombinationer.
Jeg har bygget et simpelt C# program op, det minder jo meget om C/C++,
Java, JavaScript eller hvad man nu helst vil programmere i så de
fleste burde kunne være med. Programmet er meget simpelt opbygget, så
ikke noget fancy. Jeg har selv optimeret ved at en brik som er 3x3
ikke bliver placeret så den rager ud over kanten af spille pladen (25
mulige placeringer i stedet for 64), Men det hjælper ikke meget i det
samlede antal iterationer.
Download source koden her: http://nivs.dk/iqsolve.zip (Visual Studio
2008), Når programmet starter viser den først en mulig løsning (så man
kan se de brikker der er til spillet) og ved klik på start knappen går
den i gang med at finde løsninger. Men det tager jo år at komme alle
kombinationer igennem. Så er der nogen der har nogle gode forslag,
eller er det en helt umulig opgave for en almindelig computer at gøre?
Jeg tænkte på noget med flere tråde således at man kan udnytte min
quad core processor eller noget andet?
Mvh. Hans Milling...
mulige løsnings metoder til en IQ block. Kort fortalt er der 10
brikker af forskellig form som skal lægges i en 8x8 ramme. Se et foto
her: Loading Image...
Hvis computeren skal forsøge alle kombination så siger mine
beregninger at det er 8*8 = 64 mulige placeringer af en brik og der er
10 brikker så det er vel 64^10 kombinationer? Værre er at en brik jo
både kan vendes om og roteres. Så det giver endnu flere. Det virker
som en total uoverkommelige opgave at få en computer til at løse sådan
en. Men jeg tænkte der der måske sidder nogle matematiske genier der
ude som kan komme på nogle optimeringer eller andet så der ikke skal
forsøges så mange kombinationer.
Jeg har bygget et simpelt C# program op, det minder jo meget om C/C++,
Java, JavaScript eller hvad man nu helst vil programmere i så de
fleste burde kunne være med. Programmet er meget simpelt opbygget, så
ikke noget fancy. Jeg har selv optimeret ved at en brik som er 3x3
ikke bliver placeret så den rager ud over kanten af spille pladen (25
mulige placeringer i stedet for 64), Men det hjælper ikke meget i det
samlede antal iterationer.
Download source koden her: http://nivs.dk/iqsolve.zip (Visual Studio
2008), Når programmet starter viser den først en mulig løsning (så man
kan se de brikker der er til spillet) og ved klik på start knappen går
den i gang med at finde løsninger. Men det tager jo år at komme alle
kombinationer igennem. Så er der nogen der har nogle gode forslag,
eller er det en helt umulig opgave for en almindelig computer at gøre?
Jeg tænkte på noget med flere tråde således at man kan udnytte min
quad core processor eller noget andet?
Mvh. Hans Milling...