FOK!forum / Digital Corner / [Excel] Sudoku controleren
McCarthyzaterdag 25 maart 2006 @ 18:21
In Excel heb ik 9 x 9 cellen met daarin getallen en nu wilde ik Excel laten controleren of dit een sudoku is.

Hoe doe ik dat? Moet ik Macro's gebuiken of moet ik gaan programeren in VB? Of moet ik gewoon een formule invoeren?

[ Bericht 0% gewijzigd door McCarthy op 25-03-2006 18:55:19 ]
fabericzaterdag 25 maart 2006 @ 18:27
-edit-
Tief op.

[ Bericht 78% gewijzigd door Sander op 26-03-2006 12:31:34 ]
McCarthyzaterdag 25 maart 2006 @ 18:31
Sudoku

hier staat zich wel iets in

Nogmaals: ik hoef ze niet op te lossen, ik wil alleen maar controleren of het er een is
babba_zaterdag 25 maart 2006 @ 18:32
je kunt ook gewoon formule doen, rij bij elkaar optellen en als er allemaal 45 uitkomt dan klopt t wel
McCarthyzaterdag 25 maart 2006 @ 18:37
quote:
Op zaterdag 25 maart 2006 18:32 schreef babba_ het volgende:
je kunt ook gewoon formule doen, rij bij elkaar optellen en als er allemaal 45 uitkomt dan klopt t wel
onzin

1
2
3
4
5
6
7
8
9
10
11
5 5 5  5 5 5  5 5 5
5 5 5  5 5 5  5 5 5
5 5 5  5 5 5  5 5 5

5 5 5  5 5 5  5 5 5
5 5 5  5 5 5  5 5 5
5 5 5  5 5 5  5 5 5

5 5 5  5 5 5  5 5 5
5 5 5  5 5 5  5 5 5
5 5 5  5 5 5  5 5 5
babba_zaterdag 25 maart 2006 @ 18:39
quote:
Op zaterdag 25 maart 2006 18:37 schreef McCarthy het volgende:

[..]

onzin
[ code verwijderd ]
ja klopt uiteraard, wou net veranderen dat je natuurlijk de kolom en de blokken ook moet controleren, maar de insteek was dat je dus gewoon met formule van 9 cijfers optellen kunt controleren dat de sudoku klopt. daarbij wel vanuit gaan dat iemand de sudoku natuurlijk gewoon invult
McCarthyzaterdag 25 maart 2006 @ 18:42
maar daar ga ik dus niet van uit

als je geocntroleerd hebt dat alle getallen 1t/m 9 in de rij voorkomen dan kan je deze truuk natuurlijk wel doen
babba_zaterdag 25 maart 2006 @ 18:45
quote:
Op zaterdag 25 maart 2006 18:42 schreef McCarthy het volgende:
maar daar ga ik dus niet van uit
als je dan wilt controleren of je het goed hebt gedaan hebt of niet, dan moet je misschien eerste even lezen hoe je een sudoku moet oplossen, dan kom je er snel genoeg achter dat je fout zit met allemaal dezelfde cijfers.
babba_zaterdag 25 maart 2006 @ 18:47
quote:
Op zaterdag 25 maart 2006 18:42 schreef McCarthy het volgende:
maar daar ga ik dus niet van uit

als je geocntroleerd hebt dat alle getallen 1t/m 9 in de rij voorkomen dan kan je deze truuk natuurlijk wel doen
dan kun je het dus net zo goed handmatig gaan checken, maar als je een formule sheetje hebt waarbij zowel de rij, als de kolom en het vierkantje worden opgeteld dan merk je snel genoeg in welke rij / kolom / vierkantje de fout zit. Dat werkt gewoon.
fabericzaterdag 25 maart 2006 @ 18:47
quote:
Op zaterdag 25 maart 2006 18:42 schreef McCarthy het volgende:
maar daar ga ik dus niet van uit

