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;
    }
AI 代码解读

//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());
        
    }
}
AI 代码解读

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

img_92e3da1e30e716cfe0562d24e77ccd08.png

img_80cf3189bc1f2c4509f0c489bb576ffe.png

img_d4009cd2d3f9cc3ff952c1af074c4a85.png







算法参考文章

目录
打赏
0
0
0
0
6
分享
相关文章
ASP.NET Web Pages - 教程
ASP.NET Web Pages 是一种用于创建动态网页的开发模式,采用HTML、CSS、JavaScript 和服务器脚本。本教程聚焦于Web Pages,介绍如何使用Razor语法结合服务器端代码与前端技术,以及利用WebMatrix工具进行开发。适合初学者入门ASP.NET。
|
3月前
|
ServiceStack:不仅仅是一个高性能Web API和微服务框架,更是一站式解决方案——深入解析其多协议支持及简便开发流程,带您体验前所未有的.NET开发效率革命
【10月更文挑战第9天】ServiceStack 是一个高性能的 Web API 和微服务框架,支持 JSON、XML、CSV 等多种数据格式。它简化了 .NET 应用的开发流程,提供了直观的 RESTful 服务构建方式。ServiceStack 支持高并发请求和复杂业务逻辑,安装简单,通过 NuGet 包管理器即可快速集成。示例代码展示了如何创建一个返回当前日期的简单服务,包括定义请求和响应 DTO、实现服务逻辑、配置路由和宿主。ServiceStack 还支持 WebSocket、SignalR 等实时通信协议,具备自动验证、自动过滤器等丰富功能,适合快速搭建高性能、可扩展的服务端应用。
183 3
一套以用户体验出发的.NET8 Web开源框架
一套以用户体验出发的.NET8 Web开源框架
一套以用户体验出发的.NET8 Web开源框架
C#进阶-ASP.NET WebForms调用ASMX的WebService接口
通过本文的介绍,希望您能深入理解并掌握ASP.NET WebForms中调用ASMX WebService接口的方法和技巧,并在实际项目中灵活运用这些技术,提高开发效率和应用性能。
39 5
ASP.NET Web Pages - 添加 Razor 代码
ASP.NET Web Pages 使用 Razor 标记添加服务器端代码,支持 C# 和 Visual Basic。Razor 语法简洁易学,类似于 ASP 和 PHP。例如,在网页中加入 `@DateTime.Now` 可以实时显示当前时间。
在 ASP.NET Core Web API 中使用操作筛选器统一处理通用操作
【9月更文挑战第27天】操作筛选器是ASP.NET Core MVC和Web API中的一种过滤器,可在操作方法执行前后运行代码,适用于日志记录、性能监控和验证等场景。通过实现`IActionFilter`接口的`OnActionExecuting`和`OnActionExecuted`方法,可以统一处理日志、验证及异常。创建并注册自定义筛选器类,能提升代码的可维护性和复用性。
ASP.NET Core Web 开发浅谈
本文介绍ASP.NET Core,一个轻量级、开源的跨平台框架,专为构建高性能Web应用设计。通过简单步骤,你将学会创建首个Web应用。文章还深入探讨了路由配置、依赖注入及安全性配置等常见问题,并提供了实用示例代码以助于理解与避免错误,帮助开发者更好地掌握ASP.NET Core的核心概念。
118 3
VB.NET中如何利用ASP.NET进行Web开发
在VB.NET中利用ASP.NET进行Web开发是一个常见的做法,特别是在需要构建动态、交互式Web应用程序时。ASP.NET是一个由微软开发的开源Web应用程序框架,它允许开发者使用多种编程语言(包括VB.NET)来创建Web应用程序。
75 5
NET在企业级应用、Web开发、移动应用、云服务及游戏领域的创新实践
.NET技术自2000年推出以来,在软件开发领域扮演着关键角色。本文从核心优势出发,探讨其统一多语言平台、强大工具集、跨平台能力及丰富生态系统的价值;随后介绍.NET在企业级应用、Web开发、移动应用、云服务及游戏领域的创新实践;最后分析性能优化、容器化、AI集成等方面的挑战与机遇,展望.NET技术的未来发展与潜力。
85 2
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等