gpt4 book ai didi

c# - 获取大文件的熵

转载 作者:行者123 更新时间:2023-12-02 15:22:01 26 4
gpt4 key购买 nike

在浏览了所有与文件熵相关的帖子后,出现了获取大文件熵的问题。我的意思是它可以多快完成以及解决这个问题的算法。是否有可能以某种方式使用 LINQ,如果可以,解决方案的速度有多快?感谢大家的进步。

最佳答案

它看起来像这样。

static double CalculateEntropy(FileInfo file)
{
int range = byte.MaxValue + 1; // 0 -> 256
byte[] values = File.ReadAllBytes(file.FullName);

long[] counts = new long[range];
foreach (byte value in values)
{
counts[value]++;
}

double entropy = 0;
foreach (long count in counts)
{
if (count != 0)
{
double probability = (double)count / values.LongLength;
entropy -= probability * Math.Log(probability, range);
}
}
return entropy;
}

您可以通过交换 File.ReadAllText() 并将 byte 替换为 char 来计算字符熵而不是字节熵。我怀疑您会使用 Linq 找到更快的解决方案,但尝试一下会成为一个很好的谜题。

关于c# - 获取大文件的熵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35077478/

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