als je geocntroleerd hebt dat alle getallen 1t/m 9 in de rij voorkomen dan kan je deze truuk natuurlijk wel doen
het gaat er niet om dat je kijkt of de gemaakte sudoku klopt, maar of een rooster met een aantal cijfers een sudoku IS.
babba_zaterdag 25 maart 2006 @ 18:48
quote:
Op zaterdag 25 maart 2006 18:47 schreef faberic het volgende:

[..]

het gaat er niet om dat je kijkt of de gemaakte sudoku klopt, maar of een rooster met een aantal cijfers een sudoku IS.
dan ga je maar programmeren inderdaad
McCarthyzaterdag 25 maart 2006 @ 18:50
quote:
Op zaterdag 25 maart 2006 18:47 schreef faberic het volgende:

[..]

het gaat er niet om dat je kijkt of de gemaakte sudoku klopt, maar of een rooster met een aantal cijfers een sudoku IS.
ik heb gewoon een rooster met 9 x 9 cijfers en ik wil weten of het een sudoku is. Dus 1 t/m 9 in elke rij en elke kolom + die eis van de 3 x 3 vierkanten.

Hoe doe ik dat in Excel
northernlight81zaterdag 25 maart 2006 @ 18:54
quote:
Op zaterdag 25 maart 2006 18:50 schreef McCarthy het volgende:

[..]

ik heb gewoon een rooster met 9 x 9 cijfers en ik wil weten of het een sudoku is. Dus 1 t/m 9 in elke rij en elke kolom + die eis van de 3 x 3 vierkanten.

Hoe doe ik dat in Excel
Wil je nou zelf een sudoku maken? of hem controleren.
Voor controleren gewoon alle rijen en kolommen en die 3x3 vierkanten optellen in excel en alles moet 45 zijn.

Zelf maken lijkt me moeilijk, want je weet niet of je in het begin genoeg getallen hebt om hem op te kunnen lossen.
McCarthyzaterdag 25 maart 2006 @ 18:54
Kijk, ik kan het natuurlijk ook in Java doen, eitje maar ik wil nu Excel
McCarthyzaterdag 25 maart 2006 @ 18:55
quote:
Op zaterdag 25 maart 2006 18:54 schreef northernlight81 het volgende:

[..]

Wil je nou zelf een sudoku maken? of hem controleren.
Voor controleren gewoon alle rijen en kolommen en die 3x3 vierkanten optellen in excel en alles moet 45 zijn.
nee, zie tegenvoorbeeld


1
2
3
4
5
6
7
8
9
10
11
5 5 5  5 5 5  5 5 5
5 5 5  5 5 5  5 5 5
5 5 5  5 5 5  5 5 5

5 5 5  5 5 5  5 5 5
5 5 5  5 5 5  5 5 5
5 5 5  5 5 5  5 5 5

5 5 5  5 5 5  5 5 5
5 5 5  5 5 5  5 5 5
5 5 5  5 5 5  5 5 5
HenryHillzaterdag 25 maart 2006 @ 18:58
Excel kan ook lijsten van getallen sorteren. Dus, schrijf een formule die alle getallen uit een rij, kolom of 3x3 blok neemt, sorteer die, en check vervolgens of deze lijst gelijk is aan de verzameling {1..9}. Met een beetje geluk kan je 'm tijdens het sorteren ook nog alle dubbele getallen weg laten halen, dan hoef je alleen nog maar te kijken of je na het sorteren nog steeds 9 getallen hebt.
McCarthyzaterdag 25 maart 2006 @ 19:01
had ik ook al aan gedacht alleen ik heb geen sort function in mijn oude excel versie
Christiaanzaterdag 25 maart 2006 @ 19:05
www.sudokusolver.co.uk
McCarthyzaterdag 25 maart 2006 @ 19:08
quote:
Op zaterdag 25 maart 2006 19:05 schreef --Christiaan-- het volgende:
www.sudokusolver.co.uk
ik wil hem niet solven
McCarthyzaterdag 25 maart 2006 @ 19:11
als er een formule is die controleert of de ene verzemling een subverzameling is van de ander kan ik ook al aan de slag?

