如何在C语言中实现基于百分比的误码?

如何在C语言中实现基于百分比的误码?,c,C,我一直在尝试用C语言模拟二进制对称通道 它应该是这样工作的:用户输入一个表示错误率的数字(例如0.01=1%)。例如,如果我从文件中读取1001,根据输入的百分比,每一位都有机会将其值分别更改为0/1 从文件中读取并写入另一个文件已经开始工作,但我不知道如何使这些基于百分比的错误发生 非常感谢您的帮助,提前感谢。对于生成基于百分比的错误,您可以执行以下操作: double rate = get_rate(); // userinput between 0.0 and 1.0 for 0% - 1

我一直在尝试用C语言模拟二进制对称通道

它应该是这样工作的:用户输入一个表示错误率的数字(例如0.01=1%)。例如,如果我从文件中读取1001,根据输入的百分比,每一位都有机会将其值分别更改为0/1

从文件中读取并写入另一个文件已经开始工作,但我不知道如何使这些基于百分比的错误发生


非常感谢您的帮助,提前感谢。

对于生成基于百分比的错误,您可以执行以下操作:

double rate = get_rate(); // userinput between 0.0 and 1.0 for 0% - 100%

do {
   double nr = drand48(); // Generates a number between 0.0 and 1.0
   if (nr < rate) {
       // Generate biterror here
   }
} while (some_more_bits_to_check);
double rate=get_rate();//0%-100%的用户输入介于0.0和1.0之间
做{
double nr=drand48();//生成一个介于0.0和1.0之间的数字
如果(nr<费率){
//在此处生成位错误
}
}而(一些位到位的检查);

太宽了。光是误码率是毫无意义的。您还需要其他参数。尽管如此,这个问题听起来像是对代码的请求。好吧,因为这是课堂上的作业,我们得到了BSC表格,我解释了它以及用户使用命令提示符“program.exe source percentage destination”使其工作的方式。这就是为什么我要问这个,我被卡住了。不要求完成功能,只要求提示使其工作。
drand48
是非标准的。这并没有解决位错误的其他相关参数。这有帮助,只需要您在这里提供的逻辑,将传递的值与生成的值进行比较。谢谢