我正在为Rubik的立方体求解器创建修剪表,这意味着我需要创建一个文件,将任何立方体的唯一标识符映射到0到25范围内的数字,该数字表示立方体与已解决的距离状态(25是我正在使用的最大深度)。但是,标识符可以从0到大约4.7 * 10 ^ 21,或大约2 ^ 72,因此它们不能用作传统数据结构中的索引,因为它们远远超出整数的范围。此外,修剪表需要进行数百万次检查,因此我需要快速查找。
所以,我的想法是创建一个文件,其中多维数据集的id用作行号,深度存储在那里。我将深度转换为基数26,因此文件的每一行将从a到z恰好包含一个字符。但是,我需要将一个字符写入文件的特定行,我不希望在它之前读取数千行。所以,我想知道是否有办法编辑文件的特定行,如果我知道每行只包含一个字符。
例如,已解决的多维数据集的ID为591305913000000,因此591305913000000th行存储为0,因为它是0从已解决的多维数据集移动。在其上执行移动R
的多维数据集的ID具有id 5889210210000498,并且1将存储在5889210210000498行。
我也欢迎提供更好的方法来建议以快速阅读的方式存储所有这些数据。提前感谢您的帮助。