Page 3 of 6 FirstFirst 123456 LastLast
Results 31 to 45 of 88

Thread: Piccola mano con C

  1. #31
    Lieutenant Commander San Vegeta's Avatar
    Join Date
    Oct 2003
    Location
    Bologna
    Posts
    12.154

    Default

    se vai su un sistema a 64 bit, puoi usare il long che è appunto 64 bit, quindi puoi indirizzare fino a 2^64 numeri, oppure il int __attribute__ ((mode(TI))) col gcc.
    è bastato cliccare sul primo link trovato su google, sicuramente esistono librerie per rappresentare numeri enormi

    come idea alternativa, se non ricordo puttanate, esisteva il modo di rappresentare qualunque numero come funzione polinomica, la quale funzione andrebbe poi codificata e rappresentata... ma mi sa che stiamo andando un po' oltre il seminato

    http://www.daniweb.com/software-deve...threads/135667 (l'ultimo post molto bello)

    http://gmplib.org/
    Last edited by San Vegeta; 13th December 2011 at 01:23.
    I rubinetti a casa di Chuck Norris non perdono, vincono.

    In the beginning there was nothing...then Chuck Norris Roundhouse kicked that nothing in the face and said "Get a job". That is the story of the universe.

    Quote Originally Posted by Wolfo View Post
    Concordo e propongo ban temporanei per chi critica la topa , la topa non si critica , dal trombabile in su non si commenta in modo sgradevole.
    la tua ignoranza in materia e' raccapricciante
    -cit. Estrema, 2022

  2. #32
    Lieutenant Commander Mez's Avatar
    Join Date
    Sep 2003
    Location
    Milano
    Posts
    6.607

    Default

    ma il c non ha l'int, short, long, double ecc.. da ignorante perchè per me è arabo

  3. #33
    Lieutenant Junior Grade Eltarion's Avatar
    Join Date
    Dec 2004
    Location
    Venaria
    Posts
    4.085

    Default

    usa i long che anche su sistemi a 32 bit sono comunque da 64 quindi con un unsigned long rappresenti 2^64 numeri. sprecare 4 bute di int per rappresentare solo le cifre è folle axet
    Realm Of Trollers
    while ( ! ( succeed = try() ) );
    Spoiler

  4. #34
    Lieutenant Brcondor's Avatar
    Join Date
    Mar 2005
    Posts
    4.610

    Default

    Quote Originally Posted by San Vegeta View Post
    se vai su un sistema a 64 bit, puoi usare il long che è appunto 64 bit, quindi puoi indirizzare fino a 2^64 numeri, oppure il int __attribute__ ((mode(TI))) col gcc.
    è bastato cliccare sul primo link trovato su google, sicuramente esistono librerie per rappresentare numeri enormi

    come idea alternativa, se non ricordo puttanate, esisteva il modo di rappresentare qualunque numero come funzione polinomica, la quale funzione andrebbe poi codificata e rappresentata... ma mi sa che stiamo andando un po' oltre il seminato

    http://www.daniweb.com/software-deve...threads/135667 (l'ultimo post molto bello)

    http://gmplib.org/
    Ti adoro, grazie mille era quello che cercavo.
    Mentre lavoravo ieri mi è sorto un problema. Con numeri grandi la quantita di conti da fare è abnorme: con matlab oltre un certo numero(60.000.000) saturavo la memoria e quindi si impallava tutto. Con c per fortuna questo non succede(la memoria è usata come dico io, quindi finchè il vettore non diventa piu grande dei 3 gb di ram che ho liberi lavora tranquillo). Iò èrpbòema è che usa solo il 25% del processore: c'è un modo per forzare il programma a usare il 60% del processore e metterci quindi di meno?
    " ...e mai un pensiero non al denaro, non all'amore né al cielo... " Fabrizio de Andrè

  5. #35
    Lieutenant Commander Axet's Avatar
    Join Date
    Sep 2003
    Location
    Ginevra
    Posts
    33.807

    Default

    Quote Originally Posted by Eltarion View Post
    usa i long che anche su sistemi a 32 bit sono comunque da 64 quindi con un unsigned long rappresenti 2^64 numeri. sprecare 4 bute di int per rappresentare solo le cifre è folle axet
    Molto probabilmente non è la soluzione ottimale, ma se devi lavorare con numeri di 100 e passa cifre come fai? In Java c'è la classe BigInteger, in C magari c'è qualche libreria apposita, ma coi tipi primitivi non è possibile farlo

    I'm no hero. Never was. Never will be.
    -----
    Soul of the mind, key to life's ether
    Soul of the lost, withdrawn from its vessel
    May strength be granted so the world might be mended...
    So the world might be mended...

  6. #36
    Lieutenant Commander Axet's Avatar
    Join Date
    Sep 2003
    Location
    Ginevra
    Posts
    33.807

    Default

    Quote Originally Posted by Brcondor View Post
    Ti adoro, grazie mille era quello che cercavo.
    Mentre lavoravo ieri mi è sorto un problema. Con numeri grandi la quantita di conti da fare è abnorme: con matlab oltre un certo numero(60.000.000) saturavo la memoria e quindi si impallava tutto. Con c per fortuna questo non succede(la memoria è usata come dico io, quindi finchè il vettore non diventa piu grande dei 3 gb di ram che ho liberi lavora tranquillo). Iò èrpbòema è che usa solo il 25% del processore: c'è un modo per forzare il programma a usare il 60% del processore e metterci quindi di meno?
    Vai in parallelo

    I'm no hero. Never was. Never will be.
    -----
    Soul of the mind, key to life's ether
    Soul of the lost, withdrawn from its vessel
    May strength be granted so the world might be mended...
    So the world might be mended...

  7. #37
    Lieutenant Junior Grade Eltarion's Avatar
    Join Date
    Dec 2004
    Location
    Venaria
    Posts
    4.085

    Default

    yeah spamma thread come piovessero. tra l'altro in c++ c'è una libreria ultrafiga (segnalata da un amico, ora non ricordo come si chiama, se vuoi controllo) che gestisce automaticamente la paralellizazione dei calcoli matematici.
    Realm Of Trollers
    while ( ! ( succeed = try() ) );
    Spoiler

  8. #38
    Lieutenant Brcondor's Avatar
    Join Date
    Mar 2005
    Posts
    4.610

    Default

    Sto facendo tutto in c, ora cerco qualcosa su google. Thx per la dritta
    " ...e mai un pensiero non al denaro, non all'amore né al cielo... " Fabrizio de Andrè

  9. #39
    Lieutenant Junior Grade Eltarion's Avatar
    Join Date
    Dec 2004
    Location
    Venaria
    Posts
    4.085

    Default

    mi pare ci siano anche per c, controllo e ti faccio sapere.
    Realm Of Trollers
    while ( ! ( succeed = try() ) );
    Spoiler

  10. #40
    Lieutenant Brcondor's Avatar
    Join Date
    Mar 2005
    Posts
    4.610

    Default

    Thx mille delle varie mani, sta iniziando a girare tutto
    " ...e mai un pensiero non al denaro, non all'amore né al cielo... " Fabrizio de Andrè

  11. #41
    Lieutenant Brcondor's Avatar
    Join Date
    Mar 2005
    Posts
    4.610

    Default

    edit risolto. Rebuildato tutto ed è andato.
    C'è un piccolo problema: ho creato un source file con dentro solo la funzione. Alla fine della funzione stampo i risultati tranquillamente. Poi mi torna del main dove c'è un menu interattivo del piffero giusto per fare piu prove. Se però provo a stampare dal main i risultati, si blocca tutto. La funzione l'ho dichiarata cosi
    void funzione(int*vect1,int*vect2,int numeri)
    e la chiamo
    int *v1,*v2;
    int numero;
    funzione(v1,v2,numero);
    Last edited by Brcondor; 13th December 2011 at 20:37.
    " ...e mai un pensiero non al denaro, non all'amore né al cielo... " Fabrizio de Andrè

  12. #42
    Ensign Hardcore's Avatar
    Join Date
    Sep 2006
    Location
    Modena
    Posts
    3.550

    Default

    magari guardati qualche cosa di ottimizzazione cache, che se lavori con array potrebbe tornarti utile usarle in modo corretto


  13. #43
    Lieutenant Junior Grade Eltarion's Avatar
    Join Date
    Dec 2004
    Location
    Venaria
    Posts
    4.085

    Default

    Quote Originally Posted by Brcondor View Post
    edit risolto. Rebuildato tutto ed è andato.
    C'è un piccolo problema: ho creato un source file con dentro solo la funzione. Alla fine della funzione stampo i risultati tranquillamente. Poi mi torna del main dove c'è un menu interattivo del piffero giusto per fare piu prove. Se però provo a stampare dal main i risultati, si blocca tutto. La funzione l'ho dichiarata cosi
    void funzione(int*vect1,int*vect2,int numeri)
    e la chiamo
    int *v1,*v2;
    int numero;
    funzione(v1,v2,numero);
    in che senso si blocca tutto? vai in debug e dicci l'errore
    Realm Of Trollers
    while ( ! ( succeed = try() ) );
    Spoiler

  14. #44
    Lieutenant Brcondor's Avatar
    Join Date
    Mar 2005
    Posts
    4.610

    Default

    Domani guardo thx. Cmq il programma si blocca e compare il robo di windows. Devo capire bene come usare il debug, che con matlab era fondamentale.... qua riempio il listato di printf idioti lol
    " ...e mai un pensiero non al denaro, non all'amore né al cielo... " Fabrizio de Andrè

  15. #45
    Ensign Hardcore's Avatar
    Join Date
    Sep 2006
    Location
    Modena
    Posts
    3.550

    Default

    Ma stai programmando da notepad???
    Usa Visual Studio e metti i breakpoint. Pd mica siamo nel 1970


Page 3 of 6 FirstFirst 123456 LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
[Output: 103.13 Kb. compressed to 87.64 Kb. by saving 15.49 Kb. (15.02%)]