当前位置: 首页 > news >正文

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();}

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

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

相关文章:

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

1 文本格式 /// <summary> /// 《小白学程序》第十七课&#xff1a;随机数&#xff08;Random&#xff09;第四&#xff0c;移动平均值的计算方法与代码 /// 继续学习数据统计&#xff0c;移动平均值的计算方法 /// 移动平均值就是一定步长内数值的平均值&#xff0c;用…...

行情分析——加密货币市场大盘走势(11.29)

大饼已经形成了底背离&#xff0c;即MACD往下走&#xff0c;而价格还在往上走&#xff0c;这种后续往往会大跌。继续把空单拿好&#xff0c;已经持仓的无需加仓。多次上涨却一直不能突破&#xff0c;说明多空和空军力量都很强&#xff0c;等待后续出方向。在笔者看来&#xff0…...

C++——string的字符串比较,字符存取,插入和删除和子串

一. string字符串比较 功能描述:字符串之间的比较 比较方式:字符串比较是按字符的ASCII码进行对比 返回 0 > 返回 1 < 返回 -1 函数原型: *int compare(const string &s) const; //与字符串s比较 *int compare(const char *s) const; //…...

字节10年经验之谈 —— 从0到1开发自动化测试框架!

一、序言 随着项目版本的快速迭代、APP测试有以下几个特点&#xff1a; 首先&#xff0c;功能点多且细&#xff0c;测试工作量大&#xff0c;容易遗漏&#xff1b;其次&#xff0c;代码模块常改动&#xff0c;回归测试很频繁&#xff0c;测试重复低效&#xff1b;最后&#x…...

Mysql(基本介绍+下载安装+服务器+基本使用+建库建表+navicat/mybitas工具+外键及实例)

一、Mysql基本介绍 当谈论MySQL时&#xff0c;通常指的是一个流行的开源关系型数据库管理系统&#xff08;RDBMS&#xff09;。MySQL是由瑞典的开发者在1995年创建的&#xff0c;后来被Sun Microsystems收购&#xff0c;最终成为Oracle Corporation的一部分。以下是关于MySQL的…...

Python+requests+Jenkins接口自动化测试实例

在做功能测试的基础上&#xff0c;我平时也会用postman测试接口&#xff0c;不过postman只能测试一个一个接口&#xff0c;不能连贯起来&#xff0c;特别是我们公司的接口很多都是要用到token的&#xff0c;导致我每次测个需要登录的接口都要去获取到token&#xff0c;做了很多…...

SpringBoot3核心原理

SpringBoot3核心原理 事件和监听器 生命周期监听 场景&#xff1a;监听应用的生命周期 可以通过下面步骤自定义SpringApplicationRunListener来监听事件。 ①、编写SpringApplicationRunListener实现类 ②、在META-INF/spring.factories中配置org.springframework.boot.Sprin…...

JS常用数据类型转换(数字型和字符串型之间转换)

提供了5中基本数据类型&#xff1a;数字 number 字符串 string 布尔 boolean 空值 null 未定义的 undefined 常用的是数字型和字符串型之间的转换&#xff0c;常用的转换方法如下&#xff1a; 1 数字型转换成字符串型 a) 使用String&#xff08;&#xff09;方法…...

算法通关村第一关—青铜挑战—用Java基本实现各种链表操作

文章目录 第一关—链表【青铜挑战】1.1 单链表的概念1.2 链表的相关概念1.3 创建链表 - Java实现1.4 链表的增删改查1.4.1 遍历单链表 - 求单链表长度1.4.2 链表插入 - 三种位置插入&#xff08;1&#xff09;在链表的表头插入&#xff08;2&#xff09;在链表的中间插入&#…...

SparkRDD及算子-python版

RDD相关知识 RDD介绍 RDD 是Spark的核心抽象&#xff0c;即 弹性分布式数据集&#xff08;residenta distributed dataset&#xff09;。代表一个不可变&#xff0c;可分区&#xff0c;里面元素可并行计算的集合。其具有数据流模型的特点&#xff1a;自动容错&#xff0c;位置…...

嵌入式设备与PC上位机通信协议设计的几点原则

嵌入式设备在运行中需要设置参数&#xff0c;这个工作经常由PC机来实现&#xff0c;需要为双方通信设计协议&#xff0c;有代表性协议是如下三种&#xff1a; 从上表可以看到&#xff0c;一般嵌入式设备内存和运算性能都有限&#xff0c;因此固定二进制是首选通信协议。 一&am…...

Go 内置运算符

