Calcolare logaritmo con operazioni elementari
Ciao
Dati due valori x appartenente a Z+ con x>=2 e y appartenente a Z+U{0}. Calcolare il logaritmo intero di y in base x utilizzando solamente le operazioni elementari necessarie.
logxy=b
Esempio
X Y OUTPUT
2 10 3
4 1030 5
NB: per operazioni elementari si intendono:somma, sottrazione, moltiplicazione, divisione.
vi ringrazio in anticipo, io non sono proprio capace di farlo
Dati due valori x appartenente a Z+ con x>=2 e y appartenente a Z+U{0}. Calcolare il logaritmo intero di y in base x utilizzando solamente le operazioni elementari necessarie.
logxy=b
Esempio
X Y OUTPUT
2 10 3
4 1030 5
NB: per operazioni elementari si intendono:somma, sottrazione, moltiplicazione, divisione.
vi ringrazio in anticipo, io non sono proprio capace di farlo
Risposte
Basta che moltiplichi $x$ per se stesso, finché diventa maggiore di $y$, incrementando ogni volta un contatore - inizializzato a 0 - (che è il logaritmo intero).
non so, ma x è la base del logaritmo?
cosa sono quell $ nel tuo messaggio?
cosa sono quell $ nel tuo messaggio?
puoi dirmi proprio i passaggi da fare, non ci ho capito molto
grazie
grazie
L'hai detto tu che la x è la base del logaritmo, e dagli esempi che hai fatto si vede che lo è.
Cosa non ti è chiaro? Il logaritmo intero significa quante volte devi moltiplicare la base per se stessa affinché, eseguendo ancora una volta la moltiplicazione, sia maggiore dell'argomento (la Y) in questo caso.
Cosa non ti è chiaro? Il logaritmo intero significa quante volte devi moltiplicare la base per se stessa affinché, eseguendo ancora una volta la moltiplicazione, sia maggiore dell'argomento (la Y) in questo caso.
allora, io devo fare logaritmo in base x di y
quindi moltiplico la x per se stessa tante volte finche non diventa maggiore di y e nel frattempo incremento un contatore.
quindi il risultato mi verrà dato dal contatore?
esempio:
x=2
y=4
x*x = 4
contatore=1
nel caso la x(base) è minore di 2 cosa devo mettere come risultato?
quindi moltiplico la x per se stessa tante volte finche non diventa maggiore di y e nel frattempo incremento un contatore.
quindi il risultato mi verrà dato dal contatore?
esempio:
x=2
y=4
x*x = 4
contatore=1
nel caso la x(base) è minore di 2 cosa devo mettere come risultato?
ho provato ma mi da un risultato sbagliato, ho provato a fare logaritmo in base 2 di 10 e mi da 1 , invece dovrebbe dare 3
La base deve essere maggiore di 2, l'hai scritto anche tu nel primo post.
Comunque, per geastire anche il caso in cui il logaritmo (vero) è esattamente un intero, basta moltiplicare ripetutamente un numero n (inizializzato al valore della base) per la base, poi verificare se è maggiore di y; in questo caso basta sottrarre 1 al contatotore inizializzato a 1. (prima mi sono espresso un po' ambiguamente).
Esempio per x=2, y=10
contatore=1
n=n*x=2*2=4; contatore=2
n=n*x=4*2=8; contatore=3
n=n*x=8*2=16; contatore=4
E dato che n è maggiore di y, cioè di 10, allora il risultato è contatore=contatore-1=3
E se chiaramente ti trovi ad avere n=y, allora prendi il contatore così com'è.
Esempio per x=2, y=4
contatore=1
n=n*x=2*2=4; contatore=2
n è uguale ad y, quindi il risultato è 2.
Comunque, per geastire anche il caso in cui il logaritmo (vero) è esattamente un intero, basta moltiplicare ripetutamente un numero n (inizializzato al valore della base) per la base, poi verificare se è maggiore di y; in questo caso basta sottrarre 1 al contatotore inizializzato a 1. (prima mi sono espresso un po' ambiguamente).
Esempio per x=2, y=10
contatore=1
n=n*x=2*2=4; contatore=2
n=n*x=4*2=8; contatore=3
n=n*x=8*2=16; contatore=4
E dato che n è maggiore di y, cioè di 10, allora il risultato è contatore=contatore-1=3
E se chiaramente ti trovi ad avere n=y, allora prendi il contatore così com'è.
Esempio per x=2, y=4
contatore=1
n=n*x=2*2=4; contatore=2
n è uguale ad y, quindi il risultato è 2.
ma il contatore lo devo inizializzare a 1 o 0?
ho, risolto, funziona benissimo, ma se la base è minore di 2 cosa devo mettere come risultato?
Non è definito per la base minore di 2, quindi tu la metti tra le eccezioni.
ok grazie
allora
se la base del logaritmo è minore di 2 metto NON DEFINITO
e se la y è 0 o 1 cosa devo mettere come risultato?
se la base del logaritmo è minore di 2 metto NON DEFINITO
e se la y è 0 o 1 cosa devo mettere come risultato?
Il logaritmo non e' definito per y<=0; e come ben saprai il logaritmo di 1 e' 0...
ok grazie
sono abbstanza ignorante in matematica:-)
sono abbstanza ignorante in matematica:-)