c#编程,产生随机数,让随机数所代表的二进制数中只有2位为1.比如0000100100,011000,10001,应该如何实现?

就是模拟信道发生随机的两位错误。

/// <summary>
/// 返回二进制字符串
/// </summary>
/// <param name="numsOf1">结果中【1】的个数</param>
/// <param name="length">结果的长度,若为-1则随机产生一个20位以下的长度</param>
/// <returns></returns>
private string random10(int numsOf1,int length)
{
int Nownumsof1 = 0;
string result = "";
Random r = new Random();
if (length == -1) { length = r.Next(20); }
for (int i = 0; i < length; i++) {
int x = r.Next(2);
if (Nownumsof1 < 2)
{
result += x.ToString();
if (x == 1) { Nownumsof1++; }
}
else { i--; }
}
return result;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-03-14
位数范围是多少追问

位数根据输入的字符串的长度改变而改变,即字符串与随机数进行异或,字符串多长,随机数就多长

相似回答
大家正在搜