一、算数运算符 1、算数运算符使用 package mainimport ("fmt" )func main(){fmt.PrintIn("103",103) //10313fmt.PrintIn("10-3",10-3) //10-37fmt.PrintIn("10*3",10*3) //10*330//除法注意&#xff1a;如果运算的数都是…...

Table和HashBasedTable的使用案例

------------------- 1.普通使用 package org.example.testhashbasedtable;import com.google.common.collect.HashBasedTable; import com.google.common.collect.Table;import java.util.Map;public class TestHashBasedTable {public static void main(String[] args) {Ta…...

【执行批处理后 executeBatch() 没反应,一个参数相信就能搞定】

一、场景是在使用EasyExcel读取全表时&#xff0c;每次手动提交事务6w多条&#xff0c;总计190w数据量的情况下发生的。 博主比较fw&#xff0c;卡住了两天&#x1f636; 此问题还有一个比较bug的地方&#xff0c;就是当你在 executeBatch() 上下打断点时还能够执行出来&…...

【LeetCode】每日一题 2023_11_25 二叉树中的伪回文路径(dfs,数组/位运算)

文章目录 刷题前唠嗑题目&#xff1a;二叉树中的伪回文路径题目描述代码与解题思路偷看大佬题解 结语 刷题前唠嗑 LeetCode&#xff1f;启动&#xff01;&#xff01;&#xff01; 这个月第一次周末早起~ 题目&#xff1a;二叉树中的伪回文路径 题目链接&#xff1a;1457. 二…...

什么是海外私人IP代理?是纯净独享的代理吗?

相信许多互联网工作者都遇到过IP禁令&#xff0c;比如网络抓取项目&#xff0c;使用共享代理服务器向网站发出第一个请求&#xff0c;但却您收到了禁令&#xff0c;这大部分是由于你的共享IP经过多人使用被禁用所致。 那么到底什么是私人代理呢&#xff1f;它们是否适合您的情…...

Vue组件库推荐:Element UI深度解析

在Vue开发中&#xff0c;使用组件库可以极大地提高开发效率&#xff0c;减少重复工作量。Element UI作为一款优秀的Vue组件库&#xff0c;被广泛应用于各类项目中。本文将对Element UI进行深度解析&#xff0c;为开发者提供详细的使用说明和具体的代码示例。 1&#xff0c;Ele…...

Mysql 8.0主从复制模式安装(兼容Mysql 5.7)

Mysql V8.0.35安装 官网地址&#xff1a;MySQL :: Download MySQL Community Server 下载【Mysql 8.0.35】压缩包 解压压缩包&#xff0c;仅保留6个安装文件即可 mysql-community-client-8.0.31-1.el7.x86_64.rpm mysql-community-client-plugins-8.0.31-1.el7.x86_64.rpm my…...

基于Django+Tensorflow卷积神经网络鸟类识别系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介系统概述系统功能核心技术系统架构系统优势 二、功能三、系统四. 总结  总结 一项目简介 介绍一个基于DjangoTensorflow卷积神经网络鸟类识别系统是一个非…...

史上最全前端知识点+高频面试题合集,十二大专题,命中率高达95%

前言&#xff1a; 下面分享一些关于阿里&#xff0c;美团&#xff0c;深信服等公司的面经&#xff0c;供大家参考一下。大家也可以去收集一些其他的面试题&#xff0c;可以通过面试题来看看自己有哪里不足。也可以了解自己想去的公司会问什么问题&#xff0c;进行有针对的复习。…...

微信小程序 - 手机震动

一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注&#xff1a;文档 https://developers.weixin.qq…...

华为OD机试-食堂供餐-二分法

import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...

VTK如何让部分单位不可见

最近遇到一个需求&#xff0c;需要让一个vtkDataSet中的部分单元不可见&#xff0c;查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行&#xff0c;是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示&#xff0c;主要是最后一个参数&#xff0c;透明度…...

今日科技热点速览

&#x1f525; 今日科技热点速览 &#x1f3ae; 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售&#xff0c;主打更强图形性能与沉浸式体验&#xff0c;支持多模态交互&#xff0c;受到全球玩家热捧 。 &#x1f916; 人工智能持续突破 DeepSeek-R1&…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)

漏洞概览 漏洞名称&#xff1a;Apache Flink REST API 任意文件读取漏洞CVE编号&#xff1a;CVE-2020-17519CVSS评分&#xff1a;7.5影响版本&#xff1a;Apache Flink 1.11.0、1.11.1、1.11.2修复版本&#xff1a;≥ 1.11.3 或 ≥ 1.12.0漏洞类型&#xff1a;路径遍历&#x…...

GO协程(Goroutine)问题总结

在使用Go语言来编写代码时&#xff0c;遇到的一些问题总结一下 [参考文档]&#xff1a;https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现&#xff1a; 今天在看到这个教程的时候&#xff0c;在自己的电…...

深度剖析 DeepSeek 开源模型部署与应用:策略、权衡与未来走向

在人工智能技术呈指数级发展的当下&#xff0c;大模型已然成为推动各行业变革的核心驱动力。DeepSeek 开源模型以其卓越的性能和灵活的开源特性&#xff0c;吸引了众多企业与开发者的目光。如何高效且合理地部署与运用 DeepSeek 模型&#xff0c;成为释放其巨大潜力的关键所在&…...

Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析

Java求职者面试指南&#xff1a;Spring、Spring Boot、Spring MVC与MyBatis技术解析 一、第一轮基础概念问题 1. Spring框架的核心容器是什么&#xff1f;它的作用是什么&#xff1f; Spring框架的核心容器是IoC&#xff08;控制反转&#xff09;容器。它的主要作用是管理对…...

MySQL的pymysql操作

本章是MySQL的最后一章&#xff0c;MySQL到此完结&#xff0c;下一站Hadoop&#xff01;&#xff01;&#xff01; 这章很简单&#xff0c;完整代码在最后&#xff0c;详细讲解之前python课程里面也有&#xff0c;感兴趣的可以往前找一下 一、查询操作 我们需要打开pycharm …...

Qt的学习(二)

1. 创建Hello Word 两种方式&#xff0c;实现helloworld&#xff1a; 1.通过图形化的方式&#xff0c;在界面上创建出一个控件&#xff0c;显示helloworld 2.通过纯代码的方式&#xff0c;通过编写代码&#xff0c;在界面上创建控件&#xff0c; 显示hello world&#xff1b; …...