random - 程序生成和排列问题
问题描述
我可能不会追求这个,但我有这样一个想法,即以尽可能最有效的内存方式生成一个程序宇宙。
就像在精英游戏中一样,您可以使用基于种子的随机数生成器,因此每个恒星系统都可以由单个种子数表示,而不是统计数据和其他信息的列表。但是如果每个恒星系统是一个64位的数字,那么银河系就有1000亿颗恒星,也就是6.4TB的内存。但是,如果每个星系统仅使用 8 位,那么您的游戏中将只有 256 个独特的星系统。所以我的另一个想法是让每个恒星系统由 8 位表示,但只需在内存中获取下一个 7 恒星系统的字节,并使用该组合形成行星种子的 64 位数字。显然,最后会有 7 个额外的字节来说明内存中的最后一个星系统。
那么有没有办法组织这些字节中的值,使得整个文件中的每组 8 个字节都覆盖所有 64 位值(假设)而没有重复?还是不可能,我应该接受重复?或者我可以使用字节本身的地址作为种子的一部分吗?那么这将如何在 C 中工作?就像我有一个 1000 亿字节的文件,它实际上占用了 1000 亿字节的内存还是更多,这些字节的地址是如何存储的?在服务器客户端关系中访问这样的大文件(如 100gb+)是否实用?谢谢你。
解决方案
推荐阅读
- r - 二维类环面空间中的迁移矩阵:在 R 中创建迁移矩阵
- angular - PrimeNG 表无法很好地排序数据
- php - 将 Api/Json 复杂化到 PHP mysql
- r - 创建一个以采用不同行的值为条件的变量
- .net - 从 windowsazure.mediaservices 迁移到 Microsoft.Azure.Management.Media
- r - 用 R 中的 data.table 计算字数
- php - 为什么我不能将数据/图像添加到我的数据库但它说成功
- javascript - Nuxt - 服务器中间件无法用于生产
- reactjs - 使用 react-admin ImageInput 组件时如何存储文件名
- node.js - 数据库关闭可能导致内存泄漏