该如何随机产生10组含有10位数字的数值

aoyee 2003-08-23 06:12:38
请问我有一只程序其功能如下
要能随机产生10组含有10位数字的数值
每个位数的规则如下且此10组数值不能重复
此程序如何写较适当
谢谢
ex: 数值含有10数字 : A0A1A2A3A4A5A6A7A8A9

其中 A0+A1=16 –Rule1
A2+A3=8 ----Rule2
A4+A5=10—Rule3
A6+A7=15---Rule4
A8+A9=14----Rule5

该如何随机产生不重复且符合上述5个规则的10组数值呢 ????
谢谢
...全文
40 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
New_bug 2003-08-24
  • 打赏
  • 举报
回复
public static long[] CreateNumbers()
{
bool bSame;
long lNo = 0;
int bit = 0;
int iCount;
Random rnd = new Random();
long[] lRet = new long[10];
char[] sNo = new char[11];

iCount = 0;
sNo[10] = '\0';
while(iCount<10)
{
try
{
//A0A1A2A3A4A5A6A7A8A9
//每个数值只能从0到9且必须符合5个规则

//Rule1: A0 + A1 = 16
bit = rnd.Next( 7,9);
sNo[0] = char.Parse(bit.ToString());
bit = 16 - bit;
sNo[1] = char.Parse(bit.ToString());

//Rule2: A2 + A3 = 8
bit = rnd.Next(0,8);
sNo[2] = char.Parse(bit.ToString());
bit = 8 - bit;
sNo[3] = char.Parse(bit.ToString());

//Rule3: A4 + A5 = 10
bit = rnd.Next(1,9);
sNo[4] = char.Parse(bit.ToString());
bit = 10 - bit;
sNo[5] = char.Parse(bit.ToString());

//Rule4: A6 + A7 = 15
bit = rnd.Next(6,9);
sNo[6] = char.Parse(bit.ToString());
bit = 15 - bit;
sNo[7] = char.Parse(bit.ToString());

//Rule5: A8 + A9 = 14
bit = rnd.Next(5,9);
sNo[8] = char.Parse(bit.ToString());
bit = 14 - bit;
sNo[9] = char.Parse(bit.ToString());
}
catch
{
for(int i=0; i<10; i++)
sNo[i] = '\0';
}

try
{
System.Text.StringBuilder sRet = new System.Text.StringBuilder(0);
sRet.Insert(0,sNo);
lNo = long.Parse(sRet.ToString());
}
catch
{
lNo = 0;
}

bSame = false;
if (0 != lNo)
{
for(int j=0; j<iCount; j++)
if (lNo == lRet[j])
{
bSame = true;
break;
}
}

if (!bSame)
{
lRet[iCount] = lNo;
iCount++;
}
}

return lRet;
}

//**********************************************
//调用
Console.WriteLine("\n\n10Numer=\n");
long [] lRet;
lRet = CreateNumbers();
for(int i=0;i<lRet.Length; i++)
Console.WriteLine(lRet[i].ToString());
cbenny 2003-08-23
  • 打赏
  • 举报
回复
上面哪里有算法的书

~_~
littlechang 2003-08-23
  • 打赏
  • 举报
回复
这是一个算法问题,找我关于算法的书,上面有。
aoyee 2003-08-23
  • 打赏
  • 举报
回复
补充
每个数值只能从0到9且必须5个规则都符合的10组数值
谢谢

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