5. 交易價格預測的程式設計

# 數學不好

Console.WriteLine("日期系列:");
for (int i = 0; i < 15; i++)
{
    Console.Write($"\t{i + 1}");
}
Console.WriteLine("\n價格系列::");
var data = Console.ReadLine().Split(' ').Select(double.Parse).ToList();

Console.WriteLine("直線斜率b:");
Console.Write(" ");
List<double> prices = new List<double>();
for (int i = 0; i < data.Count; i++)
{
    if (i < 9)
    {
        prices.Add(0.0);
        Console.Write("0.0 ");
        continue;
    }

    double xBar = 0;
    for (int j = i - 9 + 1; j <= i + 1; j++)
    {
        xBar += j;
    }
    xBar /= 10;

    double yBar = 0;
    for (int j = i - 9; j <= i; j++)
        yBar += data[j];
    yBar /= 10;

    double child = 0, mother = 0;
    for (int j = i - 9; j <= i; j++)
    {
        child += (j + 1 - xBar) * (data[j] - yBar);
        mother += Math.Pow((j + 1 - xBar), 2);
    }

    double b = child / mother;
    Console.Write($"{b:0.0} ");

    double a = yBar - b * xBar;

    prices.Add(b * (i + 2) + a);
}
Console.WriteLine("\n價格預測:");
Console.Write(" ");
foreach (var item in prices)
{
    Console.Write($"{item:0.0} ");
}

Last updated