Page 1 of 12
Sudoku
Posted: Thu 05 Oct 2006 19:37
by Puzzle
Ik denk dat ik de snelste manier heb gevonden om Sudoku-puzzels op te lossen.
Ik heb er een
Java-applet voor geschreven, zodat jullie nu meer tijd hebben om te koersen.
Ik sluit niet uit dat er een speciaal geval is dat het niet kan oplossen.
Posted: Fri 06 Oct 2006 16:06
by Puzzle
Gelieve geen pm meer te sturen om naar de broncode te vragen, a.u.b.
Posted: Fri 06 Oct 2006 18:41
by Galibier2646
Puzzle wrote:Gelieve geen pm meer te sturen om naar de broncode te vragen, a.u.b.
He Cliff

,
No problem amigo. We wilden gewoon even vergelijken !
Voor de geïnteresseerden, broncode via pm te verkrijgen vanaf 1 november... ( nie deze van Cliff aka Puzzle )
Grtz
Re: Sudoku
Posted: Fri 06 Oct 2006 18:42
by Galibier2646
Puzzle wrote:
Ik sluit niet uit dat er een speciaal geval is dat het niet kan oplossen.
... oh ja , de onze lost ze wel allemaal op !

Re: Sudoku
Posted: Sat 07 Oct 2006 10:24
by Puzzle
Galibier2646 wrote:Puzzle wrote:
Ik sluit niet uit dat er een speciaal geval is dat het niet kan oplossen.
... oh ja , de onze lost ze wel allemaal op !

Bewijs het.
Re: Sudoku
Posted: Sat 07 Oct 2006 18:03
by Galibier2646
Puzzle wrote:Galibier2646 wrote:Puzzle wrote:
Ik sluit niet uit dat er een speciaal geval is dat het niet kan oplossen.
... oh ja , de onze lost ze wel allemaal op !

Bewijs het.
ok

Posted: Mon 09 Oct 2006 14:19
by Puzzle
Code: Select all
// File: CijferFrequentie.java
// Date: 30 September 2006.
//
// Copyright (c) 2006 Cliff Huylebroeck. All Rights Reserved.
//
// Permission to use, copy, modify, and distribute this software
// and its documentation for NON-COMMERCIAL purposes and without
// fee is hereby granted provided that this copyright notice
// appears in all copies.
//
// Cliff Huylebroeck MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE
// SUITABILITY OF THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT
// NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR
// A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. Cliff Huylebroeck SHALL NOT
// BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING,
// MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
public class CijferFrequentie
{
private int aantal[]=null;
private Vak vakken[]=null;
public CijferFrequentie()
{
aantal=new int[9];
vakken=new Vak[9];
}
public void MaakLeeg()
{
for (int i=0;i<9;i++)
{
aantal[i]=0;
// opm: geen vakken.
}
}
public void Tel(final int cijfer,
final Vak vak)
{
final int i=cijfer-1;
aantal[i]++;
vakken[i]=vak;
}
public void Tel(final CijferVerzameling cijferVerzameling,
final Vak vak)
{
for (int cijfer=1;cijfer<=9;cijfer++)
{
if (cijferVerzameling.Bevat(cijfer))
{
Tel(cijfer,
vak);
}
}
}
public boolean KomtNietVoor(final int cijfer)
{
final int i=cijfer-1;
return aantal[i]==0;
}
public boolean KomtEenKeerVoor(final int cijfer)
{
final int i=cijfer-1;
return aantal[i]==1;
}
public Vak GeefVak(final int cijfer)
{
final int i=cijfer-1;
return vakken[i];
}
}
Posted: Mon 09 Oct 2006 14:19
by Puzzle
Code: Select all
// File: CijferVerzameling.java
// Date: 30 September 2006.
//
// Copyright (c) 2006 Cliff Huylebroeck. All Rights Reserved.
//
// Permission to use, copy, modify, and distribute this software
// and its documentation for NON-COMMERCIAL purposes and without
// fee is hereby granted provided that this copyright notice
// appears in all copies.
//
// Cliff Huylebroeck MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE
// SUITABILITY OF THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT
// NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR
// A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. Cliff Huylebroeck SHALL NOT
// BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING,
// MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
public class CijferVerzameling
{
private int aantal;
private boolean bevat[]=null;
public CijferVerzameling()
{
bevat=new boolean[9];
}
public void VoegAllesToe()
{
aantal=9;
for (int i=0;i<9;i++)
{
bevat[i]=true;
}
}
public void SchrapAlles()
{
aantal=0;
for (int i=0;i<9;i++)
{
bevat[i]=false;
}
}
public void VoegToe(final int cijfer)
{
final int i=cijfer-1;
final boolean isElement=bevat[i];
if (!isElement)
{
aantal++;
bevat[i]=true;
}
}
public void Schrap(final int cijfer)
{
final int i=cijfer-1;
final boolean isElement=bevat[i];
if (isElement)
{
aantal--;
bevat[i]=false;
}
}
public int GeefAantal()
{
return aantal;
}
public boolean Bevat(final int cijfer)
{
final int i=cijfer-1;
return bevat[i];
}
public int GeefEnige()
{
for (int i=0;i<9;i++)
{
if (bevat[i])
{
return i+1;
}
}
// opm: hier zouden we niet mogen komen.
return 0;
}
public int GeefWillekeurig()
{
for (int i=0;i<9;i++)
{
if (bevat[i])
{
return i+1;
}
}
// opm: hier zouden we niet mogen komen.
return 0;
}
}
Posted: Mon 09 Oct 2006 14:20
by Puzzle
Code: Select all
// File: GekozenVakken.java
// Date: 30 September 2006.
//
// Copyright (c) 2006 Cliff Huylebroeck. All Rights Reserved.
//
// Permission to use, copy, modify, and distribute this software
// and its documentation for NON-COMMERCIAL purposes and without
// fee is hereby granted provided that this copyright notice
// appears in all copies.
//
// Cliff Huylebroeck MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE
// SUITABILITY OF THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT
// NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR
// A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. Cliff Huylebroeck SHALL NOT
// BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING,
// MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
import java.util.Stack;
public class GekozenVakken
{
private Stack cijfers=null;
public GekozenVakken()
{
cijfers=new Stack();
}
public void VoegToe(final Vak vak)
{
cijfers.push(vak);
}
public Vak Geef()
{
return (Vak)cijfers.pop();
}
public boolean IsLeeg()
{
return cijfers.empty();
}
public void MaakLeeg()
{
while (!IsLeeg())
{
Geef();
}
}
}
Posted: Mon 09 Oct 2006 14:21
by Puzzle
Code: Select all
// File: MogelijkeCijfers.java
// Date: 30 September 2006.
//
// Copyright (c) 2006 Cliff Huylebroeck. All Rights Reserved.
//
// Permission to use, copy, modify, and distribute this software
// and its documentation for NON-COMMERCIAL purposes and without
// fee is hereby granted provided that this copyright notice
// appears in all copies.
//
// Cliff Huylebroeck MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE
// SUITABILITY OF THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT
// NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR
// A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. Cliff Huylebroeck SHALL NOT
// BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING,
// MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
public class MogelijkeCijfers extends CijferVerzameling
{
public MogelijkeCijfers()
{
}
public void MaakLeeg()
{
VoegAllesToe();
}
}