黑马程序员技术交流社区
标题:
给大家看一个特有意思的例子:洗牌程序
[打印本页]
作者:
王德钊
时间:
2013-1-28 23:55
标题:
给大家看一个特有意思的例子:洗牌程序
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 洗牌程序
{
/// <summary>
/// 洗牌程序,这个主要使用随机数,我们让一个数组a的每一项等于1~52的数字
/// 然后产生一个随机数(使用52*random.NextDouble),然第一张牌插到这个障碍的
/// 位置,然后让这个位置的牌插到第一张牌位置,其他牌也依次,分别和随机拍互换,这样
/// 牌就由原来位置变换到现在位置。洗牌成功
/// </summary>
class Program
{
static void Main(string[] args)
{
while (true)
{
int[] a = new int[52];
for (int i = 1; i <= 52; i++)
{
a[i - 1] = i;
}
Random random = new Random();
for (int i = 0; i < 52; i++)
{
int x = (int)(52 * random.NextDouble());
int temp;
temp = a[i];
a[i] = a[x];
a[x] = temp;
}
for (int i = 0; i < 52; i++)
{
Console.Write(a[i] + " ");
}
Console.WriteLine("\n");
Console.ReadKey();
}
}
}
}
复制代码
作者:
jonn
时间:
2013-1-29 00:54
LZ若将牌同时分配给3个人,用线程又如何实现?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2