我有一个问题,需要搜索并保存一些值,以防止它进行无限循环。此问题的每种可能状态均表示为基数为6的唯一8位数字代码(所有数字均为0-5)。当程序评估这个位置时,我想要一个布尔值被设置为true,以免再次评估这个位置。然而,数组1..55555555在内存中太大,如果我将8位数的代码转换为十进制数,则需要太多时间。在问题中也不是所有的组合都是可能的; 11 11 11 11,11 11 55 12和其他无效,我不需要使用额外的内存。那么,有没有一种方法可以将值为“真”的一块内存与地址一起存储,例如23451211,当我调用评估过程时,检查23451211是否为真或未分配;帕斯卡内存问题
Q
帕斯卡内存问题
-2
A
回答
1
6到电源8 = 1679616.
要标记使用或不使用需要一个比特,从而可以用约209952个字节做。
在最近的Free Pascal的,bitpacked结构做如下
var
arr : bitpacked array [0..6*6*6*6*6*6*6*6-1] of boolean;
和ARR [X]会给真或假。
从基准6到二进制(不是十进制!)的转换时间可能会短于尝试使用大量内存。 (((digit8)* 6 + digit7)* 6 + digit6)* 6等
p.s. FPC确实有一个指数运算符,但不是用于常量,所以这就是为什么6^8是这样写的。
相关问题
- 1. 帕斯卡 - 动态内存分配
- 2. 从帕斯卡
- 3. 在卡斯帕
- 4. 斯卡拉存在问题
- 5. 帕斯卡到C:TRUNC
- 6. 帕斯卡三角
- 7. 帕斯卡汉译
- 8. 由帕斯卡尔
- 9. 帕斯卡尔给孩子教的简单问题
- 10. 小问题在帕斯卡尔,你能帮忙吗?
- 11. Exercice与帕斯卡尔
- 12. 帕斯卡重复标识
- 13. 使用在帕斯卡
- 14. 帕斯卡进展状态
- 15. 帕斯卡**定义(指数)
- 16. 帕斯卡小数点
- 17. 帕斯卡长度+圆?
- 18. 帕斯卡三角SML
- 19. 约帕斯卡输出
- 20. 帕斯卡的理解
- 21. 零指针帕斯卡尔
- 22. 帕斯卡到C#转换
- 23. Python - 帕斯卡三角形
- 24. 帕斯卡计划练习
- 25. 图像处理帕斯卡
- 26. 帕斯卡范围溢出
- 27. 帕斯卡,生成数字
- 28. 算法smbPitchShift(帕斯卡尔)
- 29. 计算以帕斯卡
- 30. 帕斯卡尔错误
你可以发布你的代码或其中的一部分?这将有所帮助。 –