Crunchez vos adresses URL
|
Rejoignez notre discord
|
Hébergez vos photos
Page 2 sur 4 PremièrePremière 1234 DernièreDernière
Affichage des résultats 31 à 60 sur 96
  1. #31
    Citation Envoyé par DaP
    Je ne comprends pas ton code, il marche ? D'après ce que je comprends, si num est nul, on ne passe pas dans la boucle et verif() retourne 1, sinon on décale jusqu'à ce que le lsb soit égal à 1, et verif() retourne 0.
    Non il ne marche pas (du tout ;p) mais c'était pour expliquer un peu mieux ma pensée (qui était en gros : utiliser une boucle et des décalages).

  2. #32
    Et comment crois-tu que le processeur compare eax et ebx ? Avec un test pardi.
    Pour le maximum, on est coincé, je dirais même mathématiquement, à utiliser quelque part un test.
    une balle, un imp (Newstuff #491, Edge, Duke it out in Doom, John Romero, DoomeD again)
    Canard zizique : q 4, c, d, c, g, n , t-s, l, d, s, r, t, d, s, c, jv, c, g, b, p, b, m, c, 8 b, a, a-g, b, BOF, BOJV, c, c, c, c, e, e 80, e b, é, e, f, f, f, h r, i, J, j, m-u, m, m s, n, o, p, p-r, p, r, r r, r, r p, s, s d, t, t
    Canard lecture

  3. #33
    Je n'ai pas été assez explicite, je parlais d'éviter les branchements. CMP fait juste une soustraction sans sauvegarder le résultat et positionne les flags de statut. Voilà un exemple qui n'utilise aucune instruction de test (SETA copie !CF dans CL) :

    Code:
    xor ecx, ecx
    mov eax, 10       ; a
    mov ebx, 20       ; b
    
    cmp eax, ebx
    seta cl           ; ecx = (a > b) ?  1:0
    neg ecx           ;                 FF:0
    
    sub eax, ebx
    and ecx, eax      ;                a-b:0
    
    add ecx, ebx      ;                  a:b
    L'équivalent en C :

    Code:
    int a, b, max;
    max = (-(a > b) & (a-b)) + b;
    Tu relances ?
    Citation Envoyé par Wanou Voir le message
    Je t'aime...
    :wq

  4. #34
    Bon les setcc à la place des branchements c'est un peu tricher quand même pour ce genre de truc mais bon ;-)

    Si on veut le faire avec des opcodes plus vieillot, la valeur absolue peut se calculer comme ça (idiomatique, j'ai rien inventé):

    Code:
    cdq
    xor eax, edx
    sub eax, edx
    Question suivante alors?

    Mmmh... Allez...
    Comment faire une division par 3... sans division?
    Edit : Entière la division hein.
    Sleeping all day, sitting up all night
    Poncing fags that's all right
    We're on the dole and we're proud of it
    We're ready for 5 More Years

  5. #35
    DaP, d’après toi, a>b est un test, ou pas ? :mrgreen:
    Il suffit de voir la définition de la valeur absolue pour voir qu’on est coincé et qu’on devra faire appel à un test, de gré ou de force, à un moment ou à un autre.

    Pour obtenir le reste, on peut additionner tous les chiffres, comme pour la preuve par neuf.
    une balle, un imp (Newstuff #491, Edge, Duke it out in Doom, John Romero, DoomeD again)
    Canard zizique : q 4, c, d, c, g, n , t-s, l, d, s, r, t, d, s, c, jv, c, g, b, p, b, m, c, 8 b, a, a-g, b, BOF, BOJV, c, c, c, c, e, e 80, e b, é, e, f, f, f, h r, i, J, j, m-u, m, m s, n, o, p, p-r, p, r, r r, r, r p, s, s d, t, t
    Canard lecture

  6. #36
    Solution bourrine (entrée dans EAX, sortie dans EDX) :

    Code:
    mov edx, 0AAAAAAABh
    mul edx
    shr edx, 1
    Citation Envoyé par ducon
    DaP, d’après toi, a>b est un test, ou pas ? :mrgreen:
    Il suffit de voir la définition de la valeur absolue pour voir qu’on est coincé et qu’on devra faire appel à un test, de gré ou de force, à un moment ou à un autre.
    Bien sûr, mais c'était un peu évident que je parlais de ne pas faire de branchement pour que le programme ne suive qu'un chemin quoi qu'il arrive. Pour le (a > b), ça dépend de ce que le compilateur en fait.
    Citation Envoyé par Wanou Voir le message
    Je t'aime...
    :wq

  7. #37
    Citation Envoyé par DaP
    Si tu as une meilleure solution je suis preneur.
    Bah meilleure solution, non, c'est un truc clairement convolué mais comme le disait ducon:
    Code:
    max(a, b) = ((a+b) + abs(b-a))/2
    min(a, b) = ((a+b) - abs(b-a))/2
    et tu peux calculer le abs avec le
    Code:
    cdq
    xor eax, edx
    sub eax, edx
    Bon c'est tordu hein... mais sauf erreur ça tourne dès le 386

    (et bien joué pour le div by 3, pratique pour trouver un nombre de triangles à partir du nombre de vertex)
    A toi de balancer des questions DaP!
    Sleeping all day, sitting up all night
    Poncing fags that's all right
    We're on the dole and we're proud of it
    We're ready for 5 More Years

  8. #38
    Ben je comptais sortir ça mais je n'arrive pas à le compiler, et j'ai pas trop envie d'essayer de comprendre non plus.
    Alors une connue : comment interchanger deux valeurs sans passer par une variable intermédiaire ?
    Citation Envoyé par Wanou Voir le message
    Je t'aime...
    :wq

  9. #39
    Citation Envoyé par DaP
    Alors une connue : comment interchanger deux valeurs sans passer par une variable intermédiaire ?
    Bon je réponds pas sur celle là, quelqu'un doit bien connaître ça dans le coin!
    Sleeping all day, sitting up all night
    Poncing fags that's all right
    We're on the dole and we're proud of it
    We're ready for 5 More Years

  10. #40
    Je vois bien un truc du genre :

    a = valeur1
    b = valeur2

    a+b=b
    b-a=a
    b-a=b

    En algo complet

    edit : ça me fait penser aux Tours de Hanoï ...

    edit 2 : je suis ARL moi, pas Dev boudiou ^^
    Ma chaine Youtube qu'elle est bien : https://www.youtube.com/channel/UCHP...eCmmZB18XC98VQ

  11. #41
    Ca marche, je connaissais pas.

    On peut aussi faire avec des XOR :

    Code:
    int a = 5, b = 2;
       
    a ^= b;
    b ^= a;
    a ^= b;
    A toi !
    Citation Envoyé par Wanou Voir le message
    Je t'aime...
    :wq

  12. #42
    Citation Envoyé par DaP
    Ca marche, je connaissais pas.

    On peut aussi faire avec des XOR :

    Code:
    int a = 5, b = 2;
       
    a ^= b;
    b ^= a;
    a ^= b;
    A toi !
    Houla, je passe mon tour ! je suis juste un gros curieux en prog, je n'ai pas de onnaissances particulières ! je suivrais le topic avec plaisir, mais je ne me sens pas capable de créer une énigme, dsl
    Ma chaine Youtube qu'elle est bien : https://www.youtube.com/channel/UCHP...eCmmZB18XC98VQ

  13. #43
    Code:
    int zongo(int n)
    {
      {  
        int result = n,i;
        for(i=2;i*i <= n;i++)
        {
          if (n % i == 0) result -= result / i;
            while (n % i == 0) n /= i;
        }
        if (n > 1)
          result -= result / n;
        return result;
      }
    }
    une balle, un imp (Newstuff #491, Edge, Duke it out in Doom, John Romero, DoomeD again)
    Canard zizique : q 4, c, d, c, g, n , t-s, l, d, s, r, t, d, s, c, jv, c, g, b, p, b, m, c, 8 b, a, a-g, b, BOF, BOJV, c, c, c, c, e, e 80, e b, é, e, f, f, f, h r, i, J, j, m-u, m, m s, n, o, p, p-r, p, r, r r, r, r p, s, s d, t, t
    Canard lecture

  14. #44
    Citation Envoyé par ducon
    Code:
    int zongo(int n)
    {
      {  
        int result = n,i;
        for(i=2;i*i <= n;i++)
        {
          if (n % i == 0) result -= result / i;
            while (n % i == 0) n /= i;
        }
        if (n > 1)
          result -= result / n;
        return result;
      }
    }
    J&#39;ai beau relire ce truc, j&#39;en ai aucune idée
    Sleeping all day, sitting up all night
    Poncing fags that's all right
    We're on the dole and we're proud of it
    We're ready for 5 More Years

  15. #45
    C’est un truc de matheux.
    une balle, un imp (Newstuff #491, Edge, Duke it out in Doom, John Romero, DoomeD again)
    Canard zizique : q 4, c, d, c, g, n , t-s, l, d, s, r, t, d, s, c, jv, c, g, b, p, b, m, c, 8 b, a, a-g, b, BOF, BOJV, c, c, c, c, e, e 80, e b, é, e, f, f, f, h r, i, J, j, m-u, m, m s, n, o, p, p-r, p, r, r r, r, r p, s, s d, t, t
    Canard lecture

  16. #46
    Citation Envoyé par ducon
    C’est un truc de matheux.
    Si n est premier, ça renvoie n-1.
    En fait ça pourrait presque être un truc qui renvoie le plus gros facteur mais non.
    J&#39;arrive pas à capter ce que ça fait.
    Un p&#39;tit indice?
    Sleeping all day, sitting up all night
    Poncing fags that's all right
    We're on the dole and we're proud of it
    We're ready for 5 More Years

  17. #47
    Citation Envoyé par Tramb
    Si n est premier, ça renvoie n-1.
    Exact.
    Tu connais beaucoup de fonctions qui renvoient n−1 si n est premier ?

    J&#39;arrive pas à capter ce que ça fait.
    Un p&#39;tit indice?
    Et si n est composé du produit de deux nombres premiers ? Ou alors d’une puissance d’un seul nombre premier ?
    une balle, un imp (Newstuff #491, Edge, Duke it out in Doom, John Romero, DoomeD again)
    Canard zizique : q 4, c, d, c, g, n , t-s, l, d, s, r, t, d, s, c, jv, c, g, b, p, b, m, c, 8 b, a, a-g, b, BOF, BOJV, c, c, c, c, e, e 80, e b, é, e, f, f, f, h r, i, J, j, m-u, m, m s, n, o, p, p-r, p, r, r r, r, r p, s, s d, t, t
    Canard lecture

  18. #48

  19. #49
    T’es un geek, toi ?
    une balle, un imp (Newstuff #491, Edge, Duke it out in Doom, John Romero, DoomeD again)
    Canard zizique : q 4, c, d, c, g, n , t-s, l, d, s, r, t, d, s, c, jv, c, g, b, p, b, m, c, 8 b, a, a-g, b, BOF, BOJV, c, c, c, c, e, e 80, e b, é, e, f, f, f, h r, i, J, j, m-u, m, m s, n, o, p, p-r, p, r, r r, r, r p, s, s d, t, t
    Canard lecture

  20. #50
    quand je vois ce topic, je me dis que finalement non

  21. #51
    Citation Envoyé par ducon
    Exact.
    Tu connais beaucoup de fonctions qui renvoient n−1 si n est premier ?
    Et si n est composé du produit de deux nombres premiers ? Ou alors d’une puissance d’un seul nombre premier ?
    Mmmh! Ca a l&#39;air de faire ça:
    Soit n = produit sur i des ai^pi (ai, premiers)
    zongo(n) = produit sur i des (ai-1)*ai^(pi-1)

    Ah. Ca a l&#39;air d&#39;être l&#39;indicateur d&#39;Euler en fait après un peu de recherche sur le net, le nombre de nombres inférieurs premiers avec n!

    (Disclaimer : on va dire que l&#39;arithmétique est pas ma compétence la plus forte en maths )
    Sleeping all day, sitting up all night
    Poncing fags that's all right
    We're on the dole and we're proud of it
    We're ready for 5 More Years

  22. #52
    C’est ça.
    Ça s’appelle l’indicatrice d’Euler, et c’est noté ϕ(n).
    une balle, un imp (Newstuff #491, Edge, Duke it out in Doom, John Romero, DoomeD again)
    Canard zizique : q 4, c, d, c, g, n , t-s, l, d, s, r, t, d, s, c, jv, c, g, b, p, b, m, c, 8 b, a, a-g, b, BOF, BOJV, c, c, c, c, e, e 80, e b, é, e, f, f, f, h r, i, J, j, m-u, m, m s, n, o, p, p-r, p, r, r r, r, r p, s, s d, t, t
    Canard lecture

  23. #53
    Citation Envoyé par ducon
    C’est ça.
    Ça s’appelle l’indicatrice d’Euler, et c’est noté ϕ(n).
    Ah ben je venais de voir ça

    (Cool on peut copier des caractères chelous sur le forum : ط بقناة العربية يقدم على مدار الساعة ال)
    Sleeping all day, sitting up all night
    Poncing fags that's all right
    We're on the dole and we're proud of it
    We're ready for 5 More Years

  24. #54
    Citation Envoyé par Tramb
    (Cool on peut copier des caractères chelous sur le forum : ط بقناة العربية يقدم على مدار الساعة ال)
    Ce qui veut dire ?
    une balle, un imp (Newstuff #491, Edge, Duke it out in Doom, John Romero, DoomeD again)
    Canard zizique : q 4, c, d, c, g, n , t-s, l, d, s, r, t, d, s, c, jv, c, g, b, p, b, m, c, 8 b, a, a-g, b, BOF, BOJV, c, c, c, c, e, e 80, e b, é, e, f, f, f, h r, i, J, j, m-u, m, m s, n, o, p, p-r, p, r, r r, r, r p, s, s d, t, t
    Canard lecture

  25. #55
    que tu ne comprend pas les caracteres chelous :smile:

  26. #56
    Citation Envoyé par elpaulo
    que tu ne comprend pas les caracteres chelous :smile:
    ...et que j&#39;ai copié du texte de google sans savoir ce que c&#39;était.
    Sleeping all day, sitting up all night
    Poncing fags that's all right
    We're on the dole and we're proud of it
    We're ready for 5 More Years

  27. #57
    En fait, cette fonction compte le nombre de nombres plus petits que n qui sont premiers avec n, c’est-à-dire sans facteur commun avec n.
    une balle, un imp (Newstuff #491, Edge, Duke it out in Doom, John Romero, DoomeD again)
    Canard zizique : q 4, c, d, c, g, n , t-s, l, d, s, r, t, d, s, c, jv, c, g, b, p, b, m, c, 8 b, a, a-g, b, BOF, BOJV, c, c, c, c, e, e 80, e b, é, e, f, f, f, h r, i, J, j, m-u, m, m s, n, o, p, p-r, p, r, r r, r, r p, s, s d, t, t
    Canard lecture

  28. #58
    Et qui relance dans tout ça ?
    Citation Envoyé par Wanou Voir le message
    Je t'aime...
    :wq

  29. #59
    Je peux vous trouver une autre fonction mathématique, si vous voulez.
    une balle, un imp (Newstuff #491, Edge, Duke it out in Doom, John Romero, DoomeD again)
    Canard zizique : q 4, c, d, c, g, n , t-s, l, d, s, r, t, d, s, c, jv, c, g, b, p, b, m, c, 8 b, a, a-g, b, BOF, BOJV, c, c, c, c, e, e 80, e b, é, e, f, f, f, h r, i, J, j, m-u, m, m s, n, o, p, p-r, p, r, r r, r, r p, s, s d, t, t
    Canard lecture

  30. #60
    Moins drôle que Monsieur Cacao Avatar de Phatcobra
    Ville
    Plaisir ou presque
    Citation Envoyé par Pen²
    à fond, c&#39;est mon idole!
    j&#39;ai même des posters de lui dans ma chambre
    C&#39;est à cause de gars comme toi (les geeks) que les filles ont "peur" des mecs comme moi (les gamers)
    .... et c'était bon !!

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •