

C言語を用いて、
x→ 0 or 1
y→ 0 or 1
P(y=0|x=1) = P(y=1|x=0) = p
P(y=0|x=0) = P(y=1|x=1) = 1-p
を各ビット独立に達成する、プログラムを組みたいと思っています。
具体的にはNビットの 0 or 1 の系列を発生させて、
上記の確率で各ビットを独立に反転させたNビットの 0 or 1 の系列を得たいと思っています。
ですが、どう組めばよいか分かりません・・・
どなたかアドバイス、参考となるサイトを教えていただけないでしょうか・・・
No.2ベストアンサー
- 回答日時:
懐かしい響き
const double p = 0.01; // 誤り率
const int N = 10000; // ビット列の長さ
int x[N]; // 送信ビット列
int y[N]; // 受信ビット列
int rand_bin(); // 1 ビットの乱数を返す関数
double rand_real(); // [0,1] の一様乱数を返す関数
int main()
{
int i;
// 送信ビット列の生成
for (i=0 ; i<N ; i++) {
x[i] = rand_bin();
}
// 受信ビット列の計算
for (i=0 ; i<N ; i++) {
if (rand_real() < p) {// 一定の確率で
y[i] = !x[i];// 誤り発生!
} else {
y[i] = x[i];
}
}
// 後は、お好みで。
return 0;
}
*注意*
インデントのために、全角スペースを使っています。
rand_bin と rand_real は別途定義してください。
ご回答ありがとうございます!
ソースものせていただき、たすかりました!
「 if (rand_real() < p) { 」
この発想を思いつかなかったなかったです;;
ありがとうございます!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CSSが全く分かりません、お助け...
-
Windows Formアプリからコンソ...
-
DLLファイルの逆コンパイラにつ...
-
プログラマー達は何故、プログ...
-
バッチファイルで以下のような...
-
どちのほうがすきですか?
-
c言語
-
MACで動く実行ファイルをWindow...
-
どなたかこのプログラミングを...
-
終端記号、非終端記号とは
-
【C言語】全角文字の配列を、全...
-
C言語の関数のextern宣言
-
C言語について(初心者)
-
プログラミングc++を全く分か...
-
あってる
-
プログラミング言語でアプリや...
-
次の記述について
-
C#でTreeViewのCheckBoxのサイ...
-
次の日本語の意味を教えて下さい
-
右ビットシフト
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
0xffffとは?
-
8ビットのデータの、先頭ビット...
-
一般のソフトで画像を扱う場合...
-
エクセルVBAのIf,Then 構...
-
ビットシフトってどんな時使うの?
-
シーケンス制御についての質問...
-
C言語で128bitの2進数のビット...
-
03分22秒36のような時間の単位...
-
文字参照は10進数と16進数では...
-
16ビットCPUで32ビットの計算方法
-
C言語やC++言語でビット毎に値...
-
C言語「K&R」の演習2-9について
-
2の補数
-
verilog 符号付加減算(最上位...
-
ULONGLONGよりも大きい整数を扱う
-
二元対称無記憶通信路を実現す...
-
情報科学の飽和演算、ラップア...
-
命令について
-
オーバーフローについて教えて...
-
マイクロコンピューター制御の...
おすすめ情報