Cubo di un numero, non potendolo elevare direttamente

Maturando
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
Umby2
X per X per X

Maturando
SI scusa, ovviamente senza fare la tripla moltiplicazione del numero per se stesso...

Umby2
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

lorven
Oppure:
XCubo=EXP(3*LN(x))

;-)

krek1
L'hai controllato in cobol se funziona?
Non conosco il cobol ma a leggerlo cosi non mi torna.
GRAZIE.

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

Umby2
"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....

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

Maturando
Scusate, non conosco il cobol e di programmazione non me ne intento tanto, in termini matematici in pratica che operazione fate?

lorven
"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 :!:

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

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

Sk_Anonymous
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 :D

Umby2
"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 ! :shock:

Si tratta di un ciclo, presente in qualsiasi linguaggio.

Maturando
"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 ! :shock:

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?

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

Maturando
"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.

Tul1
"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?

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.