CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[PYTHON] Décoder une informations sous forme de liste

LSD-swag
LSD-swag
Niveau 1
17 mai 2015 à 12:57:19

Bonjour, je me demandais si l'un d'entre vous aurait l'amabilité de m'aider à écrire un programme permettant de décoder des infos. Les données initiales me parviennent sous forme d'une liste comme ceci,

[2, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0]

voici le codage de la trame http://www.aurel32.net/elec/dcf77_codage.png

J'aimerais seulement décoder les minutes sur python, je me débrouillerais pour la suite

code des minutes : {1, 1, 1, 0, 0, 0, 1} Du bit 21 à 27

Merci de votre aide, je suis assez déseperer

fluxies
fluxies
Niveau 17
17 mai 2015 à 13:58:13

Je vois '1 2 4 8 10 20 40'
D'après moi tu devrais juste multiplier la valeur binaire de chaque bit des minutes par sa valeur traduite.
Pour {1, 1, 1, 0, 0, 0, 1}, en partant de gauche à droite, ca nous ferait : (1*1) + (2*1) + 4 + (8*0) + 0 + 0 + 40 = 47min.
Personne je l'implémenterais de cette façon, un tableau contenant les multiplicateurs ( 1 2 4 8 .. ) serait utilisé dans une boucle avec un autre buffer / tableau représentant tes bits, a chaque itération tu multiplie le bit (1/0) de ton buffer/tab par le tableau predef des valeurs, ou alors tu zap si y'a un 0, y'a beaucoup de moyens.

LSD-swag
LSD-swag
Niveau 1
17 mai 2015 à 14:38:09

Merci
je vois, mais avec mes compétences en python, un résultat claire semble très lointain

Bunyan
Bunyan
Niveau 17
17 mai 2015 à 14:45:12

Choppes les chiffres que tu veux (1, 0, 1, 0, 1, 1, 1) , transforme le tout en string (1010111) et utilise int(maVar, 2).
Tu peux spécifier la base à la méthode int, qui est la base 10 par défaut.

Documentation : https://docs.python.org/2g/2/library/functions.html#int

@Fluxies : ta méthode implique d'avoir un tableau de correspondance qui n'est pas utile, puisque la multiplication est (en partant d'un index de 1) : (place - 1) ² :)
Donc -> (place - 1) * (place - 1) * valeur

Nota : je ne connais strictement rien en Python.

LSD-swag
LSD-swag
Niveau 1
17 mai 2015 à 16:10:23

Ok je vois à peu près ce que j'avais en tête étais beaucoup plus simple, enfin plutôt le faire en mode bourrin, genre multiplier directement chaque bit par son coeff, mais je ne sais pas comment traiter les termes de la liste séparément et surtout leur faire prendre d'autres valeurs.

En tout cas merci bcp, vous êtes bcp plus efficace que sur open classrooms haha

fluxies
fluxies
Niveau 17
17 mai 2015 à 18:16:54

Désolé je ne comprends pas ta logique Bunyan, implique tu une suite logique des données ? Moi je la vois pas avec la formule que tu as donnée; peux tu préciser stp

Bunyan
Bunyan
Niveau 17
17 mai 2015 à 20:54:16

Il faut lire :
"Donc -> puissance(2, place - 1) * valeur"
au lieu de
"Donc -> (place - 1) * (place - 1) * valeur"

Toutes mes excuses. Ca devrait être plus clair comme ça.

Puisque ce ne sont que des puissances de 2, le principe est d'utiliser l'indice pour calculer la puissance, puis multiplier ou non :)

Sous forums
  • Aide à l'achat Mac
  • Internet
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment