Sudoku

Omdat het niet altijd over mountainbike hoeft te gaan...... Zet een boompje op over alles wat NIET met mountainbike te maken heeft maar hou het wel deftig.
Gebruikersavatar
Puzzle
Mountainbiker
Berichten: 178
Lid geworden op: za 19 aug 2006 11:15
Rijdt met: MBK Super Sprint

Sudoku

Bericht door 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.
Gebruikersavatar
Puzzle
Mountainbiker
Berichten: 178
Lid geworden op: za 19 aug 2006 11:15
Rijdt met: MBK Super Sprint

Bericht door Puzzle »

Gelieve geen pm meer te sturen om naar de broncode te vragen, a.u.b.
Gebruikersavatar
Galibier2646
Mountainbiker
Berichten: 149
Lid geworden op: do 14 okt 2004 21:17
Rijdt met: 2015 - SJ Carbon 29er / Sram X9

Bericht door Galibier2646 »

Puzzle schreef:Gelieve geen pm meer te sturen om naar de broncode te vragen, a.u.b.
He Cliff :wink: ,

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
Gebruikersavatar
Galibier2646
Mountainbiker
Berichten: 149
Lid geworden op: do 14 okt 2004 21:17
Rijdt met: 2015 - SJ Carbon 29er / Sram X9

Re: Sudoku

Bericht door Galibier2646 »

Puzzle schreef:
Ik sluit niet uit dat er een speciaal geval is dat het niet kan oplossen.
... oh ja , de onze lost ze wel allemaal op ! 8)
Gebruikersavatar
Puzzle
Mountainbiker
Berichten: 178
Lid geworden op: za 19 aug 2006 11:15
Rijdt met: MBK Super Sprint

Re: Sudoku

Bericht door Puzzle »

Galibier2646 schreef:
Puzzle schreef:
Ik sluit niet uit dat er een speciaal geval is dat het niet kan oplossen.
... oh ja , de onze lost ze wel allemaal op ! 8)
Bewijs het.
Gebruikersavatar
Galibier2646
Mountainbiker
Berichten: 149
Lid geworden op: do 14 okt 2004 21:17
Rijdt met: 2015 - SJ Carbon 29er / Sram X9

Re: Sudoku

Bericht door Galibier2646 »

Puzzle schreef:
Galibier2646 schreef:
Puzzle schreef:
Ik sluit niet uit dat er een speciaal geval is dat het niet kan oplossen.
... oh ja , de onze lost ze wel allemaal op ! 8)
Bewijs het.
ok :wink:
Gebruikersavatar
Puzzle
Mountainbiker
Berichten: 178
Lid geworden op: za 19 aug 2006 11:15
Rijdt met: MBK Super Sprint

Bericht door Puzzle »

Code: Selecteer alles

// 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];
    }
}
Gebruikersavatar
Puzzle
Mountainbiker
Berichten: 178
Lid geworden op: za 19 aug 2006 11:15
Rijdt met: MBK Super Sprint

Bericht door Puzzle »

Code: Selecteer alles

// 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;
    }
}
Gebruikersavatar
Puzzle
Mountainbiker
Berichten: 178
Lid geworden op: za 19 aug 2006 11:15
Rijdt met: MBK Super Sprint

Bericht door Puzzle »

Code: Selecteer alles

// 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();
            }
    }
}
Gebruikersavatar
Puzzle
Mountainbiker
Berichten: 178
Lid geworden op: za 19 aug 2006 11:15
Rijdt met: MBK Super Sprint

Bericht door Puzzle »

Code: Selecteer alles

// 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();
    }
}
Plaats reactie