C#,《小白学程序》第十七课:随机数(Random)第四,移动平均值(Moving Average)的计算方法与代码

1 文本格式

/// <summary>
/// 《小白学程序》第十七课:随机数(Random)第四,移动平均值的计算方法与代码
/// 继续学习数据统计,移动平均值的计算方法
/// 移动平均值就是一定步长内数值的平均值,用于反映阶段性的数值变化。
/// 股票软件,金融软件及一些忽悠人的预测都是这个技术。
/// 当然移动平均值也可以用于机器人、AI等等很多正能量的事情。
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button17_Click(object sender, EventArgs e)
{
    // 生成一些随机数
    int n = 60;
    double[] temp = new double[n];
    double asum = 0.0;
    for (int i = 0; i < n; i++)
    {
        temp[i] = global_rnd.NextDouble() * 10.0 + 25.0;
        asum += temp[i];
    }
    // 计算平均值(总体平均值)
    double aavg = asum / n;

    // 保存移动平均值的数组
    double[] ma = new double[n];
    // 步长
    int step = 5;
    for (int i = 0; i < (n - step); i++)
    {
        double sum = 0.0;
        for (int j = 0; j < step; j++)
        {
            sum += temp[i + j];
        }
        double avg = sum / step;
        ma[i] = avg;
    }

    StringBuilder sb = new StringBuilder();
    sb.AppendLine("<style>td { padding:0px;text-align:center;text-size:0px; } </style>");

    // 显示随机数
    sb.AppendLine("<table width=420 border=0 style='border-collapse:collapse;'>");
    sb.AppendLine("<tr>");
    for (int i = 0; i < n - step; i++)
    {
        sb.AppendLine("<td style='vertical-align:bottom;'><div style='width:7px;height:" + (temp[i] * 3) + "px;border:solid 1px #FF0000;background-color:rgb(255,255,0);'></div></td>");
    }
    sb.AppendLine("</tr>");
    sb.AppendLine("</table>");
    sb.AppendLine("<br>");
    sb.AppendLine("<br>");

    // 显示移动平均值
    sb.AppendLine("<table width=420 border=0 style='border-collapse:collapse;'>");
    sb.AppendLine("<tr>");
    // 左端第一个为平均值(总体平均值)
    sb.AppendLine("<td style='vertical-align:bottom;'><div style='width:7px;height:" + (aavg * 3) + "px;border:solid 2px #0000FF;background-color:rgb(255,0,255);'></div></td>");
    for (int i = 0; i < n - step; i++)
    {
        sb.AppendLine("<td style='vertical-align:bottom;'><div style='width:7px;height:" + (ma[i] * 3) + "px;border:solid 1px #FF0000;background-color:rgb(255,255,0);'></div></td>");
    }
    // 右端第一个也是平均值(总体平均值)
    sb.AppendLine("<td style='vertical-align:bottom;'><div style='width:7px;height:" + (aavg * 3) + "px;border:solid 2px #0000FF;background-color:rgb(255,0,255);'></div></td>");
    sb.AppendLine("</tr>");
    sb.AppendLine("</table>");

    webBrowser1.DocumentText = sb.ToString();

}
 

2 代码格式

