如何用c#计算数束的频率?

如何用c#计算数束的频率?,c#,frequency,C#,Frequency,有人能帮我用c#运行这个程序吗。本程序是计算频率的数字,例如12出现10x。在此之前,我尝试将所有列表编号按水平线排序。然后我比较相同的数字,然后计数++,但直到知道我无法得到输出 谢谢你的帮助 输入 463146925124533 25 12 12 12 28 36 38 28 25 12 12 9 36 38 36 36 12 9 36 12 12 25 28 34 36 36 9 12 16 25 28 44 输出 9-4 12 -10 16 – 1 25 – 5 28 - 4 31 –

有人能帮我用c#运行这个程序吗。本程序是计算频率的数字,例如12出现10x。在此之前,我尝试将所有列表编号按水平线排序。然后我比较相同的数字,然后计数++,但直到知道我无法得到输出

谢谢你的帮助

输入

463146925124533 25 12 12 12 28 36 38 28 25 12 12 9 36 38 36 36 12 9 36 12 12 25 28 34 36 36 9 12 16 25 28 44

输出

9-4 12 -10 16 – 1 25 – 5 28 - 4 31 – 1 33 – 1 34 - 1 36 – 7 38 – 2 44 – 1 45 – 1
46–2

我会使用int和int:dictionary的字典,并在数字中迭代加1。有些解决方案使用数组,但我更喜欢字典,这样就不需要管理数组的大小,而且内存效率更高

int[] someValues = { /* your numbers */ }
Dictionary<int,int> Counts = new Dictionary<int,int>();
foreach(int key in someValues)
{
    if ( !Counts.HasKey(key) ) Counts[ key ] = 0;
    Counts[key] = Counts[key] + 1;
}
int[]someValues={/*您的数字*/}
字典计数=新字典();
foreach(在某些值中输入int键)
{
如果(!Counts.HasKey(key))计数[key]=0;
计数[键]=计数[键]+1;
}
然后,您只需迭代字典以获得输出:

foreach(KeyValuePair<int,int> kvp in Counts)
{
    Console.Write("{0} - {1}",kvp.Key,kvp.Value);
}
foreach(KeyValuePair kvp计数)
{
Write(“{0}-{1}”,kvp.Key,kvp.Value);
}

嗯,您可以使用
字典手动执行此操作:


家庭作业?我们不是来给你做家庭作业的,但我会给你一些建议


首先,我会有一个文本阅读器,这样你的输入可以输入。然后,解析每个条目并将其添加到字典中。然后,遍历字典,查看特定条目出现的次数

我会把它们都放到一个列表中,然后使用GROUPBY子句对它们进行分组

        List<int> numbers = new List<int> { 1, 2, 2, 3, 5, 6, 2, 1, 4, 4 };
        foreach (var group in numbers.GroupBy(n => n))
        {
            Console.WriteLine("{0} was found {1} times", group.Key, group.Count());
        }
List number=新列表{1,2,2,3,5,6,2,1,4};
foreach(数值中的var group.GroupBy(n=>n))
{
WriteLine({0}被找到{1}次),group.Key,group.Count();
}

假设您有一个数字列表:

var numbers = new List<int>{ 1, 2, 3, 4, 1, 2, 2, 3 };

请提供一些代码,至少,可能是当前的输出。闻起来像是家庭作业……如果数字束是2项集的组合呢??如何计算它。例如{1,2} {1,3} {1,4} {2,1} {2,3} {2,4} {3,1} {4,1} ..... 假定项集{1,4}和{4,1}相同。因此,频率为2..因此您将比较更改为检查项目[0]和项目[1]如果数字束是2-itemset的组合呢??如何计算它。例如{1,2} {1,3} {1,4} {2,1} {2,3} {2,4} {3,1} {4,1} ..... 假定项集{1,4}和{4,1}相同。所以,频率是2。。输出如下:{1,2}-2{1,3}-2{1,4}-2{2,3}-1{2,4}-1帮助我…谢谢你的帮助。。
        List<int> numbers = new List<int> { 1, 2, 2, 3, 5, 6, 2, 1, 4, 4 };
        foreach (var group in numbers.GroupBy(n => n))
        {
            Console.WriteLine("{0} was found {1} times", group.Key, group.Count());
        }
var numbers = new List<int>{ 1, 2, 3, 4, 1, 2, 2, 3 };
var frequencies = 
    numbers.GroupBy( n => n ).Select( n => new { Value=n.Key, Count=n.Count() } );

foreach (var f in frequencies)
{
    Debug.WriteLine(string.Format("Value={0}, Frequency={1}", f.Value, f.Count));
}