gpt4 book ai didi

c - 用C读取txt文件中的特定行

转载 作者:行者123 更新时间:2023-11-30 18:58:23 25 4
gpt4 key购买 nike

我正在使用 Mac OSX,用 C 进行编程并在终端中使用 bash。

我目前正在尝试为 Gamma 函数制作一个查找表。有人告诉我,调用 gsl_sf_gamma 非常昂贵,并且查找表会快得多。我不想失去太多的准确性,所以我想要一个相当大的查找表。初始化一个巨大的数组并不理想,因为这样就达不到目的。

我的想法是在哪里制作一个大型文本文件,其中包含在感兴趣的范围内预先评估 Gamma 函数的值。一个主要问题是我不知道如何使用 C 调用文本文件中的特定行。

感谢你们提供的任何见解和帮助。

警告:我对字符串和 txt 文件知之甚少,所以我可能不知道有一个简单的函数可以做到这一点。

最佳答案

除了连续形式之外,Gamma 基本上是阶乘。您想要对 gamma 函数执行查找而不是计算。您想要使用文本文件来表示这些结果。文件的每一行代表输入值乘以 1000。我猜想,对于足够高的输入值,文件扫描的性能可能会优于计算。

但是,我认为您至少需要计算文件的索引。该文件仍然可以排列为文本文件,但您还有另一个步骤来扫描文件,并记录每个结果行的字节偏移量。这些偏移量被记录到一个二进制文件中,该文件将用作您的索引。

当您运行程序时,首先将索引文件加载到一个数组中,该数组的索引是 gamma 输入的下限乘以 1000,该索引处的数组值是该索引处的偏移量记录在索引文件中。当您想要计算特定数字的 gamma 时,请将输入乘以 1000,然后截断结果以获得数组索引。您可以查阅该数组来获取偏移量,并查阅下一个数组值来计算输入的长度。然后,您的 Gamma 文本文件将作为二进制文件打开。您寻找偏移量,并读取字节长度来获取数字。您还需要阅读下一个条目才能执行插值。

关于c - 用C读取txt文件中的特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16865569/

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