[hide]Bé, pressuposant que el 5è alumne i els successius fan exactament el mateix que el 4t però anant cada 5 armariets, cada 6, ..., fins l'últim alumne que tan sols tocarà l'últim armariet.
La resposta crec que seria que, al final, restaran 68 OBERTS per 100 alumnes, 676 oberts per 1000 alumnes, etc.
[table][td]Nombre d'alumnes i taquilles
100
1000
10000
20000
30000
50000
70000
90000
100000
200000
300000
500000
600000
700000
800000
900000
1000000[/td][td]Nombre de taquilles obertes al final
68
676
6698
13378
20057
33406
46753
60099
66771
133480
200181
333568
400256
466945
533629
600314
666998[/td][/table]
Queda algo com una funció exponencial. Semblant, al menys.
Ho he resolt a "la cuenta de le vieja" fet un algorisme en java tal que el pseudocodi és:
algorisme QuantsAramarietsOberts és:
CTE és constant d'enter; //aquesta constant valdrà 100, 100000 o el que es vulgui
vector és taula [CTE posicions] de booleà;
i,j,cont són enters;
cont=0;
per(i=0;i<CTE;i++) fer{
vector=cert;
fper
// el primer ha obert tots els armariets
per(i=1;i<CTE;i=i+2) fer{
vector=fals;
fper
//el segon en tanca 1 de cada 2 (2,4,6...)
per(i=2;i<CTE;i=i+3) fer{
if(vector==fals) vector=cert;
else vector=fals;
fper
//el tercer de cada tres n'intercanvia un (d'obert a tancat i viceversa) (3,6,9...)
per(i=4;i<CTE;i++) fer{
per(j=3;j<CTE;j=j+i) fer{
si(vector[j]==fals) aleshores{
vector[j]=cert;
fsi
sinó vector[j]=fals;
fper
fper
//el 4rt n'intercanvia un de cada 4, el 5è un de cada 5, i així fins a l'alumne 100
//que n'intercanvia un de cada 100
per(i=0;i<CTE;i++) fer{
si(vector=true) cont++;
fper
//contem els que resten oberts
escriure(cont);
//mostrem per pantalla el resultat d'armariets oberts
falgorisme
Segur que també es pot resoldre com allò de si tens la matriu A(la que sigui), troba A^2, A^3, i A^n (sense fer-ho a "la cuenta de la vieja"), però ara mateix no trobo la forma.
Per cert, a quina pàgina del llibre dius que està???
Ara, segons la llei de Murphy, em dec haver equivocat [/hide]