gpt4 book ai didi

c# - 确定累积点的起点

转载 作者:太空宇宙 更新时间:2023-11-03 13:41:48 25 4
gpt4 key购买 nike

我有

var mostFrequentlyUsedEntriesOfList = inputList.GroupBy(word => word)
.Select(wordGroup => new { Word = wordGroup.Key, Frequency = wordGroup.Count() })
.OrderByDescending(word => word.Frequency);

创建具有键和频率的对象。

我必须添加什么到 mostFrequentlyUsedEntriesOfList,才能也有累积点的起点?我的意思是:

示例输入列表:

a
a
b
b
a
a
b
b
a
b
b
b
b
b
a

会导致

b 9
a 6

积分起点为(第一项算1)

b 10 

所以b出现的起点是位置10。

总计:

Word frequency position
b 9 10
a 6 1

注意:a从1和5开始,频率相同,所以选择相同频率的第一个。

如果某件事只出现一次,那么这就是积累点,比如开头有一个c:

c 1 1

我必须在mostFrequentlyUsedEntriesOfList中添加什么,才能也有积累点的起点?

最佳答案

var mostFrequentlyUsedEntriesOfList = inputList
.GroupBy(word => word)
.Select(wordGroup => new
{
Word = wordGroup.Key,
Frequency = wordGroup.Count(),
Position = Enumerable.Range(0, inputList.Count())
.OrderByDescending(index => inputList.Skip(index).TakeWhile(current => current == wordGroup.Key).Count())
.First() + 1
})
.OrderByDescending(word => word.Frequency);

这通过遍历所有索引找到最长的运行,查看序列从那里运行了多长时间,并选择它最大的索引。

关于c# - 确定累积点的起点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16763936/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com