亚洲乱色熟女一区二区三区丝袜,天堂√中文最新版在线,亚洲精品乱码久久久久久蜜桃图片,香蕉久久久久久av成人,欧美丰满熟妇bbb久久久

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

使用 C# 實(shí)現(xiàn)加權(quán)平均算法(含完整代碼與實(shí)現(xiàn)解析)

admin
2025年7月17日 22:4 本文熱度 487

今天我們討論一個(gè)數(shù)學(xué)問(wèn)題“加權(quán)平均法”。

在數(shù)據(jù)分析、考試成績(jī)計(jì)算、統(tǒng)計(jì)學(xué)和金融等場(chǎng)景中,經(jīng)常會(huì)用到 加權(quán)平均(Weighted Average) 算法。相比簡(jiǎn)單平均數(shù),加權(quán)平均數(shù)能根據(jù)不同數(shù)據(jù)的重要程度(權(quán)重)計(jì)算更準(zhǔn)確的結(jié)果。

本文將一步步實(shí)現(xiàn)一個(gè)通用的 C# 加權(quán)平均數(shù)計(jì)算方法,附帶完整示例代碼,并解析每一處實(shí)現(xiàn)細(xì)節(jié),幫助我們舉一反三,靈活運(yùn)用在實(shí)際項(xiàng)目中。

什么是加權(quán)平均?



簡(jiǎn)單平均數(shù)公式是:

加權(quán)平均數(shù)公式是:

其中:

  •  是第 i 個(gè)數(shù)據(jù)值
  •  是對(duì)應(yīng)的權(quán)重
  •  是權(quán)重之和

C# 實(shí)現(xiàn)思路

核心思路:

  1. 1. 輸入兩組數(shù)據(jù):
    • ? 一組是待計(jì)算的值(如成績(jī))
    • ? 一組是對(duì)應(yīng)的權(quán)重(如每門課占總成績(jī)的比例)
  2. 2. 驗(yàn)證兩組數(shù)據(jù)長(zhǎng)度一致。
  3. 3. 計(jì)算「值 * 權(quán)重」的加總。
  4. 4. 計(jì)算權(quán)重的總和。
  5. 5. 用加總除以權(quán)重總和,得到加權(quán)平均數(shù)。

完整示例代碼

下面是使用 C# 10 編寫的示例,兼容 .NET 6 及以上:

using System;
using System.Collections.Generic;
using System.Linq;

namespaceWeightedAverageDemo
{
    classProgram
    {
        static void Main(string[] args)
        {
            // 示例:3 門課程成績(jī)及其權(quán)重
            List<double> scores = new List<double> { 859278 };
            List<double> weights = new List<double> { 0.30.50.2 };

            double weightedAverage = CalculateWeightedAverage(scores, weights);

            Console.WriteLine($"加權(quán)平均成績(jī):{weightedAverage:F2}");
        }

        /// <summary>
        /// 計(jì)算加權(quán)平均數(shù)
        /// </summary>
        /// <param name="values">值集合</param>
        /// <param name="weights">權(quán)重集合</param>
        /// <returns>加權(quán)平均數(shù)</returns>
        static double CalculateWeightedAverage(List<double> values, List<double> weights)
        {
            if (values == null || weights == null)
                thrownew ArgumentNullException("values 和 weights 不能為空。");

            if (values.Count != weights.Count)
                thrownew ArgumentException("值集合和權(quán)重集合的長(zhǎng)度必須一致。");

            double weightedSum = 0;
            double weightSum = 0;

            for (int i = 0; i < values.Count; i++)
            {
                weightedSum += values[i] * weights[i];
                weightSum += weights[i];
            }

            if (weightSum == 0)
                thrownew DivideByZeroException("權(quán)重之和不能為零。");

            return weightedSum / weightSum;
        }
    }
}

代碼解析

  • List<double> scores 和 List<double> weights:用于存放數(shù)據(jù)值和對(duì)應(yīng)權(quán)重。
  • CalculateWeightedAverage 方法:
    • ? 驗(yàn)證輸入:保證兩個(gè)列表長(zhǎng)度一致,且不為空。
    • ? 用循環(huán)累加 值 * 權(quán)重,同時(shí)累加權(quán)重之和。
    • ? 除以權(quán)重之和得到結(jié)果。
  • Console.WriteLine 用 :F2 保留兩位小數(shù)輸出。

---

擴(kuò)展:使用 LINQ 重寫

如果你想用更函數(shù)式的寫法,也可以用 LINQ:

static double CalculateWeightedAverageLinq(List<double> values, List<double> weights)
{
    if (values == null || weights == null)
        thrownew ArgumentNullException();

    if (values.Count != weights.Count)
        thrownew ArgumentException("值和權(quán)重長(zhǎng)度必須一致。");

    double weightedSum = values.Zip(weights, (v, w) => v * w).Sum();
    double weightSum = weights.Sum();

    if (weightSum == 0)
        thrownew DivideByZeroException();

    return weightedSum / weightSum;
}

這里用到了:

  • Zip:把兩個(gè)列表一一配對(duì)。
  • Sum:求和。

適用場(chǎng)景舉例

  • ? 計(jì)算期末總成績(jī)(不同科目占比不同)
  • ? 統(tǒng)計(jì)某產(chǎn)品線不同產(chǎn)品對(duì)總銷售額的貢獻(xiàn)
  • ? 計(jì)算金融投資組合收益率

總結(jié)

本次內(nèi)容涵蓋以下關(guān)鍵點(diǎn):

  • ? 加權(quán)平均數(shù)的概念解析與計(jì)算公式
  • ? C# 語(yǔ)言的具體實(shí)現(xiàn)方案
  • ? 采用 LINQ 的簡(jiǎn)化編碼方式
  • ? 實(shí)際應(yīng)用場(chǎng)景分析

歡迎關(guān)注,我們后面繼續(xù)研究【移動(dòng)加權(quán)平均算法】

參考內(nèi)容

百科-加權(quán)平均值

閱讀原文:原文鏈接


該文章在 2025/7/18 10:45:53 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved