Cubo di un numero, non potendolo elevare direttamente
Ciao ragazzi, come da titolo, conoscete un modo per avere il cubo di un numero qualsiasi senza poter svolgere questa operazione di elevamento a potenza del numero stesso? In pratica volete sapere il cubo di un numero x, senza poter elevare direttamente il numero alla terza, come fareste? Secondo voi è possibile?
Risposte
X per X per X
SI scusa, ovviamente senza fare la tripla moltiplicazione del numero per se stesso...
Puoi risolvere con un doppio ciclo di ADD
Nell'esempio K viene "cubizzata". Il codice è in Cobol.
Nell'esempio K viene "cubizzata". Il codice è in Cobol.
ACCEPT K MOVE ZERO TO CUBO PERFORM VARYING I FROM 1 BY 1 UNTIL I > K PERFORM VARYING J FROM 1 BY 1 UNTIL J > K ADD K TO CUBO END-PERFORM END-PERFORM DISPLAY MESSAGE BOX CUBO STOP RUN
Oppure:
XCubo=EXP(3*LN(x))

L'hai controllato in cobol se funziona?
Non conosco il cobol ma a leggerlo cosi non mi torna.
GRAZIE.
Non conosco il cobol ma a leggerlo cosi non mi torna.
GRAZIE.
"Umby":
Puoi risolvere con un doppio ciclo di ADD
Nell'esempio K viene "cubizzata". Il codice è in Cobol.
ACCEPT K MOVE ZERO TO CUBO PERFORM VARYING I FROM 1 BY 1 UNTIL I > K PERFORM VARYING J FROM 1 BY 1 UNTIL J > K ADD K TO CUBO END-PERFORM END-PERFORM DISPLAY MESSAGE BOX CUBO STOP RUN
Credo che le PERFORM ... VARYING debbano avere condizione di uscita su I e J > 3, non K
"krek":
L'hai controllato in cobol se funziona?
Non conosco il cobol ma a leggerlo cosi non mi torna.
GRAZIE.
Ovviamente controllato, e funzionante.
Se mi dici cosa non ti torna....
"lorven":
Credo che le PERFORM ... VARYING debbano avere condizione di uscita su I e J > 3, non K
Sotto il ciclo delle 2 PERFORM, ci sta una ADD (chi ha proposto il quiz, diceva di non usare la MULTIPLY)
Quindi se K = 8 (ad esempio)
devo addizionare 8 (8 volte) = 64 ed ancora per ogni ciclo ancora 8 (8 volte) = 512
Come dici te il risultato sarebbe 3*(3*8) = 72
Scusate, non conosco il cobol e di programmazione non me ne intento tanto, in termini matematici in pratica che operazione fate?
"Umby":
[quote="lorven"]
Credo che le PERFORM ... VARYING debbano avere condizione di uscita su I e J > 3, non K
Sotto il ciclo delle 2 PERFORM, ci sta una ADD (chi ha proposto il quiz, diceva di non usare la MULTIPLY)
Quindi se K = 8 (ad esempio)
devo addizionare 8 (8 volte) = 64 ed ancora per ogni ciclo ancora 8 (8 volte) = 512
Come dici te il risultato sarebbe 3*(3*8) = 72[/quote]
Mi sa che hai ragione. Ho interpretato male i due cicli COBOL

Allora? Sapete dirmi una relazione matematica per risolvere questo quesito? Sapete se è già stata inventata?
Ripeto:
avere il cubo di qualsiasi numero, potendo fare qualsiasi operazione su tutti gli altri numeri e questa legge deve valere per qualsiasi i numeri.
Ripeto:
avere il cubo di qualsiasi numero, potendo fare qualsiasi operazione su tutti gli altri numeri e questa legge deve valere per qualsiasi i numeri.
agomath
Ripeto:
avere il cubo di qualsiasi numero, potendo fare qualsiasi operazione su tutti gli altri numeri e questa legge deve valere per qualsiasi i numeri.
"Se ho capito bene", la questione mi sembra abbastanza semplice.
Basta elevare al cubo il doppio del numero dato, e dividerlo per 8.
Ciao.
semplice:x+x+x
dipende dalla x e te la trovi. Es: x=2. 2*2*2=8 allora 2+2+2+2=8; 3*3*3=27 allora 3+3+3+3+3+3+3+3+3


