Hét vraag- en antwoordplatform van Nederland

Hoeveel mogelijkheden heeft een ontgrendelingspatroon van 3x3?

Ik heb op mijn telefoon een patroon zitten om te ontgrendelen. Dit patroon bestaat uit een raster van 3x3 die elk maar een keer kunnen worden gebruikt, maar die ook ongebruikt gelaten kunnen worden. Hoeveel mogelijke patronen zijn er, er van uit gaande dat er geen leeg patroon is?
De volgorde waarin je de hokjes aanraakt maakt ook uit.

Verwijderde gebruiker
8 jaar geleden
in: Wiskunde
Geef jouw antwoord
0 / 2500
Geef Antwoord

Antwoorden (2)

Naar mijn idee is de oplossing is 9! x 2 - 1.

Je kan maximaal 9 hokjes "aanraken". Dat kan op twee manieren: niet of wel. Je mag een hokje maar één keer aanraken, dus na de eerste keuze van een hokje heb je nog 8 keuzes over. Na de tweede keuze nog 7, enzovoort. Één mogelijkheid valt af, namelijk die waarbij je ze allemaal niet aanraakt.

Dat maakt de oplossing:

9! x 2 - 1 =
(9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1) x 2 - 1 =
362.880 x 2 - 1 =
725.760 - 1 =
725.759
8 jaar geleden
Er zijn meer Android gebruikers die geworsteld hebben met dit probleem, het totaal aantal combinaties komt op: 389112 en is berekend met een stukje C++ proza want met een simpel faculteit berekenringetje kom je er niet helemaal exact uit.

#include
#include

using namespace std;

void Gen(int x, vector v, long long int &ctr, int *visited)
{
int flag,l;

visited[x]=1;
v.push_back(x);
l=v.size();
flag=1;
if(l>1)
{
if(v[l-2]==0 && v[l-1]==2 && visited[1]==0)
flag=0;

if(v[l-2]==0 && v[l-1]==6 && visited[3]==0)
flag=0;
if(v[l-2]==0 && v[l-1]==8 && visited[4]==0)
flag=0;

if(v[l-2]==2 && v[l-1]==0 && visited[1]==0)
flag=0;

if(v[l-2]==2 && v[l-1]==6 && visited[4]==0)
flag=0;

if(v[l-2]==2 && v[l-1]==8 && visited[5]==0)
flag=0;

if(v[l-2]==6 && v[l-1]==0 && visited[3]==0)
flag=0;

if(v[l-2]==6 && v[l-1]==2 && visited[4]==0)
flag=0;

if(v[l-2]==6 && v[l-1]==8 && visited[7]==0)
flag=0;

if(v[l-2]==8 && v[l-1]==2 && visited[5]==0)
flag=0;

if(v[l-2]==8 && v[l-1]==0 && visited[4]==0)
flag=0;

if(v[l-2]==8 && v[l-1]==6 && visited[7]==0)
flag=0;

if(v[l-2]==1 && v[l-1]==7 && visited[4]==0)
flag=0;

if(v[l-2]==7 && v[l-1]==1 && visited[4]==0)
flag=0;

if(v[l-2]==3 && v[l-1]==5 && visited[4]==0)
flag=0;

if(v[l-2]==5 && v[l-1]==3 && visited[4]==0)
flag=0;
}

if(flag==1)
{
if(l>3)
{
ctr++;

/*
cout< for(int i=0;i cout< cout< */
}
for(int i=0;i<9;i++)
{
if(visited[i]==0) //To ensure that the dots in the pattern must all be distinct.
Gen(i,v,ctr,visited);
}
}

//Backtrack
visited[x]=0;
v.pop_back();
return;
}

int main()
{
int visited[9]; //To check if a number is used in sequence
vector V; //vector to store valid pattern sequence
long long int ctr; //To keep count of valid lock patterns.

for(int i=0; i<9;i++)
visited[i]=0;
ctr=0;

//Starting from first point as i
for(int i=0; i<9;i++)
{
Gen(i,V,ctr,visited);
}
cout<
return 0;
}
Verwijderde gebruiker
8 jaar geleden
Deel jouw antwoord
0 / 2500
Geef Antwoord
logo van Kompas Publishing

GoeieVraag.nl is onderdeel van Kompas Publishing