tgoop.com/csharp_1001_notes/683
Create:
Last Update:
Last Update:
π§ ΠΠ°Π΄Π°ΡΠ° Π½Π° C#: "Π‘Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ΅ ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅"
Π£ΡΠ»ΠΎΠ²ΠΈΠ΅
ΠΠ°Π½ ΡΠΏΠΈΡΠΎΠΊ ΡΠΈΡΠ΅Π» List<double>
β ΡΡΠΎ ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΠΎΠ΅ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ.
ΠΡΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ: ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π»ΠΈ ΡΠ°ΠΊΠΎΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΠ°ΡΡΠΈΠ² ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ Π½Π° Π΄Π²Π΅ ΡΠ°ΡΡΠΈ, ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΡ ΡΡΠΈΡ
ΡΠ°ΡΡΠ΅ΠΉ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ Π½Π° `epsilon` (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, 0.1).
ΠΡΠΈΠΌΠ΅Ρ:
var data = new List<double> { 1.0, 2.0, 3.0, 6.0, 9.0 };
// Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅ 2 β [1.0, 2.0], [3.0, 6.0, 9.0]
// std_left β 0.707, std_right β 3.0 β β ΡΠ»ΠΈΡΠΊΠΎΠΌ Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠ°Π·Π½ΠΈΡΠ°
Π€ΠΎΡΠΌΠ°Ρ ΡΡΠ½ΠΊΡΠΈΠΈ:
public static bool HasBalancedStdSplit(List<double> data, double epsilon = 0.1)
Π Π΅ΡΠ΅Π½ΠΈΠ΅:
using System;
using System.Collections.Generic;
using System.Linq;
public class StatUtils
{
public static bool HasBalancedStdSplit(List<double> data, double epsilon = 0.1)
{
int n = data.Count;
if (n < 4) return false;
for (int i = 2; i <= n - 2; i++)
{
var left = data.Take(i).ToList();
var right = data.Skip(i).ToList();
double stdLeft = StandardDeviation(left);
double stdRight = StandardDeviation(right);
if (Math.Abs(stdLeft - stdRight) <= epsilon)
return true;
}
return false;
}
private static double StandardDeviation(List<double> values)
{
double mean = values.Average();
double sumSquares = values.Sum(v => Math.Pow(v - mean, 2));
return Math.Sqrt(sumSquares / (values.Count - 1));
}
}
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ:
class Program
{
static void Main()
{
var data = new List<double> { 2, 4, 4, 4, 5, 5, 7, 9 };
bool result = StatUtils.HasBalancedStdSplit(data, 0.5);
Console.WriteLine($"ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠ±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ: {result}");
}
}
Π§ΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ Π·Π°Π΄Π°ΡΠ°:
β’ Π·Π½Π°Π½ΠΈΠ΅ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ ΠΈ ΡΠ°Π±ΠΎΡΡ ΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌ ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ΠΌ
β’ Π½Π°Π²ΡΠΊΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡΠΌΠΈ
β’ Π°ΠΊΠΊΡΡΠ°ΡΠ½ΠΎΡΡΡ ΠΏΡΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡΡ Ρ
double
β’ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ Π΄Π»ΠΈΠ½Π΅ Π²ΡΠ±ΠΎΡΠΊΠΈ Π΄Π»Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ
@csharp_1001_notes
BY C# 1001 notes
Share with your friend now:
tgoop.com/csharp_1001_notes/683