Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Algoritmi - Olimpiadi matematica 2007
Forum - Algoritmi - Olimpiadi matematica 2007

Avatar
Saik (Normal User)
Pro


Messaggi: 117
Iscritto: 07/08/2011

Segnala al moderatore
Postato alle 21:21
Lunedì, 19/11/2012
Ciao ragazzi mi sono imbattuto in questo problema
[codeIl prode mateninja Numeruto `e pi`u bravo sul campo che sui banchi. Oggi c’`e il compito di storia e la prima
domanda chiede il numero esatto di mateninja diplomatisi Grandin, dalla fondazione del villaggio ad oggi
ed egli proprio non ha idea della risposta. Per fortuna riesce ad intercettare un suggerimento in codice della
bella Otenusa diretto al suo rivale Sekante: “`E un numero di quattro cifre, multiplo di 25 che, diviso per 25,
d`a un numero di due cifre che, scambiate, sono le cifre centrali del numero stesso” (come 54 e 2450, solo
che 54×25 diverso da  2450). Qual `e la risposta?

Sono arrivato alla conclusione che il numero  è compreso fra 1000 e 2500  ma non riesco a proseguire...
P.S: non voglio la soluzione al problema ma voglio solo un'idea su come procedere :) :rofl:

PM Quote
Avatar
tasx (Dev Team)
Expert


Messaggi: 439
Iscritto: 15/12/2008

Segnala al moderatore
Postato alle 21:53
Lunedì, 19/11/2012
l'ho scritto così su due piedi, penso sia giusto.....

for (i = 0; i < 2500; i++)
{
if (i % 25 == 0)
{
  var a = i / 25;
  var b = a.toString();
  var c = b[1] + b[0];
  var d = i.toString();
  var e = d[1] + d[2];
  if (c == e) {window.console.log("number is: " + i);}
}
}

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6378
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 22:06
Lunedì, 19/11/2012
Dato che il numero diviso 25 da' un risultato di 2 cifre, questo può essere compreso solo tra

40 e 99

(inclusi gli estremi) dato che

40*25 => 1000 è il primo valore utile a 4 cifre multiplo di 25

e

99*25 => 9975 è l'ultimo valore utile a 4 cifre multiplo di 25

Ora devi notare che i multipli di 25 avranno nella penultima cifra sempre una tra

0, 2, 5, 7

Considera che questa sarà la prima cifra delle due da cercare (dato che sono invertite) ma il numero non può iniziare per 0 o 2 perché il minimo è 40. Dunque inizierà per

5 o 7

Anche provando solamente i venti valori possibili, arriverai semplicemente alla soluzione ... ovvero 79 ... 1975



Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
tasx (Dev Team)
Expert


Messaggi: 439
Iscritto: 15/12/2008

Segnala al moderatore
Postato alle 22:09
Lunedì, 19/11/2012
Testo quotato

Postato originariamente da nessuno:

Dato che il numero diviso 25 da' un risultato di 2 cifre, questo può essere compreso solo tra

40 e 99

(inclusi gli estremi) dato che

40*25 => 1000 è il primo valore utile a 4 cifre multiplo di 25

e

99*25 => 9975 è l'ultimo valore utile a 4 cifre multiplo di 25

Ora devi notare che i multipli di 25 avranno nella penultima cifra sempre una tra

0, 2, 5, 7

Considera che questa sarà la prima cifra delle due da cercare (dato che sono invertite) ma il numero non può iniziare per 0 o 2 perché il minimo è 40. Dunque inizierà per

5 o 7

Anche provando solamente i venti valori possibili, arriverai semplicemente alla soluzione ... ovvero 79 ... 1975




nah ... :asd::asd: troppo lavoro mentale, meglio lasciare fare al pc quando si può ;) :rofl::rofl:

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6378
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 22:12
Lunedì, 19/11/2012
Beh ... anche tu ci hai messo qualcosa in più ... se devi far fare al computer, tanto vale un algoritmo brute force stupidissimo ma efficace e breve ...


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Phi (Member)
Expert


Messaggi: 241
Iscritto: 30/12/2009

Segnala al moderatore
Postato alle 22:15
Lunedì, 19/11/2012
Beh, una volta che sabbiamo che il numero inizia con 5 o 7 possiamo ridurre ulteriormente i casi notando che anche la cifra delle migliaia del numero di 4 cifre deve essere 1.
Quindi scrivere
25(10a+b)=1000+100b+10a+x
Dove a=5 o a=7, e x=0 o x=5, troviamo
b=(240a-x)/75
proviamo 4 casi e vediamo che b risulta intero solo se a=7 e x=5, caso in cui risulta b=9

Edit : comunque, se ti interessa una soluzione che non usi calcolo automatizzato, penso che il posto migliore sia questo http://www.oliforum.it/

Ultima modifica effettuata da Phi il 19/11/2012 alle 22:16
PM Quote
Avatar
Saik (Normal User)
Pro


Messaggi: 117
Iscritto: 07/08/2011

Segnala al moderatore
Postato alle 22:26
Lunedì, 19/11/2012
Grazie a tutti :) comunque io intendevo risolvere il problema senza utilizzare il pc come hanno fatto Nessuno e Phi
P.S Phi penso che darò un occhiata a quel forum :)

PM Quote
Avatar
Qwertj (Dev Team)
Guru


Messaggi: 678
Iscritto: 30/05/2011

Segnala al moderatore
Postato alle 20:20
Martedì, 20/11/2012
Testo quotato

Postato originariamente da tasx:

l'ho scritto così su due piedi, penso sia giusto.....

for (i = 0; i < 2500; i++)
{
if (i % 25 == 0)
{
  var a = i / 25;
  var b = a.toString();
  var c = b[1] + b[0];
  var d = i.toString();
  var e = d[1] + d[2];
  if (c == e) {window.console.log("number is: " + i);}
}
}



Hai dimenticato di chiamare il metodo Brain.off();

PM Quote