BBS.ChinaUnix.net
首页 | 新闻 | Linux | FreeBSD | AIX | Windows | 博客 | 论坛 | 存储 | 网络 | 人才 | Wiki | 资料 | 读书 | 手册 | 下载 | 空间 | 搜索
  会员: 密码: 免费注册 | 忘记密码 | 会员登录 | 搜索 | 帮助 


今天是参加最后一场面试了. 题目很搞啊. 看看
首页 » 论坛 » C/C++ »  
[打印] [订阅] [收藏] [本帖文本页] [推荐此主题给朋友,立即获积分]
linuxcici   帅哥
大天使



UID:310629
注册:2005-9-6
最后登录: 2008-10-05
帖子:2125
精华:0

可用积分:1602 (家境小康)
信誉积分:100
专家积分:0 (本版:0)
空间积分:0
推广积分:0

来自:113°17'E 23°8'W (GZ)
状态:...离线...

[个人空间] [短信] [博客]


1楼 发表于 2008-3-25 23:10 
面试主要看看题目而已.

从1----1百万个数字里面随机抽取五十万个不同的数字.



记住喔. 是高效的方法. 今天的笔试题目. 大约要用10分钟完成. 游戏python职位. 我做偏了今天. 因为没听清楚是五十万个不同的.
不过最后考官告诉我怎么做. 但他自己又说是个低效率的方法. 哎...我真是汗....还说这是个必做题目. 而且他的做法是错误的. 我都不说了.

他说,如:

例如简单点说5个数吧

创建一个A链表.有1,2,3,4,5
一个数组B.

int number=random(A表的长度)
把number放到B里保存.
A的表长度减少1.
A表对应的数据删除.

考官说这样可以避免随机到重复的数. 我心想. 不是吧. 要是1,2,3,4,5长度是5. 第一次抽2,长度减1只有4了, 第二次抽2. 还不是一个样重复.
我佩服他了.



还有个题目:如:非常长的数字: 32478914098230948234 +101 是怎么写这加法涵数
                            32478914098230948234 *101呢?

我说加法就那高位不用理会. 低位和低位加. 看有进位就进位. 用寄存器保存这些数据. 如果不够就在内存里做为临时保存点.
乘法就移位,他摇头啊. 我问他怎么做. 他不说.


公司在动漫产业基地. 10楼.名字就不说了



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

好想回归大自然. 当一名旅行家. <(A_A)>

走自己的路.不怕再指责
linuxcici.cublog.cn
积分兑换专区 | IT节能和TPC-E活动获奖名单 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘 | 站长如何获得资金?
scutan   帅哥 (冬日夜雨)
精灵使
Linux newbie


CU奥运火炬传递手2008
UID:551201
注册:2007-4-13
最后登录: 2008-10-07
帖子:4845
精华:10

可用积分:4464 (小富即安)
信誉积分:345
专家积分:769 (本版:352)
空间积分:815
推广积分:200

来自:成都
状态:...离线...

[个人空间] [短信] [博客]


2楼 发表于 2008-3-25 23:16 
说说我的愚见。
第一个题我觉得应该用位运算来做,在编程珠玑第一章有讲解。
第二个题就是用字符串来保存很长的数来进行加和乘,在ACM的题中也有。



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

全力以赴每一秒!
勿在浮砂筑高台!

积分兑换专区 | IT节能和TPC-E活动获奖名单 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘 | 站长如何获得资金?
linuxcici   帅哥
大天使



UID:310629
注册:2005-9-6
最后登录: 2008-10-05
帖子:2125
精华:0

可用积分:1602 (家境小康)
信誉积分:100
专家积分:0 (本版:0)
空间积分:0
推广积分:0

来自:113°17'E 23°8'W (GZ)
状态:...离线...

[个人空间] [短信] [博客]


3楼 发表于 2008-3-25 23:18 


QUOTE:
原帖由 scutan 于 2008-3-25 23:16 发表
说说我的愚见。
第一个题我觉得应该用位运算来做,在编程珠玑第一章有讲解。
第二个题就是用字符串来保存很长的数来进行加和乘,在ACM的题中也有。

小公司出这些题目啊. 哎....佩服啊



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

好想回归大自然. 当一名旅行家. <(A_A)>

走自己的路.不怕再指责
linuxcici.cublog.cn
积分兑换专区 | IT节能和TPC-E活动获奖名单 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘 | 站长如何获得资金?
版主 cjaizss   帅哥
版主-法师