dan doe ik gewoon iets van subset([1, 2, 3, 4, 5, 6, 7, 8, 9]; b1:b9)
Christiaanzaterdag 25 maart 2006 @ 19:11
quote:
Op zaterdag 25 maart 2006 19:08 schreef McCarthy het volgende:

[..]

ik wil hem niet solven
Je kunt kijken of hij te solven is
McCarthyzaterdag 25 maart 2006 @ 19:13
quote:
Op zaterdag 25 maart 2006 19:11 schreef --Christiaan-- het volgende:

[..]

Je kunt kijken of hij te solven is

de OP is toch niet zo moeilijk
McCarthyzaterdag 25 maart 2006 @ 19:14
nieuwe andere vraag: In Excel zitten dus standaard functies als SUM en AVERAGE, hoe kan ik zelf zo iets maken?
gohan16zaterdag 25 maart 2006 @ 19:19
waar maken? in vb, c++?? of gewoon SUM(A1:A9) ??
McCarthyzaterdag 25 maart 2006 @ 19:20
quote:
Op zaterdag 25 maart 2006 19:19 schreef gohan16 het volgende:
waar maken? in vb, c++?? of gewoon SUM(A1:A9) ??
weet niet waar
ik wil gewoon zelf een functie maken
HenryHillzaterdag 25 maart 2006 @ 20:42
quote:
Op zaterdag 25 maart 2006 19:14 schreef McCarthy het volgende:
nieuwe andere vraag: In Excel zitten dus standaard functies als SUM en AVERAGE, hoe kan ik zelf zo iets maken?
Daar moet je ook een heel eind mee komen, denk ik.
Som van {1..9} = 1 + 9 + 2 + 8 + 3 + 7 + 4 + 6 + 5 = 4 * 10 + 5 = 45
Gemiddelde: 45 / 9 = 5

Om te voorkomen dat de rij {5, 5, 5, ... } (9 keer 5) ook als een geldige oplossing wordt gezien zou je bijvoorbeeld gebruik kunnen maken van de standaarddeviatie (stddev) of variantie, waarbij de laatste het kwadraat is van de eerste. Voor de verzameling {1..9} is de variantie 7,5
(formule "STDEV(A1:A9) ^ 2")

1=AND(SUM(B2:J2) = 45; AVERAGE(B2:J2) = 5; STDEV(B2:J2)^2 = 7,5)
(Waarbij je natuurlijk de range B2:J2 moet aanpassen voor de rij, kolom of het blok wat je wilt controleren)

[ Bericht 11% gewijzigd door HenryHill op 25-03-2006 20:49:41 ]
McCarthyzaterdag 25 maart 2006 @ 20:58
ik ben al zelf een user defined function aan het programeren

Wat ik nu wil weten is dit:

dit is de eerste regel

Function Check(Bereik As Object) As Boolean

Bereik zijn cellen die je er in stopt (je weet wel, als je bv SUM kiest kan je in de sheet zelf cellen selecteren, dat dus). Ik wil nu het aantal rijen en kolomen weten.

hoe doe ik dat?
hooibaalzaterdag 25 maart 2006 @ 21:19
Volgens mij ben je er (ook) als je controleert dat
SOM(rij) = 45 (en ook voor kolommen en blokken)
en PRODUKT (rij) = 9! = 362880 (en ook voor kolommen en blokken)
McCarthyzaterdag 25 maart 2006 @ 21:25
ik heb het al

ander vraagje

Dim a(1 To n, 1 To n) As Integer

dit gaat fout, waarom? hoe kan ik het goed krijgen
fabericzondag 26 maart 2006 @ 13:51
quote:
Op zaterdag 25 maart 2006 18:27 schreef faberic het volgende:
-edit-
Tief op.
WTF?!
DaFanzondag 26 maart 2006 @ 15:32
quote:
Op zaterdag 25 maart 2006 21:25 schreef McCarthy het volgende:
ik heb het al

ander vraagje

Dim a(1 To n, 1 To n) As Integer

dit gaat fout, waarom? hoe kan ik het goed krijgen
Waarom 2x die 1 To n?