Répondre à la discussion
Affichage des résultats 1 à 29 sur 29

>>> In(x) pour x géant



  1. #1
    SPH

    >>> In(x) pour x géant


    ------

    Quand on a un grand nombre style 100 chiffres, comment savoir ce que vaux l'operation "In(Mon chiffre)"; sachant que l'on ne peux pas directement demander à l'ordinateur à cause d'un overflow ?
    Y a t'il un moyen détourné de connaitre le résultat ?
    Si je me souviens bien, quelqu'un m'avait dit que l'operation "In" revenait à multiplier x par y (y etant une constante reelle positive)

    -----

  2. Publicité
  3. #2
    Quinto

    Re : >>> In(x) pour x géant

    C'est quoi In?

  4. #3
    SPH

    Re : >>> In(x) pour x géant

    Citation Envoyé par Quinto
    C'est quoi In?
    Connu sous le nom "Log" egalement

  5. #4
    Danorane

    Re : >>> In(x) pour x géant

    A !

    Ln donc ^^

  6. #5
    Cybernico

    Re : >>> In(x) pour x géant

    Tu as toujours la règle qui dit que:
    Ln(a.b) = Ln(a) + Ln(b)
    Peut-etre une piste
    sinon fait toi un programme en php! tu ne sera pas limité, et c'est très simple:
    Code:
    <?php
    $mon_nombre = 12345;
    echo floor(log($mon_nombre));
    ?>
    note: en php, le log népérien ou naturel est décri par la fonction log();
    floor() permet permet d'éliminer les décimales! ca peur être relativement plus simple à lire.

  7. A voir en vidéo sur Futura
  8. #6
    SPH

    Re : >>> In(x) pour x géant

    Ce n'est pas en PHP que je programme mais en ASM. Mais pour bien comprendre, si c'etait du basic, je devrais faire quoi ?
    Par exemple, pour 191, au lieu de Log(191), je peux proceder comment ?

  9. Publicité
  10. #7
    R is R

    Re : >>> In(x) pour x géant

    Si 191 n'est pas premier, il faut que tu trouve a et b tel que 191=a*b et ensuite tu développe ton log comme l'a expliqué Cyberno

  11. #8
    SPH

    Re : >>> In(x) pour x géant

    Citation Envoyé par R is R
    Si 191 n'est pas premier, il faut que tu trouve a et b tel que 191=a*b et ensuite tu développe ton log comme l'a expliqué Cyberno
    Oui, mais je ne sais pas a l'avance si mon nombre est premier. Ca change tout je pense !

  12. #9
    invité576543
    Invité

    Re : >>> In(x) pour x géant

    Bonjour,

    Le problème n'est pas totalement posé! Imaginons que tu ne dispose que d'une fonction en bibliothèque donnant le log des nombres entiers jusqu'à n, et on cherche à utiliser cette fonction pour calculer le log d'un nombre k>n.

    Si k se factorise en termes inférieurs à n, c'est terminé.

    Sinon, on peut procéder par encadrement k1<k<k2, avec k1 et k2 factorisables. Cela donne une certaine précision. Pour faire mieux, on fait la même chose sur les puissances: k1<ki<k2, le log est ensuite obtenu par division par i... On peut plus simplement chercher dans les ki-1 ou +1 quelque chose qui se factorise bien.

    Ce sont des pistes, il y sûrement mieux à faire...

    Cordialement,

  13. #10
    SPH

    Re : >>> In(x) pour x géant

    Il n'y a pas tout simplement ceci ? :

    x = log(y) = x*y/z ??

  14. #11
    GuYem

    Re : >>> In(x) pour x géant

    Euh non je ne crois pas!
    Bravo jolie Ln, tu as trouvé : l'armée de l'air c'est là où on peut te tenir par la main.

  15. #12
    Romain BERTOUY

    Re : >>> In(x) pour x géant

    Citation Envoyé par SPH
    Il n'y a pas tout simplement ceci ? :

    x = log(y) = x*y/z ??
    si un tel nombre z existe, il est egale à y (x = x*y/z => y/z = 1)

    or x = log(y) donc y = e^x et z = e^x aussi, c'est embêtant tout ça

    x = x*(e^x)/(e^x) ça ne sert pas à grand chose
    Romain

  16. Publicité
  17. #13
    Penelope20k

    Re : >>> In(x) pour x géant

    pour log(191) ..bah log (1.91 * 100) = log (100) + log (1.91) = 2 x log (1.91) (base 10)

  18. #14
    Pole

    Re : >>> In(x) pour x géant

    Tu prend ta base de loarithme et tu divise jusqu'à obtenir 1.
    complexité en log.
    Pour comprendre la récursivité croisée, il faut comprendre les arbres d'appels. Et vice versa.

  19. #15
    SPH

    Re : >>> In(x) pour x géant

    Bon, ok.
    Alors, laissez moi analyser la definition d'un LN sur un nombre.
    Concretement, que ce passe t'il sur le nombre 100 (par exemple)

  20. #16
    Penelope20k

    Re : >>> In(x) pour x géant

    Maintenant si tu as ce type de probleme

    ln (12354987987987979879798798712 3132131321)

    tu peut utilise

    ln (10^39 *1.235498798798797987979879871 23132131321)
    =

    ln (10^39) + ln (1.235498798798797987979879871 23132131321)

    et approximé ln (1.235498798798797987979879871 23132131321)

    par un developpement limité au alentour de 1

    http://http://fr.wikipedia.org/wiki/...s_Limit%C3%A9s
    Dernière modification par Penelope20k ; 28/09/2005 à 12h54.

  21. #17
    invité576543
    Invité

    Re : >>> In(x) pour x géant

    Citation Envoyé par Penelope20k
    Maintenant si tu as ce type de probleme

    ln (12354987987987979879798798712 3132131321)

    tu peut utilise

    ln (10^39 *1.235498798798797987979879871 23132131321)
    =

    ln (10^39) + ln (1.235498798798797987979879871 23132131321)

    et approximé ln (1.235498798798797987979879871 23132131321)

    par un developpement limité au alentour de 1
    Mieux vaut faire un DL aux alentours de la valeur! Les dérivées successives ne sont pas difficiles à calculer!

    Cordialement,

  22. #18
    Penelope20k

    Re : >>> In(x) pour x géant

    en fait il faut que tu fasses un mix avec l'ensemble de ces formules

    ----------------------------------------- BASE e --------------
    ln (a*b) = ln(a) + ln(b)

    ln (e^n) = n ln (e) = n ...( ln(e)=1 )

    ln (1/a) = - ln a

    -----------------------------------------BASE 10 ------------

    log (n) = ln (n) / ln (10) ..(pour la base 10)

    log (10^n) = n (en base 10)
    log (a+b) = log a + log b

    log (1/a) = - log a

    -------------------------------


    Derniere formule .. approximation par developpement limité de ln (1 + x) pour x petit

    ln (1 + x) = -1 * x + (1/2) * x^2 - x^3/3 + ... - ... etc

  23. Publicité
  24. #19
    Pole

    Re : >>> In(x) pour x géant

    Tu es sûr de ta formule pour la base 10 en sommant les log?
    Pour comprendre la récursivité croisée, il faut comprendre les arbres d'appels. Et vice versa.

  25. #20
    Duke Alchemist

    Re : >>> In(x) pour x géant

    Bonsoir.
    Citation Envoyé par Penelope20k
    log (a+b) = log a + log b
    Je pense que c'est une faute de frappe de sa part, non ?
    Il faut lire, en effet : log (ab) = log a + log b

    Duke.

  26. #21
    Penelope20k

    Re : >>> In(x) pour x géant

    pas du tout sur ...plutot log(a.b)=log a + log b

  27. #22
    SPH

    Re : >>> In(x) pour x géant

    Bon, stop, on s'arrete. Prenons un petit exemple concret et voyons si tout le monde est daccord.

    Disons que l'on doit examiner 4421 mais il est dans une banque d'octet. Nous ne voyons de ce chiffre que 17 et 69 car 17*256+69 donne 4421.

    Que faire donc avec nos 2 nombres (17 et 69) pour avoir le LN de 4421 ?

    (je suis fier de mon exemple )

  28. #23
    GuYem

    Re : >>> In(x) pour x géant

    Je dirais qu'il n'y à rien à faire, à cause du plus on peut pas trouver le ln à partir de 17 et 69 seulement.
    Bravo jolie Ln, tu as trouvé : l'armée de l'air c'est là où on peut te tenir par la main.

  29. #24
    ericcc

    Re : >>> In(x) pour x géant

    on peut toujours écrire - si on veut garder le 256 -

    4421 = 256 *17*(1+69/17*256)
    donc ln (4421) = ln(256)+ln(17)+ln(1+69/17*256)
    en approximant le dernier terme au premier ordre :
    ln (4421) = ln(256)+ln(17)+69/17*256)

    Cela étant puisqu'on raisonne sur des octets, j'aurais pris plutot le log en base2

  30. Publicité
  31. #25
    SPH

    Re : >>> In(x) pour x géant

    Bon, apparement, c'est pas possible.
    Alors, si notre 4421 etait découpé comme ca :
    44 et 21
    ca arangerait quelque chose dans la facilité ?

  32. #26
    kaya31

    Re : >>> In(x) pour x géant

    Pas vraiment, tu passerais d'une ecriture en base 256 à une ecriture en base 100
    4421=44*100+21
    d'ou (avec l'écriture proposée par ericcc) :
    ln(4421)=ln(100)+ln(44)+21/(44*100)
    (Cette dernière expression étant d'ailleurs une approximation).

  33. #27
    Pole

    Re : >>> In(x) pour x géant

    Pour la base 10 :
    4421/10=442.1 log:=1
    442.1/10=44.21 log:=2
    44.21/10=4.421 log:=3
    stop : 4.421<10
    3<=log en base 10 de 4421<4

    Pour la base 2 :
    4421/2=2210.xxx log:=1
    2210/2=1105 log:=2
    1105/2=552 log:=3
    552/2=276 log:=4
    276/2=138 log:=5
    138/2=69 log:=6
    69/2=34 log:=7
    34/2=17 log:=8
    17/2=8 log:=9
    8/2=4 log:=10
    4/2=2 log:=11
    2/2=1 log:=12
    stop : 1<2
    12<=log en base 2 de 4421<13

    On n'a pas besoin de retenir les décimales.
    Mais on n'a qu'une approximation (partie entière) du log.
    D'habitude, cette approximation suffit.
    Pour comprendre la récursivité croisée, il faut comprendre les arbres d'appels. Et vice versa.

  34. #28
    Evil.Saien

    Re : >>> In(x) pour x géant

    Citation Envoyé par R is R
    Si 191 n'est pas premier, il faut que tu trouve a et b tel que 191=a*b et ensuite tu développe ton log comme l'a expliqué Cyberno
    Ok ! Parce que y'a que les nombre pas premiers qui s'ecrivent a*b ???

    a et b sont pas forcement des entiers !
    Mon psychiatre, pour quinze mille francs, il m'a débarrassé de ce que j'avais : quinze mille francs

  35. #29
    Evil.Saien

    Re : >>> In(x) pour x géant

    Par ailleurs on sait que:



    Avec tes grands nombres, tu peux utiliser la racines 100 eme, mais peut-etre que ca t'avantages pas, vu le temps mis pour les calculer...


    Par contre, je vois a peut pres ou tu veux en venir avec ta manipulation des grands nombres, j'imagine que c'est pas sans rapport avec les Mersennes.

    Pourquoi tu utilises pas ton propres format ? Genre, tu stockes tes nombres sur 256 bits ou 512 bits au lieu de 32 ou 64, et en plus tu manies seulement des entiers naturels, donc a la limites 128 bits definie en entiers naturels, ca te laisse deja de quoi faire pour les Mersennes !
    Mon psychiatre, pour quinze mille francs, il m'a débarrassé de ce que j'avais : quinze mille francs

Sur le même thème :

Discussions similaires

  1. Réponses: 13
    Dernier message: 16/09/2010, 20h38
  2. Actu - Au Spitzberg, un réfrigérateur géant pour les semences du monde
    Par RSSBot dans le forum Commentez les actus, dossiers et définitions
    Réponses: 16
    Dernier message: 04/12/2007, 12h39
  3. Un télescope géant pour l'Europe en 2018 ?
    Par RSSBot dans le forum Commentez les actus, dossiers et définitions
    Réponses: 6
    Dernier message: 12/12/2006, 14h21
  4. extraire le texte d'un SMS pour affichage géant.
    Par marc2 dans le forum Électronique
    Réponses: 3
    Dernier message: 07/02/2006, 21h49