UID:272747
注册:2005-5-26
最后登录: 2008-10-06
帖子:5002
精华:1

可用积分:2247 (小富即安)
信誉积分:100
专家积分:45 (本版:10)
空间积分:1
推广积分:0

状态:...保密...

[个人空间] [短信] [博客]


4楼 发表于 2008-3-26 00:07 
第一道,o(m*(2n-m))时间级别的?(n是1000000,m是500000)(纯属个人猜测,实在想不出高效的算法)
第二道,如同小学生做算术那样,数字电路也是这么实现的,只是多了少许优化而已。



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

二十几年来最大的遗憾,并不是少赚了的钱,也不是少交了友,而是永远没有机会为最钟爱的数学真正做点什么,或许这会是这一生的遗憾
做个合格的电子工程师,其实很难

积分兑换专区 | IT节能和TPC-E活动获奖名单 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘 | 站长如何获得资金?
版主 cjaizss   帅哥
版主-法师



UID:272747
注册:2005-5-26
最后登录: 2008-10-06
帖子:5002
精华:1

可用积分:2247 (小富即安)
信誉积分:100
专家积分:45 (本版:10)
空间积分:1
推广积分:0

状态:...保密...

[个人空间] [短信] [博客]


5楼 发表于 2008-3-26 00:10 
另外考官的意思是
1->2->3->4->5
抽取1-5中随机数2,
则链表为1->3->4->5
再抽取1-4中随机数2,
则是取3了。



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

二十几年来最大的遗憾,并不是少赚了的钱,也不是少交了友,而是永远没有机会为最钟爱的数学真正做点什么,或许这会是这一生的遗憾
做个合格的电子工程师,其实很难

积分兑换专区 | IT节能和TPC-E活动获奖名单 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘 | 站长如何获得资金?
linuxcici   帅哥
大天使



UID:310629
注册:2005-9-6
最后登录: 2008-10-05
帖子:2125
精华:0

可用积分:1602 (家境小康)
信誉积分:100
专家积分:0 (本版:0)
空间积分:0
推广积分:0

来自:113°17'E 23°8'W (GZ)
状态:...离线...

[个人空间] [短信] [博客]


6楼 发表于 2008-3-26 00:15 


QUOTE:
原帖由 cjaizss 于 2008-3-26 00:10 发表
另外考官的意思是
1->2->3->4->5
抽取1-5中随机数2,
则链表为1->3->4->5
再抽取1-4中随机数2,
则是取3了。

喔..原来这个意思. 他那时候用python写的. 还有他说那高效方法是必做题目.



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

好想回归大自然. 当一名旅行家. <(A_A)>

走自己的路.不怕再指责
linuxcici.cublog.cn
积分兑换专区 | IT节能和TPC-E活动获奖名单 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘 | 站长如何获得资金?
版主 cjaizss   帅哥
版主-法师



UID:272747
注册:2005-5-26
最后登录: 2008-10-06
帖子:5002
精华:1

可用积分:2247 (小富即安)
信誉积分:100
专家积分:45 (本版:10)
空间积分:1
推广积分:0

状态:...保密...

[个人空间] [短信] [博客]


7楼 发表于 2008-3-26 00:19 


QUOTE:
原帖由 scutan 于 2008-3-25 23:16 发表
说说我的愚见。
第一个题我觉得应该用位运算来做,在编程珠玑第一章有讲解。
第二个题就是用字符串来保存很长的数来进行加和乘,在ACM的题中也有。

用位来做,类似于编译器里常用的“循环展开”,利用硬件的性质达到提速的目的,但是不降低算法复杂度级别(时间、空间)



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

二十几年来最大的遗憾,并不是少赚了的钱,也不是少交了友,而是永远没有机会为最钟爱的数学真正做点什么,或许这会是这一生的遗憾
做个合格的电子工程师,其实很难

积分兑换专区 | IT节能和TPC-E活动获奖名单 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘 | 站长如何获得资金?
linuxcici   帅哥
大天使



UID:310629
注册:2005-9-6
最后登录: 2008-10-05
帖子:2125
精华:0

可用积分:1602 (家境小康)
信誉积分:100
专家积分:0 (本版:0)
空间积分:0
推广积分:0

来自:113°17'E 23°8'W (GZ)
状态:...离线...

