Как использовать значение из словаря символов? - C#
Формулировка задачи:
Надо, чтоб метод посчитал вероятность для каждой буквы, но выводит одно значение, не пойму что не так
public double[] ver(char[] mass)
{
A ob = new A();
char[] Alpha = mass;
int l = 0;
double[] kol = new double[Alpha.Length];
double[] ver = new double[Alpha.Length];//вероятность
Dictionary<char, int> map = Alpha.GroupBy(x => x)
.ToDictionary(x => x.Key, x => x.Count());
foreach (KeyValuePair<char, int> pair in map)
{
Console.WriteLine(pair.Value);
}
for (int s = 0; s < Alpha.Length; s++)
{
foreach (KeyValuePair<char, int> pair in map)
{
kol[s] = pair.Value;
break;
}
ver[s] = kol[s] / Alpha.Length;
Console.WriteLine(ver[s]);
}
return ver;
}Решение задачи: «Как использовать значение из словаря символов?»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string text = "молоко";
Console.WriteLine("Длина массива {0} {1}\n", text, text.Length);
double[] v = ver(text.ToCharArray());
Console.WriteLine("Массив вероятностей:");
foreach (double d in v)
{
Console.WriteLine("{0,-6:f3}", d);
}
Console.ReadKey();
}
public static double[] ver(char[] mass)
{
double[] ver = new double[mass.Length];
Dictionary<char, int> map = mass.GroupBy(x => x)
.ToDictionary(x => x.Key, x => x.Count());
for (int s = 0; s < mass.Length; s++)
{
ver[s] = (double)map[mass[s]] / mass.Length;;
}
return ver;
}
}
}