ASP.NET (Web) + C#算法 | 生成随机数字序列(随机数字+每个数字取随机不重复的位置和颜色)

简介: 关于今天的一个关于ASP的课后作业,是要求在ASP上实现随机生成数字序列: 具体要求: 随机位置:每个数字的位置相对随机; 随机颜色:每个数字的颜色随机且不重复; 随机数字:从0到9随机取出四个数; 正文 首先放上核心算法,这里我觉得在common.
+关注继续查看

关于今天的一个关于ASP的课后作业,是要求在ASP上实现随机生成数字序列:

具体要求:

  1. 随机位置:每个数字的位置相对随机;
  2. 随机颜色:每个数字的颜色随机且不重复;
  3. 随机数字:从0到9随机取出四个数;



正文


首先放上核心算法,这里我觉得在common.cs中编写比较妥当:

img_dcb8a7ef57b337514698ec0a54594060.png

    public static int[] GetRandom(int minValue, int maxValue, int count)
    {
        int[] intList = new int[maxValue];//创建一个以  最大值大小  为长度的数组
        for (int i = 0; i < maxValue; i++)//数组的内容:最小值+(从 0 到 最大值减一 ),及intList为一个特殊规律的不重复的递增数组
        {
            intList[i] = i + minValue;
        }
        int[] intRet = new int[count];//创建以  要取的数的个数  为长度的数组
        int n = maxValue;
        Random rand = new Random();
        for (int i = 0; i < count; i++)
        {
            int index = rand.Next(0, n);//随机取一个0到n之间的数
            intRet[i] = intList[index];
            intList[index] = intList[--n];
        }

        return intRet;
    }

//n是一个递减变化的数
//intList的一个运行模拟序列:
//0 1 2 3 4 n = listlength = 5,取到1
//0 4 2 3 | 4 n = listlength = 4,取到4
//0 3 2 | 3 4 n = listlength = 3
//...
//不断用最后面的值来覆盖选中到的值,再把最后面的值去掉(通过n--实现,抽象意义上“截短”提供数字的intList),由此实现不重复序列

详细解析见以上的代码截图。



接着是.aspx.cs文件(下图为部分剪影,后方附上完整代码):

img_089017ae5481eb521f9947a9df5a3551.png

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Text;
using System.IO;
using System.Drawing;

public partial class Default2 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Random rd = new Random();
        int num = rd.Next(1000,10000);
        string textString = num.ToString();

        int widthx = 800;
        int heightx = 600;
    
        Bitmap btmap = new Bitmap(widthx, heightx);
        Graphics gg = Graphics.FromImage(btmap);
        SolidBrush sb = new SolidBrush(Color.White);
        gg.FillRectangle(sb, new Rectangle(0, 0, widthx, heightx));
        
        Font ft = new Font("楷体",18,FontStyle.Strikeout);
        SolidBrush sbft = new SolidBrush(Color.Black);
        Color[] cr = {Color.Red,Color.Black,Color.Blue,Color.Yellow,Color.Gray,Color.Orange};
        //gg.DrawString(textString.Substring(0,textString.Length/2), ft , sbft, new PointF(0,0));
        //gg.DrawString(textString.Substring(5,5), ft, sbft1, new PointF(0, 300));

        int[] rdlist = common.GetRandom(0,cr.Length,textString.Length);//产生一个随机的不重复的int列表

        int leftmargin = 0;
        for (int i=0; i < textString.Length; i++)
        {
            //使用时,顺序对这个int列表取值即可
            gg.DrawString(textString.Substring(i,1),ft,new SolidBrush(cr[rdlist[i]]),leftmargin,leftmargin+100+rd.Next(-15,15));
            leftmargin = leftmargin + 18;
        }
        MemoryStream ms = new MemoryStream();
        btmap.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
        Response.ClearContent();
        Response.ContentType = "image/gif";
        Response.BinaryWrite(ms.ToArray());
        
    }
}

至此便实现了要求了,下面放上效果图:

img_92e3da1e30e716cfe0562d24e77ccd08.png

img_80cf3189bc1f2c4509f0c489bb576ffe.png

img_d4009cd2d3f9cc3ff952c1af074c4a85.png







算法参考文章

目录
相关文章
|
8月前
|
算法 前端开发 JavaScript
LeetCode搜索插入位置使用JavaScript解题|前端学算法
前几天做LeetCode算法题,我还说要打十个,今天就被LeetCode狠狠打脸了 算了,难度大的做不出来,咱还做不出来简单的嘛,今天咱们就捡软柿子捏,来找找自信
53 0
LeetCode搜索插入位置使用JavaScript解题|前端学算法
|
8月前
|
算法 语音技术 Python
Python算法:Brute-Force算法查找字符串子串位置
Python算法:Brute-Force算法查找字符串子串位置
61 0
Python算法:Brute-Force算法查找字符串子串位置
|
9月前
|
算法 索引
【切图仔的算法修炼之旅】LeetCode1991:找到数组中的中间位置
【切图仔的算法修炼之旅】LeetCode1991:找到数组中的中间位置
42 0
|
10月前
|
机器学习/深度学习 传感器 算法
【PID优化】基于正余弦算法 (SCA)优化PID实现微型机器人系统位置控制附simulink模型和matlab代码
【PID优化】基于正余弦算法 (SCA)优化PID实现微型机器人系统位置控制附simulink模型和matlab代码
|
11月前
|
算法 定位技术
枚举地图位置 啊哈,算法上
枚举地图位置 啊哈,算法上
枚举地图位置 啊哈,算法上
|
算法 索引
leetcode算法35.搜索插入位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
72 0
leetcode算法35.搜索插入位置
|
.NET 开发框架
asp.net 根据值不同,在绑定时显示不同颜色
/// /// 控制颜色显示 /// /// /// public Color getC...
849 0
|
.NET
ASP.NET中数据控件中的LinkButton控件点击时更换颜色
在一些网站上常看见如上图的效果,点击的改变颜色,换一个点击,原先的颜色恢复。 1.
1134 0
|
.NET 开发框架
Asp.Net中GridView加入鼠标滑过的高亮效果和单击行颜色改变
下面是Asp.Net中GridView鼠标滑过的样式改变和单击时候样式改变的代码: //加入鼠标滑过的高亮效果if (e.Row.RowType == DataControlRowType.
813 0
相关产品
云迁移中心
推荐文章
更多