[个人空间] [短信] [博客]


8楼 发表于 2008-3-26 00:45 
自己想的一种方法. 不知道行不行得通

要是碰巧
第1次=1
第2次=2
第3次=3
现在就随机3次了.
第1次和第3次加就=4.
第2次和第3次加就=5.    结论: 抽3次随机数.可以得5次结果. 所以.

1-10抽5个是常数级.
1-100抽50个是循环10次.
1-1百万抽五十万 循环10万次


int tmp[100万];//用来保存临时的数据
int b=1;
int n1;
int n2;
int n3;
int n4;
int n5;
int 搞不定=0;
int result[50万];
int count=0;



   tmp清0;

for(;b<10万次;b++)
{

   one:
       n1=random(100万);
       if(tmp[n1]是空)
       tmp[n1]=n1;  //随机的数字放到临时对应的下标
       else
         goto one;      
   two:
       n2=random(100万);
       if(tmp[n2]是空)
       tmp[n2]=n2;               
       else
         goto two;

   three:
       n3=random(100万);
       if(tmp[n3]是空)
       tmp[n3]=n3;               
       else
         goto three;
              
     if(tmp[one+three]是空)
       n4=tmp[one+three]=one+three;
     else if(tmp[one+tow]是空)
       n4=tmp[one+tow]=one+tow;
     else
         搞不定=1;

     if(tmp[tow+three]是空)
       n5=tmp[tow+three]=tow+three;
     else
         搞不定=1;  
               
      if(搞不定==1)
      {
           tmp[n1]=tmp[n2]=tmp[n3]=tmp[one+three]=tmp[one+tow]=tmp[tow+three]=0;
           b--;//当本次循环不成功
           continue;
      }
      else  //满足了,代表一次循环可以有5个不同的随机数
      {
           result[count]=n1;
           count++;
           result[count]=n2;
           count++;
           result[count]=n3;
           count++;
           result[count]=n4;       
           count++;
           result[count]=n5;
           count++;

      }  
        
              
                 
}

[ 本帖最后由 linuxcici 于 2008-3-26 01:00 编辑 ]



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

好想回归大自然. 当一名旅行家. <(A_A)>

走自己的路.不怕再指责
linuxcici.cublog.cn
积分兑换专区 | IT节能和TPC-E活动获奖名单 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘 | 站长如何获得资金?
linuxcici   帅哥
大天使



UID:310629
注册:2005-9-6
最后登录: 2008-10-05
帖子:2125
精华:0

可用积分:1602 (家境小康)
信誉积分:100
专家积分:0 (本版:0)
空间积分:0
推广积分:0

来自:113°17'E 23°8'W (GZ)
状态:...离线...

[个人空间] [短信] [博客]


9楼 发表于 2008-3-26 00:46 
那考官给我十分钟左右叫我想优化算法啊. 到最后他两写了个自己也说是个效率低的方法. 真是无奈. 然后直接out了我



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

好想回归大自然. 当一名旅行家. <(A_A)>

走自己的路.不怕再指责
linuxcici.cublog.cn
积分兑换专区 | IT节能和TPC-E活动获奖名单 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘 | 站长如何获得资金?
linuxcici   帅哥
大天使



UID:310629
注册:2005-9-6
最后登录: 2008-10-05
帖子:2125
精华:0

可用积分:1602 (家境小康)
信誉积分:100
专家积分:0 (本版:0)
空间积分:0
推广积分:0

来自:113°17'E 23°8'W (GZ)
状态:...离线...

[个人空间] [短信] [博客]


10楼 发表于 2008-3-26 00:54 
哈. 那考官说我. 2个随机数加起来不是随机数. 就好象说两个堆沙子加起来不是堆沙子...哎...真给人BS了



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

好想回归大自然. 当一名旅行家. <(A_A)>

走自己的路.不怕再指责
linuxcici.cublog.cn
积分兑换专区 | IT节能和TPC-E活动获奖名单 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘 | 站长如何获得资金?

首页 » 论坛 » C/C++ »


 


Copyright © 2001-2008 ChinaUnix.net All Rights Reserved     联系我们:

感谢所有关心和支持过ChinaUnix的朋友们    转载本站内容请注明原作者名及出处

京ICP证041476号


清除 Cookies - ChinaUnix - Archiver - WAP - TOP

Processed in 0.045230 second(s), 4 queries , Gzip enabled