/// <summary>
/// 《小白学程序》第十七课:随机数(Random)第四,移动平均值的计算方法与代码
/// 继续学习数据统计,移动平均值的计算方法
/// 移动平均值就是一定步长内数值的平均值,用于反映阶段性的数值变化。
/// 股票软件,金融软件及一些忽悠人的预测都是这个技术。
/// 当然移动平均值也可以用于机器人、AI等等很多正能量的事情。
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button17_Click(object sender, EventArgs e)
{// 生成一些随机数int n = 60;double[] temp = new double[n];double asum = 0.0;for (int i = 0; i < n; i++){temp[i] = global_rnd.NextDouble() * 10.0 + 25.0;asum += temp[i];}// 计算平均值(总体平均值)double aavg = asum / n;// 保存移动平均值的数组double[] ma = new double[n];// 步长int step = 5;for (int i = 0; i < (n - step); i++){double sum = 0.0;for (int j = 0; j < step; j++){sum += temp[i + j];}double avg = sum / step;ma[i] = avg;}StringBuilder sb = new StringBuilder();sb.AppendLine("<style>td { padding:0px;text-align:center;text-size:0px; } </style>");// 显示随机数sb.AppendLine("<table width=420 border=0 style='border-collapse:collapse;'>");sb.AppendLine("<tr>");for (int i = 0; i < n - step; i++){sb.AppendLine("<td style='vertical-align:bottom;'><div style='width:7px;height:" + (temp[i] * 3) + "px;border:solid 1px #FF0000;background-color:rgb(255,255,0);'></div></td>");}sb.AppendLine("</tr>");sb.AppendLine("</table>");sb.AppendLine("<br>");sb.AppendLine("<br>");// 显示移动平均值sb.AppendLine("<table width=420 border=0 style='border-collapse:collapse;'>");sb.AppendLine("<tr>");// 左端第一个为平均值(总体平均值)sb.AppendLine("<td style='vertical-align:bottom;'><div style='width:7px;height:" + (aavg * 3) + "px;border:solid 2px #0000FF;background-color:rgb(255,0,255);'></div></td>");for (int i = 0; i < n - step; i++){sb.AppendLine("<td style='vertical-align:bottom;'><div style='width:7px;height:" + (ma[i] * 3) + "px;border:solid 1px #FF0000;background-color:rgb(255,255,0);'></div></td>");}// 右端第一个也是平均值(总体平均值)sb.AppendLine("<td style='vertical-align:bottom;'><div style='width:7px;height:" + (aavg * 3) + "px;border:solid 2px #0000FF;background-color:rgb(255,0,255);'></div></td>");sb.AppendLine("</tr>");sb.AppendLine("</table>");webBrowser1.DocumentText = sb.ToString();}

下面图片第一行是 若干随机数;

第二个是随机数的 移动平均值;蓝色条 为 总体平均值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/216378.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

单片机、ARM、嵌入式开发、Android 底层开发有什么关系?

单片机、ARM、嵌入式开发、Android 底层开发有什么关系&#xff1f; 从我目前的见识来看&#xff1a; 单片机是个系统&#xff08;比如&#xff1a;51、AVR、PLC...&#xff09;&#xff0c;其中包含了去除了输入输出之外的运算器、控制器、存储器&#xff0c;我们用程序可以非…

Day31| Leetcode 455. 分发饼干 Leetcode 376. 摆动序列 Leetcode 53. 最大子数组和

进入贪心了&#xff0c;我觉得本专题是最烧脑的专题 Leetcode 455. 分发饼干 题目链接 455 分发饼干 让大的饼干去满足需求量大的孩子即是本题的思路&#xff1a; class Solution { public:int findContentChildren(vector<int>& g, vector<int>& s) {…

小程序中的大道理之三--对称性和耦合问题

再继续扒 继续 前一篇 的话题, 在那里, 提到了抽象, 耦合及 MVC, 现在继续探讨这些, 不过在此之前先说下第一篇里提到的对称性. 注: 以下讨论建立在前面的基础之上, 为控制篇幅起见, 这里将不再重复前面说到的部分, 如果您还没看过前两篇章, 阅读起来可能会有些困难. 这是第一…

基于SpringBoot+Redis的前后端分离外卖项目-苍穹外卖(八)

套餐模块功能开发 1. 新增套餐1.1 需求分析和设计1.1.1产品原型&#xff1a;1.1.2接口设计&#xff1a;1.1.3数据库设计&#xff1a; 1.2 代码开发1.2.1 DishController层1.2.2 DishService接口类1.2.3 DishServiceImpl接口实现类1.2.4 DishMapper层1.2.5 DishMapper.xml1.2.6 …

Vue项目实战之一----实现分类弹框效果

效果图 实现 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><script src"js/vue.js"></script><!-- 引入样式 --><link rel"stylesheet&qu…

大数据基础设施搭建 - Hive

文章目录 一、上传压缩包二、解压压缩包三、配置环境变量四、初始化元数据库4.1 配置MySQL地址4.2 拷贝MySQL驱动4.3 初始化元数据库4.3.1 创建数据库4.3.2 初始化元数据库 五、启动元数据服务metastore5.1 修改配置文件5.2 启动/关闭metastore服务 六、启动hiveserver2服务6.1…

android实战项目之二十二---如何快速APP中集成支付宝和微信支付功能

效果图 实现方案 jcenter 集成方式 implementation com.xgr.easypay:EasyPay:2.0.5 // 基类库&#xff0c;必选 implementation com.xgr.easypay:wechatpay:2.0.5 // 微信支付&#xff0c;可选 implementation com.xgr.easypay:alipay:2.0.5 // 支付宝支付&#xff0c;可…

eclipse项目移到idea上部署运行

1.配置web模块 另外&#xff0c;模块这里&#xff0c;也要加上Spring 2.配置Artifact &#xff08;用于tomcat&#xff09; 就是从上面配置的web模块&#xff0c;产生的工件 3.添加lib 一般是在web-inf/lib &#xff0c; 遇到的坑&#xff1a; jdk版本问题&#xff0c;这里…

micro_ros需要用到的hardware

我没有那么长的线啊&#xff0c;所以就用一个4块5的usb转串口看看 没有那么高档的开发板&#xff0c;就用主流的STM32F103C8T6试试看 这应该就是个仿真器了&#xff0c;一个字不认得都能够看的出来吧

php的字符转义函数有那些,是干什么的

在 PHP 中&#xff0c;字符转义函数是用于处理字符串中的特殊字符&#xff0c;以防止这些字符被误解、滥用或引起安全问题的一组函数。这些函数的主要作用是确保在将用户提供的数据插入到数据库、构建 HTML 输出或进行其他与安全相关的操作时&#xff0c;不会导致潜在的安全漏洞…

常见树种(贵州省):018栎灌、油茶、火棘、铁仔、小檗、勾儿茶、马桑、车桑子、山苍子、楮

摘要&#xff1a;本专栏树种介绍图片来源于PPBC中国植物图像库&#xff08;下附网址&#xff09;&#xff0c;本文整理仅做交流学习使用&#xff0c;同时便于查找&#xff0c;如有侵权请联系删除。 图片网址&#xff1a;PPBC中国植物图像库——最大的植物分类图片库 一、茅栗 …

一个正整数转为2进制和8进制,1的个数相同的第23个数是什么?

package cn.com;import java.lang.*;//默认加载public class C2 {//10进制转8进制static int HtoO(int n){int cnt 0;while(n!0){cntn%8;n/8;}return cnt;}//10进制转2进制static int HtoB(int n){int cnt 0;while(n!0){cntn%2;n/2;}return cnt;}public static void main(Str…