Pagina 2 di 2 PrimoPrimo 12
Visualizzazione risultati 31 fino 42 di 42

Discussione: quesito matematico: solo veri esperti in ALGEBRA

  1. #31
    express non è connesso AlterVistiano
    Data registrazione
    08-08-2003
    Residenza
    Cagliari/Pisa
    Messaggi
    799

    Predefinito

    @jole: colui che ha formulato il quesito credo abbia esplicitamente chiesto la soluzione dell'equazione: x^3+y^3=100x+10y (ho chiesto conferma a lui stesso nel secondo post); cmq la seconda riformulazione e' piu' interessante e magari si potrebbe estendere a trovare dei numeri (naturali! per i reali non ha senso trovare un numero siffatto giacche non hanno un numero finito di cifre) tali che: x^a+y^a=(10^b)x+(10^c)y con (b-c) positivo maggiore della parte intera di lg(x/y) (lg=log10). In questo caso si troverebbero dei numeri esattamente del tipo di: 3^3+7^3=370.
    @xdestroyer e aeclanum: aeclanum ha ragione nel dire che da numeri sbagliati (p.es. 487455^3=~1.16*10^17>>4'294'967'296). per risolvere il problema occorre utilizzare librerie matematiche a precisione arbitraria (le dovresti trovare in 'bc', un programma gnu/linux per i calcoli a precisione arbitraria). inoltre con la mia riformulazione ha senso procedere nella ricerca di numeri anche molto grandi ma la ricerca con i for (bubblesearch) e' troppo lunga, meglio usare almeno un selectedsearch come ti avevo suggerito (non ho idea di come realizzare un quick search in questo caso).
    @websmasher: ma il problema era come dice jole o come ho risolto io?
    http://express.altervista.org
    Dato un lavoro, si possono scegliere due sole delle seguenti caratteristiche: veloce, economico, di qualità.
    Così capita che se un lavoro è veloce ed economico non sarà di qualità; se è veloce e di qualità non sarà economico; se è economico e di qualità non sarà veloce.

  2. #32
    Guest

    Predefinito

    come dice Jole ovvero, come nel suo esempio 4³+16³=4160 primo numero seguito dal secondo tutto moltiplicato per 10.
    Il mio problema era cercare di risolvere l'equazione di terzo grado in a o b in funzione dell'altro in modo che, dando un valore arbitrario ad uno, scoprivo subito quanto valeva l'altro che ne so, se veniva fuori
    a=(10b-logb)/sqrt(b-logb) (FORMULA INVENTATA...NON VIENE COSI') allora sostituivo a "b" un valore appropriato per trovare "a" solamente che non riesco proprio a risolvere questa dannata equazione...
    @Jole: come hai fatto a trovare quel risultato? Grande! Allora il quesito ha un'altra soluzione

  3. #33
    aeclanum non è connesso Utente
    Data registrazione
    25-03-2003
    Messaggi
    210

    Predefinito

    Se si tratta di trovare le soluzioni reali della equazione allora esistono infinite soluzioni: la equazione, vista come una curva sul piano cartesiano data in forma implicita è una cubica ed esistono un continuo di punti e quindi di soluzioni.
    Se poi volete calcoli precisi io vi consiglio di usare il linguaggio Haskell è impressionante (ma molto lento) .

  4. #34
    express non è connesso AlterVistiano
    Data registrazione
    08-08-2003
    Residenza
    Cagliari/Pisa
    Messaggi
    799

    Predefinito

    quindi la formulazione piu' generale del problema e':

    trovare una coppia di naturali (x,y) con a,b,c naturali tali che:
    x^a+y^a=(10^b)x+(10^c)y
    con a>=2, abs(b-c)>=ceil(lg(x/y))
    /* abs(x) e' il valore assoluto di x e ceil(x) e' la parte intera di x arrotondata per eccesso */

    che da' numeri della forma:
    x(h volte 0)y(k volte 0)

    se diamo le seguenti restrizioni (non necessariamente indipendenti):
    a=3
    c=1
    h=0
    k=1

    allora, come ha osservato jole, il problema non dovrebbe avere altre soluzioni. postero' a breve un programma c per trovare le soluzioni in detto caso.
    se siete interessati alla soluzione del problema nella forma piu' generale postate qui una richiesta (io personalemente non sono molto interessato, ma diciamo che ci posso lavorare su...)

    @aeclanum: il mio terzo post dice come trovarla la soluzione fra i reali dell'equazione cazzivari... per quanto riguarda haskel puoi postare info precise?
    http://express.altervista.org
    Dato un lavoro, si possono scegliere due sole delle seguenti caratteristiche: veloce, economico, di qualità.
    Così capita che se un lavoro è veloce ed economico non sarà di qualità; se è veloce e di qualità non sarà economico; se è economico e di qualità non sarà veloce.

  5. #35
    aeclanum non è connesso Utente
    Data registrazione
    25-03-2003
    Messaggi
    210

    Predefinito

    @express
    Per info haskell : http://www.haskell.org/

    tempo fa ho fatto una prova con una funzione ricorsiva per il fattoriale e mi ha dato come risposta un intero lungo 25 righe (ti confesso che non ho idea se sia corretto) che mi ha stupito.
    Per le soluzioni intere queste devono avere dei limiti se le vogliamo entrambe positive infatti dovrebbere essere tali che x+y<16(circa) secondo una mia stima veloce. (Se qualcuno la vuole controllare mi fa un piacere!).
    Infatti se si fa il sistema tra la x^3+y^3=100*x+10*y e la x+y=k
    si trova che viene fuori una equazione più facile da risolvere e la discussione rispetto al parametro k del delta e cartesio ci da soluzioni reali per k< 16 circa ( e k>=0). (Se non ho sbagliato i calcoli come faccio di solito)
    La scelta di x+y=k non è casuale, ma dovuta all'esame dei punti impropri della curva data! che avendo sempre tre intersezioni con una retta (terzo grado) ne ha solo due al finito se ne ha una all'infinito nel punto improprio della reta x+y=k, e quindi il sistema scende di grado da tre a due.

  6. #36
    express non è connesso AlterVistiano
    Data registrazione
    08-08-2003
    Residenza
    Cagliari/Pisa
    Messaggi
    799

    Predefinito

    La scelta di x+y=k non è casuale, ma dovuta all'esame dei punti impropri della curva data! che avendo sempre tre intersezioni con una retta (terzo grado) ne ha solo due al finito se ne ha una all'infinito nel punto improprio della reta x+y=k, e quindi il sistema scende di grado da tre a due.
    non ho capito (k e' definita come nella mia formulazione del problema o in modo indipendente?) punti impropri?
    cmq e' ovvio che se il sistema e' compatibile aggiungere un equazione diminuisce il grado del problema (se non si introducono nuove variabili)... il punto e' se e' utile/vero.

    haskell e' troppo high-level per i miei gusti... preferisco utilizzare le arbitrary precision math libraries del bc...

    cmq se per esempio si ha: 30^3+20^3=27000+8000=35000 ed e' di cinque cifre come voluto, quindi in teoria si possono cercare anche numeri maggiori (fino ad altra prova contraria).
    http://express.altervista.org
    Dato un lavoro, si possono scegliere due sole delle seguenti caratteristiche: veloce, economico, di qualità.
    Così capita che se un lavoro è veloce ed economico non sarà di qualità; se è veloce e di qualità non sarà economico; se è economico e di qualità non sarà veloce.

  7. #37
    aeclanum non è connesso Utente
    Data registrazione
    25-03-2003
    Messaggi
    210

    Predefinito

    Ma non soddisfano la equazione detta prima!
    Bensì una simile ad esempio x^3+y^3=10000*x+10*y

    insomma una potenza di 10 maggiore di 2 come coefficiente di x

    K è un parametro, si studia al variare di k se esistono soluzioni del sistema e se si trova che per k>16 non ce ne sono si deduce che x+y<16!

  8. #38
    express non è connesso AlterVistiano
    Data registrazione
    08-08-2003
    Residenza
    Cagliari/Pisa
    Messaggi
    799

    Predefinito

    era infatti questa la generalizzazione proposta...

    (ma li leggi i post?)
    http://express.altervista.org
    Dato un lavoro, si possono scegliere due sole delle seguenti caratteristiche: veloce, economico, di qualità.
    Così capita che se un lavoro è veloce ed economico non sarà di qualità; se è veloce e di qualità non sarà economico; se è economico e di qualità non sarà veloce.

  9. #39
    aeclanum non è connesso Utente
    Data registrazione
    25-03-2003
    Messaggi
    210

    Predefinito

    No, (in questo caso)non tutti ed è un errore di cui mi scuso!
    Ma ero convinto di averlo fatto!

  10. #40
    L'avatar di Panz
    Panz non è connesso Altervistiano Junior
    Data registrazione
    01-07-2001
    Messaggi
    570

    Predefinito

    Leggo solo ora il forum; una coppia di numeri valida è semplicemente (-3 -7) senza fare calcoli (essendo un problema con potenze dispari se 2 numeri sono soluzione allora lo sono anche i 2 numeri opposti).
    Panz.

    C'è sempre qualcuno che è più potente di te. Allora, quando lo incontri, fai in modo che sia dalla tua parte.


  11. #41
    express non è connesso AlterVistiano
    Data registrazione
    08-08-2003
    Residenza
    Cagliari/Pisa
    Messaggi
    799

    Predefinito

    [code:1:89f57fc9b5]#include <stdio.h>
    #include <math.h>

    #define MAX 100000

    int main(void)
    {
    unsigned long int x=0;
    unsigned long int y=0;
    unsigned long int i=2;
    const unsigned long int a=3;

    for (x=0; a<MAX; x++) {
    i=x/10+2;
    for (y=0; y<x; y++) {
    if ( ((int) pow((double) x, (double) a)+pow((double) y, (double) a)) ==
    ((int) pow(10.0, (double) i)*x+10*y))
    printf("%10d\t%10d\t%10d\n", x, y, ((int) pow((double) x, (double) a)+
    pow((double)y, (double) a)));
    }
    }
    }

    [/code:1:89f57fc9b5]

    non ho testato (perche' non ho c compilers in sto computer) pero questo programma dovrebbe fungere.
    http://express.altervista.org
    Dato un lavoro, si possono scegliere due sole delle seguenti caratteristiche: veloce, economico, di qualità.
    Così capita che se un lavoro è veloce ed economico non sarà di qualità; se è veloce e di qualità non sarà economico; se è economico e di qualità non sarà veloce.

  12. #42
    express non è connesso AlterVistiano
    Data registrazione
    08-08-2003
    Residenza
    Cagliari/Pisa
    Messaggi
    799

    Predefinito

    debugged...

    [code:1:5513a11da5]
    #include <stdio.h>
    #include <stdlib.h>

    #define MAX 1626 /* cbrt(2^32) = 2^10*cbrt(4) */

    /* ulong e ushort sono definiti in ctype.h */

    ulong power(ulong base, ushort exp);

    int main(void)
    {
    ulong x=0, y=0;
    ushort i=0;
    const ushort a=3;

    for (x=0; a<MAX; x++) {
    i=x/10+2;
    for (y=0; y<=x; y++) {
    if ( (power(x,a)+power(y,a)) == (power(10,i)*x+10*y))
    printf("%10d\t%10d\t%10d\n", x, y, (power(x,a)+ power(y,a));
    }
    }
    }

    ulong power(ulong base, ushort exp)
    {
    ulong result=1;
    do {
    result *= base;
    } while (--exp > 0);
    }
    [/code:1:5513a11da5]

    sto codice da solo i risultati gia' noti...
    non ho trovato le librerie di arbitrary precision...
    cmq l'algoritmo e' lo stesso... basta modificare MAX
    http://express.altervista.org
    Dato un lavoro, si possono scegliere due sole delle seguenti caratteristiche: veloce, economico, di qualità.
    Così capita che se un lavoro è veloce ed economico non sarà di qualità; se è veloce e di qualità non sarà economico; se è economico e di qualità non sarà veloce.

Pagina 2 di 2 PrimoPrimo 12

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •