Voici encore un petit défis. Le défis ne sera pas trop dur... enfin, selon vos connaissances en 'mathématiques' ! Si vous avez des questions, n'hésitez pas à les poser, moi si possible ou un bon samaritain de passage y répondra On évite de donner la réponse pour permettre à tout le monde de tenter Mais ça n'empêche pas d'aider bien sûr !
Defi N°1
Voici un fichier qui a subi le passage d'un nouveau genre de virus : le neuneuware.
et voici le principe actif du "virus" en question : (disponible ici : https://ideone.com/rQHU2L ) Seriez-vous capable de retrouver le contenu du fichier , où est-ce impossible de revenir en arrière ?
Défis N°2
Un peu plus complexe (mais pas beaucoup plus): Le paramètre multiplicateur peut être amené à changer. Faire une fonction permettant de déchiffrer, si possible, le message en prenant le multiplicateur en paramètre. Et permettant de déchiffrer le message. Essayer d'optimiser au maximum !
Défis N°3
En utilisant uniquement des type entier sur 4 octets MAXIMUM. Créer un algorithme de type "brut force" pour tester les 2 propriétés suivantes.
Je prend un nombre N > 3 Je prend tous les nombres <N et premier avec N (pgcd(nombre,N)=1)
Les nombre peuvent ne pas être premiers ( exemple 25 premier avec 42)
A :La somme de tous ces nombres modulo N donne N-1
B :Le produit de tous ces nombres modulo N donne N-1 ou 1
Faite un algorithme pour déterminer si ces règles sont respectées pour ces nombres : (et les valeurs de A: et B: )
Bon, comme je suis pas très très bon en math, je vais quand même demander de l'aide pour le premier exercice, parcequ'il y a un truc que je pige pas ... Je prends une lettre chez moi. puis j'applique l'opérateur, ça me donne un nombre en binaire. A tout hasard, on va dire
0000 0000 0000 0000 1001 1001 0011 1010
Si par contre, j’enlève le 0xff, ça me donne 0000 0001 0101 1001 1001 0010 0011 1010. Je vais les mettre l'un en dessous de l'autre
Est-ce que quelqu'un peut m'expliquer pourquoi ça me donne ça? (Je sais ce que ça fait de faire &0xff, mais j'arrive pas à comprendre le résultat la..., a moins que ce soit une erreur?)
« Je n’ai pas besoin de preuve. Les lois de la nature, contrairement aux lois de la grammaire, ne permettent aucune exception. » D. Mendeleïev
le résultat est 99 993a 3a ... Ce que je pensais c'était qu'il prenait mon retour chariot en compte, mais je comprends pas pourquoi il est avant, et pas après ...
- Edité par KirbXCoucou 18 juillet 2017 à 14:08:43
« Je n’ai pas besoin de preuve. Les lois de la nature, contrairement aux lois de la grammaire, ne permettent aucune exception. » D. Mendeleïev
Prière de ne pas poster ici vos, solutions, et de laisser chaque personne partir sur la même base ;)
PhilippeBeckx les résultats ne sont pas les bons, mais je vais y revenir dans le corrigé.
Pour t'en convaincre : le résultat avec 666667 est assez convaincant.
Tu ne multiplies que des nombre premier avec 666667 et tu arrives à 0.C'est à dire avec un nombre multiple de 666667 (donc non premier avec 66667) Comment est-ce possible ?
J'vais te répondre en lieu et place de neuneutrinos (pas taper stp gars)
En fait quand tu fais ton algorithme sur 4 bits, le produit et la somme des éléments passé un certain stade sont en overflow càd qu'un entier codé sur 4 bits NE PEUT PAS stocker le résultat sans dépasser la limite (et te sort n'importe quoi, on dit qu'il est passé en comportement indéterminé (unexpected behavior))... Pour palier à ce problème, en général, on passe sur un type plus grand (8 bits, 16 bits,...). Toutefois, et c'est bien le but du défi, tu ne dois pas les utiliser (ni même caster) !
Pour ce faire tu dois créer un algorithme qui gère le dépassement tout en restant sur 4 bits et c'est là tout le problème du défi
PhilippeBeckx a écrit:
Pour 43 par exemple on aura probablement un nombre tel que 10^45 !?
Sûrement pas, enfin pour le résultat de retour, vu qu'on modulo le nombre. Donc t'auras au plus nombre-1 comme valeur
PS: Les valeurs de retour du produit et de la somme sont des propriétés des mathématiques modulaires, j'vais pas dire combien elles valent, mais il n'y a pas 36000 valeurs possibles
N'abandonne pas, t'as jusqu'au weekend pour le finir, c'est largement suffisant
Indice : Y'a une technique où tu n'es pas obligé de gérer le moment où ça dépasse, renseigne-toi du côté des opérateurs du C mais je te préviens, c'est pas facile
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
« Je n’ai pas besoin de preuve. Les lois de la nature, contrairement aux lois de la grammaire, ne permettent aucune exception. »
D. Mendeleïev
« Je n’ai pas besoin de preuve. Les lois de la nature, contrairement aux lois de la grammaire, ne permettent aucune exception. »
D. Mendeleïev
« Je n’ai pas besoin de preuve. Les lois de la nature, contrairement aux lois de la grammaire, ne permettent aucune exception. »
D. Mendeleïev
« Je n’ai pas besoin de preuve. Les lois de la nature, contrairement aux lois de la grammaire, ne permettent aucune exception. »
D. Mendeleïev
« Je n’ai pas besoin de preuve. Les lois de la nature, contrairement aux lois de la grammaire, ne permettent aucune exception. »
D. Mendeleïev