工大后院 » 【编程】编程圣殿 » [编程版]闲聊帖
中级房客
查看详细资料
TOP
learning..
版主
working..
# 下面是3道应用题,请编程实现: (注意时间、空间的优化,先写详细实现思路,再写代码,并且有详细清晰的注释) # 一、实现一个高性能的文件缓存系统,先写好思路,再编码实现。 # 二、实现一个高效率的程序(包括所需程序代码),以尽量短的时间,将用户信息表中150张按照时间hash的表(每张表的数据量为100万,数据字段包含《最近修改时间戳/username/nickname/出生地/所在地/年龄/性别/自我介绍》),转换成按照username hash的100张表。转换过程方法和过程需要考虑: a)尽可能短的时间中断用户服务; b)尽可能少的使用机器内存。 # 三、迅雷进行一个活动,这个活动需要客户端访问我们服务器。但活动为了限制访问量,做了如下规定,那就是每一个帐户在3600秒内只能参加不多于5次。请实现类c_user_enabled,完成此限制功能。 类接口定义: Class c_user_enabled { Public: Bool init(); Bool is_user_enabled(string user_name);// user_name表示用户帐户标识 Bool destroy(); }; 附: 需要考虑线程安全 可以使用stl. 可以使用如下的一个hash函数: Unsigned str_hash(string str); 可以使用如下锁: Class c_lock { Public: Void lock(); Void unlock(); Private: …; };
# 1.据说毕达哥拉斯理论家,发现了在数字序列1,3,6,10,15,21……(省略号说明这个序列无限地继续下去)中有一种奇特的联系。即数列中的第n项是由第n-1项加n得到的。例如,第2项是由第1项(1)加上2,得3。第3项是由第2项(3)加上3,得6。这个序列中的数字被称为三角数字。请用两种不同的算法实现,提示用户输入一个n值,程序显示对应的三角数字值。(22分) # 2.假设D:/dir目录下放着100个文件,文件名为:file001.txt,file002,file003.txt......file100.txt。请写一高效程序,将这100个文件的内容按文件名编号顺序合并成一个文件file.txt。(22分) # 3.任意给定一个大于等于10的整数A,请写一程序,以最小的时间复杂度找出比A小并且最接近A的一个整数B。要求:A与B的每位之和相等(28分) 例:如果A=123 那么B=114 如果A=20 那么B=11 如果A=10 那么B=1 请先写出思路,然后以java代码实现(注:最小的时间复杂度) # 4. 按以下要求实现一个程序:(28分) 1) 有两个整数集合(A和B),A初始化时,里面包含唯一一个整型数:9。 2) 开启三个线程,每个线程每次从A中获取一个整型数,并将这个数乘以一个随机数,然后将结果存入到B中。随机数要求为大于等于2,且小于10000的整数。当A中没有数据时,这个线程需要等待,直到A中重新有了数据则又开始取数。 3)开启另外四个线程,每个线程每次从B中获取一个数据,将其转化成个位数字,存入到A中,且0和1应该被忽略。比如,将123转化成1,2,3三个数字,并将2和3存入到A中。当B中没有数据时,这个线程需要等待,直到B中重新有了数据则又开始取数。 4) A和B都为空时,程序结束。
好好待自己
普通房客
黑衣人
你是谁
Sincerity
高级房客
regretless......