请问怎么产生随机数
怎么产生一个这样的随机数
要求 1.位数为6位
2.其中字母两位,数字四位
3.字母和数字的排列顺序也是随机
4.字母的大小写也是随机产生
谢谢了
[解决办法]
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
public partial class test1 : System.Web.UI.Page
{
protected System.Web.UI.HtmlControls.HtmlTable Table1;
private void Page_Load(object sender, System.EventArgs e)
{
if (!Page.IsPostBack)
{
codeShow(myCode(4));
Response.Write(myCode(4));
//Label1.Text = myCode(4);
}
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
/// <summary>
/// 产生随机字符
/// </summary>
/// <param name= "num "> 随机字符的位数 </param>
/// <returns> </returns>
private string myCode(int num)
{
string str = " ";
int n = 0;
Random r = new Random();
for (int i = 0; i < num; i++)
{
n = r.Next();
if (n % 2 == 0)
{
n = n % 10;//得到1~9 之间的数
str += n.ToString();
}
else
{
n = n % 26; //得到1~25 之间的数
str += ((char)((int) 'a ' + n)).ToString();
}
}
return str;
}
private void codeShow(string str)
{
//实例化 Bitmap 类 初始化它的宽度和高度
Bitmap image = new Bitmap(str.Length * 12, 22);
//创建 GDI 绘图,并指定待绘制的图片
Graphics g = Graphics.FromImage(image);
//清除图片上的图像并以指定颜色填充
g.Clear(Color.White);
Random r = new Random();
try
{
//*********** 随机绘制干扰线条 ***********
for (int i = 0; i < 10; i++)
{
int x1 = r.Next(image.Width);
int y1 = r.Next(image.Height);
int x2 = r.Next(image.Width);
int y2 = r.Next(image.Height);
g.DrawLine(new Pen(Color.White), x1, y1, x2, y2);
}
//****************************************
//****** 将字符串绘制到图片上 *************
//设置字体
Font font = new Font( "宋体 ", 14, (System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic));
//设置纹理
System.Drawing.Drawing2D.LinearGradientBrush br = new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height), Color.Blue, Color.DarkRed, 1.2f, true);
//在指定 图片 上绘制 指定字符
g.DrawString(str, font, br, 1, 1);
//******************************************
//** 绘制干扰点(即控制 image 图片中指定象素点的的验色) **
for (int j = 0; j < 100; j++)
{
int x = r.Next(image.Width);
int y = r.Next(image.Height);
image.SetPixel(x, y, Color.FromArgb(r.Next()));
}
//*******************************************************
//绘制边框线
g.DrawRectangle(new Pen(Color.BlueViolet), 0, 0, image.Width - 1, image.Height - 1);
//创建存储图片的内存空间
System.IO.MemoryStream ms = new System.IO.MemoryStream();
//将图片指定 格式 存在指定的 内存空间 中
image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
//清空缓冲流中所有内容输出
Response.ClearContent();
//设置流中的输出类型
Response.ContentType = "image/Gif ";
//将一个二进制写入HTTP输出流
Response.BinaryWrite(ms.ToArray());
}
finally
{
//释放占用的所有内存资源
g.Dispose();
image.Dispose();
}
Session[ "code "] = str;
}
}