读书人

生趣小算法彩票生成。高分相送。

发布时间: 2013-06-26 14:29:32 作者: rapoo

趣味小算法,彩票生成。高分相送。。。
双色球大家都知道吧???从1-33红球区域有6个号,求算法生成红球的所有组合。哪位高手来过招???代码越简单,效率越高越好!!!
请使用C#。。。 彩票 红球 C#
[解决办法]
这个应该很简单的吧,而且必然要穷举的。
int i1,i2,i3,i4,i5,i6;
for(a=1,a<34-5;a++)
{
i1=a;
for(int b=a+1;b<34-4;b++)
{
i2=b;
for(int c=b+1;c<34-3;c++)
{
i3=c;
for(...)
{
......
//最后一个(第六个)for循环中输出i1-i6的值并换行即可。
}
}
}
}
[解决办法]
static void Main(string[] args)
{
int i1,i2,i3,i4,i5,i6;
int i = 0;
for (int a = 1; a < 34 - 5; a++)
{
i1 = a;
for (int b = a + 1; b < 34 - 4; b++)
{
i2 = b;
for (int c = b + 1; c < 34 - 3; c++)
{
i3 = c;
for (int d = c + 1; d < 34 - 2;d++ )
{
i4 = d;
for (int e = d + 1; e < 34 - 1; e++)
{


i5 = e;
for (int f = e + 1; f < 34; f++)
{
i6 = f;
//Console.WriteLine(......);
i++;
}
}
}
}
}
}
Console.WriteLine(i.ToString());
}
最后结果是 1107568
我的机器运算用了不到半秒。
[解决办法]

引用:
static void Main(string[] args)
{
int i1,i2,i3,i4,i5,i6;
int i = 0;
for (int a = 1; a < 34 - 5; a++)
{
i1 = a;
for (int b = a + 1; b < 34 - 4; b++)
{
i2 = b;
for (int c = b + 1; c < 34 - 3; c++)
{


i3 = c;
for (int d = c + 1; d < 34 - 2;d++ )
{
i4 = d;
for (int e = d + 1; e < 34 - 1; e++)
{
i5 = e;
for (int f = e + 1; f < 34; f++)
{
i6 = f;
//Console.WriteLine(......);
i++;
}
}
}
}
}
}
Console.WriteLine(i.ToString());
}
最后结果是 1107568
我的机器运算用了不到半秒。



你都嵌套了6个循环
生趣小算法,彩票生成。高分相送。
一般建议超过不3个的
生趣小算法,彩票生成。高分相送。
[解决办法]

using System;
using System.Collections.Generic;

namespace ConsoleApplication2


{
class Program
{
static void Main(string[] args)
{
int i, j, k, l, m, n;
List<int> list = new List<int>();
for (i = 1; i < 34; i++)
{
for (j = 1; j < 34; j++)
{
for (k = 1; k < 34; k++)
{
for (l = 1; l < 34; l++)
{
for (m = 1; m < 34; m++)
{
for (n = 1; n < 34; n++)
{
if (i != j && i != k && i != l && i != m && i != n && j != k && j != l && j != m && j != n && l != m && l != n && m != n)
{
Console.WriteLine(i.ToString() + j.ToString() + k.ToString() + l.ToString() + m.ToString() + n.ToString());
}
}


}
}
}
}
}
Console.ReadLine();
}
}
}


[解决办法]

using System;
using System.Collections.Generic;

namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
int i, j, k, l, m, n;
int s = 0;
DateTime dt1 = DateTime.Now;
List<int> list = new List<int>();
for (i = 1; i < 34; i++)
{
for (j = 1; j < 34; j++)
{
for (k = 1; k < 34; k++)
{
for (l = 1; l < 34; l++)
{
for (m = 1; m < 34; m++)
{
for (n = 1; n < 34; n++)
{
if (i != j && i != k && i != l && i != m && i != n && j != k && j != l && j != m && j != n && l != m && l != n && m != n)


{
//Console.WriteLine(i.ToString() + j.ToString() + k.ToString() + l.ToString() + m.ToString() + n.ToString());
s++;

}
}
}
}
}
}
}
Console.WriteLine("共有:"+s.ToString()+"组数;");
DateTime dt2 = DateTime.Now;
int dt = (dt2 - dt1).Seconds;
Console.WriteLine("用时:"+dt.ToString()+"秒;");
Console.ReadLine();
}
}
}


共有:882889920组数;
用时16秒;

读书人网 >C#

热点推荐