[PYTHON] Code de bourdonnement avec numpy

En regardant la référence numpy, j'ai trouvé une fonction utile pour le traitement des bits, donc J'ai également implémenté un code bourdonnant pour les tests. Pour le moment, seul le code de bourdonnement (4,3) est pris en charge. Je souhaite que je puisse soutenir autre que uint8.

hamming.py


#!/usr/bin/env python
# -*- coding: utf-8 -*-

import numpy as np
import random

if __name__ == '__main__':
    k = 4
    m = 3

    #Créer une liste de non-pouvoir 2
    column_values = np.array([ [x] for x in range( 2 ** m ) if ( x & ( x - 1 ) ) != 0 ], dtype=np.uint8 )
    A = np.reshape( np.unpackbits( column_values ), ( k, 8) )[:, -3:].T

    #Créer une matrice de génération et une matrice de contrôle
    H = np.concatenate( ( A, np.eye( m, dtype=np.uint8 ) ), axis=1 )
    G = np.concatenate( ( np.eye( k, dtype = np.uint8 ), A.T ), axis = 1 )

    #Définissez correctement la valeur à encoder
    random.seed()
    code = random.randint( 0, 2 ** k - 1 )
    bit_code = np.unpackbits( np.array( code, dtype = np.uint8 ) )[-k:]

    #Générer un code bourdonnant pour inverser un peu
    error_bit_offset = random.randint( 0, ( k + m ) - 1 )
    hamming_code = np.dot( bit_code, G ) % 2
    hamming_code[ error_bit_offset ] = ( hamming_code[ error_bit_offset ] + 1 ) % 2

    #Vérification

    check_result = np.dot( H, hamming_code ) % 2

    print code
    print hamming_code
    print H
    print error_bit_offset
    print check_result

Résultat d'exécution

% ./hamming.py 
12
[1 0 0 0 1 1 0]
[[0 1 1 1 1 0 0]
 [1 0 1 1 0 1 0]
 [1 1 0 1 0 0 1]]
1
[1 0 1]

Recommended Posts

Code de bourdonnement avec numpy
Renforcez avec le test de code ⑨
Renforcez avec le test de code ③
Moyenne mobile avec numpy
Renforcez avec le test de code ⑤
Renforcez avec le test de code ④
Déboguer avec VS Code en utilisant Boost Python Numpy
Renforcez avec le test de code ②
Premiers pas avec Numpy
Apprenez avec Chemo Informatics NumPy
Concaténation de matrices avec Numpy
Renforcez avec le test de code ①
Effectuer une analyse de régression avec NumPy
Étendre NumPy avec Rust
Renforcez avec le test de code ⑧
Renforcez avec le test de code ⑨
Régression du noyau avec Numpy uniquement
Obtenez le code du pays avec python
Python avec VSCode (Windows 10)
J'ai écrit GP avec numpy
Implémentation CNN avec juste numpy
Génération artificielle de données avec numpy
[Python] Méthode de calcul avec numpy
Simulation de remboursement de dette avec numpy
Implémentation de SMO avec Python + NumPy
Coller les chaînes avec Numpy
Déboguer Python avec VS Code
Gérez les tableaux numpy avec f2py
Vérifiez le code avec flake8
Utilisez OpenBLAS avec numpy, scipy
Documenter le code Python avec Doxygen
Implémentation de la régression logistique avec NumPy
Décrypter le code QR avec CNN
Effectuez un ajustement carré minimum avec numpy.
Java avec Visual Studio Code (partie 2)
Classifier "Wine" avec le code MLP TensorFlow
Dessinez un beau cercle avec numpy
Implémenter Keras LSTM feed forward avec numpy
Essayez d'exécuter Jupyter avec VS Code
Extraire plusieurs éléments avec le tableau Numpy
C'était avec le code Puzzle de Nintendo
Installez python avec mac vs code
Lire et écrire des fichiers csv avec numpy
Afficher le graphique japonais avec VS Code + matplotlib
Graphiques de fonctions triangulaires avec numpy et matplotlib
J'ai fait un jeu de vie avec Numpy
Accélérer les calculs numériques avec NumPy: principes de base
Gérer numpy avec Cython (méthode par memoryview)
Utilisez BLAS / LAPACK multi-thread avec numpy / scipy