python两个list相减 挑战程序员同学,如何只用2GB内存从20/40/80亿个整数中找到出现次数最多的数?
挑战程序员同学,如何只用2GB内存从20/40/80亿个整数中找到出现次数最多的数?
1、4字节表示的整数数为2^32≈40亿,2字节表示的无符号整数数为2^16≈60000。
2、2G=2^31b≈20亿字节。
3、为了找出出现次数最多的数字,应记录每个数字的出现次数。最快的方法是记录每个数字在内存中出现的次数。记录方法是记录相应的存储器地址数和相应地址的存储器单元数。但是,2G内存只能记录20亿字节的数字,如果每个数字的出现次数大于255则会发生溢出,没有风险。因此,这种方案是不可取的。
4、这样,磁盘上只能记录每次出现的次数。这样,就在磁盘上创建了一个16g文件。每4个字节对应一个整数,可以对应40亿个整数。用于记录相应整数的个数。
1. 初始化文件。
2. 依次读取数据并用无符号整数记录在磁盘文件中。如果发生溢出,则该数字是次数最多的数字。
3. 从文件中读取每个数字的次数,用变量a记录最高次数,用变量B记录最高次数的数据,用文件依次记录最高次数的数据。当最大次数增加时,a1和B被设置为1,并且该数字被写入文件中。当出现相同次数的数字b1时,该数字被写入文件的相应位置,直到全部被读取为止。
所以您根本不需要2G内存。
该如何用python进行办公,自学过一点点的vba,两者哪个办公更有优势呢?
我两个都用过。让我们分享我的经验和观点。
Python:
目前最流行的语言之一,有很多数据。它对于数据处理、财务数据分析、批量处理、对接办公组件等都非常高效。但它有一定的水平,需要先学习Python的基本语法,然后再学习相应的模块。可能有更多的技术比VBA学习,但从长远来看,它是好的。
VBA:
这是一种过时的技术。如果微软office不给它一些应用空间,恐怕公众不会记得它是谁。然而,VBA在office等微软应用程序的开发中起着重要的作用。它与office开发无缝结合。使用它来开发办公应用程序很容易。公文也很详细,学习门槛低。
结论:
短期办公室使用哪种技术无关紧要,如果长期使用,建议学习python。
python两个list相减 python数据平滑处理 python插值函数
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。