"agomath":
Scusate, non conosco il cobol e di programmazione non me ne intento tanto, in termini matematici in pratica che operazione fate?
vedi che c'e' da capire poco !

Si tratta di un ciclo, presente in qualsiasi linguaggio.
"Umby":
[quote="agomath"]Scusate, non conosco il cobol e di programmazione non me ne intento tanto, in termini matematici in pratica che operazione fate?
vedi che c'e' da capire poco !

Si tratta di un ciclo, presente in qualsiasi linguaggio.[/quote]
E sì, ma non ho mai programmato...qualcun altro ha da dire la sua in merito?
Premetto che non mi è chiarissimo quel che vuoi sapere, se forse fossi più esplicito riguardo a quello che vuoi ottenere, sarebbe tutto più facile!!
Direi che un cubo si può ottenere, senza elevamento al cubo, dal cubo (scusate il gioco di parole) del numero precedente: $n^3=(n-1)^3+3(n-1)^2+3(n-1)+1$, ma non so se nel tuo caso si ritorna al punto di partenza o no...
EDIT: non mi ero accorto che sfruttando la formula sopra si otteneva $n^3=\sum_{i=0}^{n-1}3i^2+3i+1$, che è una formula interessante che non avevo mai notato, per questo mi do una pacca sulla spalla e vado a dormire soddisfatto!
Direi che un cubo si può ottenere, senza elevamento al cubo, dal cubo (scusate il gioco di parole) del numero precedente: $n^3=(n-1)^3+3(n-1)^2+3(n-1)+1$, ma non so se nel tuo caso si ritorna al punto di partenza o no...
EDIT: non mi ero accorto che sfruttando la formula sopra si otteneva $n^3=\sum_{i=0}^{n-1}3i^2+3i+1$, che è una formula interessante che non avevo mai notato, per questo mi do una pacca sulla spalla e vado a dormire soddisfatto!
"Tul":
Premetto che non mi è chiarissimo quel che vuoi sapere, se forse fossi più esplicito riguardo a quello che vuoi ottenere, sarebbe tutto più facile!!
Direi che un cubo si può ottenere, senza elevamento al cubo, dal cubo (scusate il gioco di parole) del numero precedente: $n^3=(n-1)^3+3(n-1)^2+3(n-1)+1$, ma non so se nel tuo caso si ritorna al punto di partenza o no...
EDIT: non mi ero accorto che sfruttando la formula sopra si otteneva $n^3=\sum_{i=0}^{n-1}3i^2+3i+1$, che è una formula interessante che non avevo mai notato, per questo mi do una pacca sulla spalla e vado a dormire soddisfatto!
Eh diciamo che è questo che volevo sapere, in quanto avevo trovato un metodo simile a questo per determinare il cubo di un numero non elevandolo direttamente al cubo.
La formula in questione è questa:
$n^3= (n-1)^3 + (n-1)^2 + n^2 + [n*(n-1)]$
Pensavo di aver ideato un qualcosa di nuovo, dato che vale per qualsiasi numero si consideri, ma evidentemente non ha un risvolto importante nè originale...
Ciao.
"agomath":
Pensavo di aver ideato un qualcosa di nuovo, dato che vale per qualsiasi numero si consideri, ma evidentemente non ha un risvolto importante nè originale...
Ciao.
Su su non ti abbattere, sarebbe invece abbastanza originale trovare una formula per trovare $n^m$ (naturali) , senza elevamento alla $m$...si potrà fare?