我有一個問題,需要搜索並保存一些值,以防止它進行無限循環。此問題的每種可能狀態均表示爲基數爲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. 帕斯卡爾錯誤
你可以發佈你的代碼或其中的一部分?這將有所幫助。 –