gpt4 book ai didi

c# - 最小化一组数字的内存占用的有效方法

转载 作者:行者123 更新时间:2023-11-30 20:48:24 24 4
gpt4 key购买 nike

我正在使用 .Net Micro Framework 为嵌入式设备编写代码,我有一组计算整数,如下面的链接所示,我需要访问这些整数,但如果可以某种方式最小化此信息,我会很高兴,基本上我有一个数字列表,范围从 150 - 4,每个数字都有一个可以链接到的相邻数字列表,例如 150 可以链接到 149、148、146、144、142 等,一些数字(150 到4) 共享链接号码 150 和 149 以共享 91 和其他许多链接为例,所以我认为必须有某种方式来表示所有这些数字,因为内存占用减少了,因为有很多共享链接号码,任何建议会很好。

https://www.dropbox.com/s/qqn8097571r9s27/LinkedNumbers.txt

示例数据

150 = 149、148、146、144、142、140、138、136、134、99、93、92、91、87

149 = 148、147、145、143、141、139、137、135、133、131、129、103、102、97、96、93、92、91

148 = 147、146、145、144、142、140、138、136、134、132、99、97、94、92、91、88、87、86

147 = 146、145、144、143、141、139、137、135、133、131、95、91、90、89、88

最佳答案

将每一行存储为 19 字节的位序列,其中 1 代表列表中的条目,0 代表不在列表中的值。

例如,您的第一个条目是:-

150 = 149, 148, 146, 144, 142, 140, 138, 136, 134, 99, 93, 92, 91, 87,
83, 79, 77, 65, 63, 59, 55, 54, 53, 51, 49, 48, 47, 46, 45, 44,
43, 42, 41, 40, 39, 38, 37, 35, 34, 33, 31, 29, 27, 25, 23, 22,
21, 19, 18, 17, 14, 13, 12, 11, 9, 8, 7, 6, 5, 4, 3, 2

可以存储为:-

150 = 0,0,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,0.....

其中第一位代表0,第二位代表1,依此类推

您可以通过减少每行使用的位数来提高存储效率,但是要检查的位的计算变得有点复杂。使用这个,整个批处理可以存储在 1416 字节中。

关于c# - 最小化一组数字的内存占用的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24673910/

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