IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Contourner le dépassement de mémoire


Sujet :

Algorithmes et structures de données

  1. #21
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 419
    Points : 5 818
    Points
    5 818
    Par défaut
    Citation Envoyé par monpoto2 Voir le message
    SVP détaille moi cette partie , elle est extrêmement importante et intéressant. Au lieu d'envoyer un nombre on peut envoyer au Système B, une puissance de 2. génial !!!! détails SVP.
    Salut

    sachant que chaque embranchement ne peut comporter que 2 solution un père ou une mère (arbre binaire)
    sachant comme tout le monde te le dis que la représentation binaire de ton arbre est une propriété de ton arbre

    il me parais évident que ton nombre est forcement un nombre dans lequel la puissance de deux à toutes sa place
    prenons un petit exemple :
    on va commencer par une petite valeur histoire de ne pas trop compliquer ^^
    imaginons que tu veille atteindre le 256 element on sais que la racine de 256 = 16
    donc tu ne transmet que 16 par sms et la machine B fait l’opération inverse
    16^2 = 256
    la représentation binaire à aussi une caractéristique c'est qu'a chaque augmentation de "niveau" le nombre correspond à une puissance de 2

    bin dec
    0 0
    1 1
    ... ...
    10000 16
    10001 17
    ... ...
    100000000 256
    100000001 257
    ... ...
    on se sert régulièrement de cette règle pour les decalage en développement
    pour le nombre ne correspondant pas a une puissance de deux il faut lui passer son complément
    reprenons l'exemple 8388608
    on sais que ça racine est > 2896 et < 2897
    donc on enverra comme premier chiffre 2896 .. il te reste 1792 a envoyer
    deux choix s'impose a toi soi tu continue d'envoyer des puissance de deux dans notre cas
    42 - 5 -1-1 et il te reste 1
    pour reconstruire
    2896^2+42^2+5^2+1^2+1^2+1
    soit tu considère que tu ne cherche qu'une fois la racine et ensuite tu envoi le complément
    et dans ce cas 2896 - 1792
    j’espère avoir été assez clair

    je pense même que tu peut encore réduire en utilisant les puissance de 4,8,16,32 mais dans ce cas tu doit obligatoirement transmettre aussi la valeur de la puissance
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  2. #22
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    reprenons l'exemple 8388608
    8388608 n'est pas le nombre. C'est le niveau.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  3. #23
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 419
    Points : 5 818
    Points
    5 818
    Par défaut
    salut

    c'est le nombre de niveau ^^
    plus sérieusement comment veut t'il que l'on retrouve sont élément si il nous donne son niveau
    de toutes les manière le principe est le même sachant que chaque niveau correspond en binaire a 100...n0 donc
    cela ne devrais pas poser de problème d'utiliser les puissance de deux

    Ps nous savons que le premier indice du niveau si le niveau commence a zero
    se seras
    IP := Puissance(2,n)
    et que le dernier
    ID := Puissance(2,n+1)-1
    Ps2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
                                           1(1)                                      0
                          0(2)                              1(3)                   1
                0(4)            1(5)            0 (6)           1(7)           2
         (8)0    1(9) (10) 01 (11) (12) 01 (13) (14) 01 (15)       3
      (16)01   01         0101            0101           0101 (31)     4
     (32)0   ...                                                      01 (63)    5
    ...                                                                                 6
    (128)01  ...                                                        01 (255) 7
    pour vous en convaincre il suffit de construire l'arbre et en choisissant le chemin tu retrouve le nombre binaire associé
    exemple 10000000 => 128 en decimale et 11111111 => 255
    le 1 étant la racine de l'arbre
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  4. #24
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    Merci pour ces banalités.

    Prendre la racine du niveau, comme tu l'as préconisé, ne sert à rien. N'est-ce pas ?
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  5. #25
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 419
    Points : 5 818
    Points
    5 818
    Par défaut
    salut

    effectivement car je pensais que c’était l'"indice" du nœud et pas le niveau
    mais le calcul reste toujours bon quelque soit le nombre cela permet de réduire considérablement la taille
    des éléments à envoyer
    il n'envoi pas l'arbre complet d’après se que j'ai compris
    je suppose que l'on peut encore réduire en envoyant le rang (n) et la valeur de l'indice - Puissance(2,n)
    il existe plein de solution pour réduire la valeur de l’élément à envoyer
    la machine b recevant les différents éléments est capable de le reconstruire sans aucun problème
    il faut juste que les machines se mettent d'accord sur la technique à employer
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  6. #26
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 485
    Points
    5 485
    Par défaut
    En réalité tu as simplement développé un encodage plus compliqué que l'encodage binaire, utilisant ce dernier pour les racines, et moins efficace au final.

    En effet la racine d'un nombre inférieur à 2^2n est inférieure à 2^n (n bits requis) mais le reste, lui, peut y être supérieur. 250 = 15 * 15 + 25

  7. #27
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 419
    Points : 5 818
    Points
    5 818
    Par défaut
    salut,

    c'est possible effectivement pour pallier a ceci il faut peut être définir un seuil afin de savoir si oui ou non il est intéressant de traiter le reste
    je lui donne une simple possibilités de réduire les fameux nombres a transmettre de toutes les manière le parcours de ces éléments (binaire)
    au finale restera le même a moins de pouvoir trouver une partie du graph qui ce répète je ne vois pas trop comment il peut réduire sa recherche

    pour la valeur a transmettre je ne m'attache pas au graph mais bien a l'indice qu'il veut atteindre
    sachant qu'une division entière (le quotient) donnera l’ancêtre automatiquement en vérifiant si la valeur est paires ou non

    donc le but est de réduire le nombre a transmettre
    j'aurais très bien pu dire on transmet la valeur de l'indice comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    num = Puissance(indice,1/n)
    et la machine b reconstruis l'indice comme cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    indice = Puissance(num,n)
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Dépassement de mémoire pour liste liées
    Par jpascal dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 03/04/2008, 21h37
  2. Réponses: 6
    Dernier message: 13/12/2007, 19h18
  3. Re: dépassement de mémoire
    Par petdelascar dans le forum C
    Réponses: 8
    Dernier message: 05/12/2005, 22h17
  4. dépassement de mémoire
    Par petdelascar dans le forum C
    Réponses: 5
    Dernier message: 05/12/2005, 15h13
  5. Qu'est-ce que "le dépassement de mémoire tampon"
    Par allex2108 dans le forum Autres Logiciels
    Réponses: 1
    Dernier message: 13/09/2005, 14h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo