新手菜鸟关于编程珠玑的疑问

问题描述

新手菜鸟关于编程珠玑的疑问
  大神们好,我是新手,在看编程珠玑的时候想到一个问题。问题描述如下:
          给定一个最多包含40亿个随机排列的32位整数的顺序文件,找出一个不在文件中的32位整数
             如果内存不足,仅可以用文件来进行处理,如何处理?
             编程珠玑和网上各种大神的想法都是这样的:
            按最高位分为两段,没有出现的那个数,肯定在比较小的段里面。
            各位是不考虑这种情况,还是不可能出现这种情况?:  按每一位分段,分出来的都是相等数目的数。比如说从42亿个32位数里面取出来2亿个数,全取对称数。比如第一个取1,前31位都是0,第二个就取0,前31位也是0,只是32位和1相反。比如3和4,这个应该不难吧。
            如果这样的话,那40多亿数按位,分出来的所有段都是相等段,不存在较小的段,这样还能用这种方法嘛。。
            新手,没有金币,不过真的很疑惑这个问题,希望大神不吝赐教!
时间: 2024-12-02 12:01:56

新手菜鸟关于编程珠玑的疑问的相关文章

有人说我用orm编程是新手菜鸟

问题描述 我也不知道怎么说他了,好自为之吧.我用什么编程关他屁事,非说我盲目追求新的东西,我觉得只要是好的东西为什么不能学习?难道只有使用Ado.net编程才显得他高大上?我觉得适合当前并且用着顺手就行了,非要分个三六九等?oo和关系数据库本来就是两个世界的东西,非要去纠结性能.我习惯于首先让每个实体根据业务知识来维护自己的状态,把关注点完全放在对业务知识的理解上面,而不是首先去纠结数据库,这个习惯持续了多年,到他眼里我就成了菜鸟了?我想问问各位大师,是不是原本我的方向就错了? 解决方案 解决方

新手菜鸟问一下spinner右侧箭头按钮下拉怎么做?

问题描述 新手菜鸟问一下spinner右侧箭头按钮下拉怎么做? spinner下拉菜单,点击右侧小箭头按钮出现的下拉菜单选项?该怎么做?求大神指点? 解决方案 首先在xml文件的spinner属性中增加android:requiresFadingEdge="none",android:spinnerMode="dropdown"这2个属性,然后给spinner绑定适配器的时候SpinnerAdapter styleAdapter = new SpinnerAdapt

编程珠玑--旋转算法

旋转算法出自<编程珠玑>第二章题目.   <编程珠玑>一书对算法是极度推崇,这点意识在我们看书的时候每每都有被灌输.使用一种好的算法往往能使得程序更加漂亮,也很能带给我们程序员某种满足感.   题目:将一个n元一维数组a[n]左移i个位置.例如,当n=8,i=3时,数组abcdefgh旋转为defghabc.请设计一个算法完成这个任务.   1. 块交换法: 分析:将n元一维数组a[n]分解为两块,将第一块存储在临时数组中,将第二块前移i个单位,再将临时数组加入到第二块后面.  

编程珠玑--粗略估算

粗略估算是<编程珠玑>中第七章提到的内容.   这篇文章将"粗略估算"看做是一项工程技术,是程序员必备的一项技能之一. 本人非常同意这个观点.粗略估算是一种把复杂的事情简单化的能力.我们对某个算法的时间复杂度和空间复杂度的估算就是基于这种估算的能力.如果你能较为准确的估算出一个程序的输出结果,如果你能准确估算出这个程序的运行时间,如果你能准确估算出这个项目的开发时间--如果你能拥有这样的能力,该有多么美好啊.所以难怪乎像微软.Google这样的大公司老喜欢出"请计

编程珠玑--位图法排序

题目:一个最多包含n个正整数的文件,每个数都小于n,其中n=10^7,且所有正整数都不重复.求如何将这n个正整数升序排列. 约束:最多有1MB的内存空间可用,有充足的磁盘存储空间.   分析:这个题目的最大亮点是只有1MB的内存空间,我们可以通过计算得出,内存只有1MB可以储存的int(4byte)有10^3*10^3/4=250 000个号码.而包含正整数的文件约为10^7个int大小.这意味着无法将所有文件中的正整数一次读取进入到内存空间中去进行排序算法.因此衍生出下面两种方法:   方法1

java-Android sqlite更新,本人新手菜鸟

问题描述 Android sqlite更新,本人新手菜鸟 本人看"第一行代码"这本书,看到sqlite升级数据库这个地方,发现比如要新增一张表,可以通过onUpgrade()方法中添加db.execSQL(**)语句完成,那么,为什么onCreate()方法也要添加这条语句? 解决方案 如果在新的手机上安装,第一次安装时,执行的是onCreate中的,安装过后,后面更新才执行onUpgrade 解决方案二: onUpgrade()是升级的时候才调用 解决方案三: 覆盖第一次安装和重复安

安卓应用开发-新手,安卓编程中处理晃动检测不会停止

问题描述 新手,安卓编程中处理晃动检测不会停止 http://pan.baidu.com/s/1skf5zv3 我写的这个apk 实现了类似真心话的功能,处理晃动是,复写了onpause,晃动检测还是没有停止,不杀掉进程,晃动检测一直在监听怎么办 解决方案 做游戏的时候,一般都要使用到多种多样的传感器,以实现比较丰富的UI 互动,比如检测手机的晃动. 如何检测手机的摇晃和摇晃程度呢? 找了些资料,并加以改进,将此功能封装成类(ShakeDetector),方便今后使用. http://blog.

123-求教大神C++问题,新手学C++编程

问题描述 求教大神C++问题,新手学C++编程 源程序如下: #include #include using namespace std; class student { public: student(int n,string nam,char s) { num=n; name=nam; sex=s; cout<<"construct called"<<endl; } ~student() {cout<<"destruct called.

inal moblie find-jfinal 怎么在里查询到数据库的信息,本人是新手菜鸟,求教!

问题描述 jfinal 怎么在里查询到数据库的信息,本人是新手菜鸟,求教! 数据库:mysql 字段:id,username,cus_no,flight_no,from_city,to_city,flight_date,flight_time,cancel_no. ?请问根据cus_no.flight_no.cancel_no字段,怎么查不出来信息? 代码如下 select * from user where cus_no='1' and flight_no='15570983302' and