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.

Weet jij het antwoord?

/2500

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

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< 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<

Bronnen:
https://www.quora.com/Android-operating-sy...

Stel zelf een vraag

Ben je op zoek naar het antwoord die ene vraag die je misschien al tijden achtervolgt?

/100