CSHARP_1001_NOTES Telegram 683
🧠 Π—Π°Π΄Π°Ρ‡Π° Π½Π° 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



tgoop.com/csharp_1001_notes/683
Create:
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

View MORE
Open in Telegram


Telegram News

Date: |

"Doxxing content is forbidden on Telegram and our moderators routinely remove such content from around the world," said a spokesman for the messaging app, Remi Vaughn. Users are more open to new information on workdays rather than weekends. The administrator of a telegram group, "Suck Channel," was sentenced to six years and six months in prison for seven counts of incitement yesterday. How to create a business channel on Telegram? (Tutorial) How to build a private or public channel on Telegram?
from us


Telegram C# 1001 notes
FROM American