解説
通信では、ノイズなどで0が1に(または1が0に)化けてしまうことがあります。これを見つける最も簡単な方法がパリティビットです。
偶数パリティでは「データ全体の1の個数が偶数になるように」もう1ビット付け足します。受信側が1の個数を数えて、奇数だったら「どこかで誤りが起きた」と分かります。ここでは送信後にわざと1ビット反転させ、検出できることを確認します。
書き方
・sum(data): リスト内の数値の合計(=1の個数)を求める。 ・ones % 2: 2で割った余りで偶数パリティビットを計算。 ・data + [parity]: リストの連結でパリティビットを末尾に付け足す。 ・sent[:]: リストの浅いコピー。 ・1 - received[2]: 0と1を反転させて誤りを再現。 ・sum(received) % 2: 受信側で1の個数の偶奇を判定。
書いて動かす
この回の課題
データの1の個数が偶数になるようパリティビットを付け、1ビット反転させて誤りを検出してみよう。
コードはあなたの端末の中だけで動きます(サーバーには送られません)。進み具合もこのブラウザに保存されます。
もっと本格的に使うなら
Windows版 InsightPy なら、書いたコードを保存して業務の自動化まで進められます。学習センターはずっと無料です。