随笔分类 -  编程之美

编程之美习题笔记
摘要:关于书上NIM游戏的玩法及其取胜策略分析 阅读全文
posted @ 2013-10-11 17:59 Linka 阅读(476) 评论(0) 推荐(0)
摘要:假设提供了以下方法: bool GetBlockFromNet(Block *out_block); bool WriteBlockToDisk(Block *in_block); 想实现高效当然是创建两个线程,A负责获取网络数据,B负责写入数据到硬盘,难点在于如何合理分配两个线程之间的工作! 阅读全文
posted @ 2013-10-11 17:17 Linka 阅读(258) 评论(0) 推荐(0)
摘要:问题:由于楼层并不高,在繁忙时段,每次电梯从一层往上走时,我们只允许停到其中某一层。所有乘客再从这层去往自己的目的楼层。 电梯停在哪一层,能够保证乘客爬楼梯之和最少? 阅读全文
posted @ 2013-10-11 16:47 Linka 阅读(450) 评论(0) 推荐(0)
摘要:问题:如何快速计算某个时刻,在X[A,B]区间上的地板被光影划分成多少块? 阅读全文
posted @ 2013-10-11 14:59 Linka 阅读(359) 评论(0) 推荐(0)
摘要:问题:假设一台机器仅保存一个标号为ID的记录,每份数据有两个备份,分别存储到两台机器中。 1.在某个时间,如果得到一个数据文件ID列表,能否快速找出仅出现一次的ID? 2.如果已经知道只有一台机器死机呢?如果有两台机器死机呢? (假设同一数据两个备份不会同时丢失) 阅读全文
posted @ 2013-10-11 13:58 Linka 阅读(251) 评论(0) 推荐(0)
摘要:问题: 星期五的晚上,一帮同事在希格玛大厦附近的“硬盘酒吧”多喝了几杯。程序员多喝了几杯之后谈什么呢?自然是算法问题。有个同事说:“我以前在餐馆打工,顾客经常点非常多的烙饼。店里的饼大小不一,我习惯在到达顾客饭桌前,把一摞饼按照大小次序摆好——小的在上面,大的在下面。由于我一只手托着盘子,只好用另一只手,一次抓住最上面的几块饼,把它们上下颠倒个个儿,反复几次之后,这摞烙饼就排好序了。我后来想,这实际上是个有趣的排序问题:假设有n块大小不一的烙饼,那最少要翻几次,才能达到最后大小有序的结果呢?” 你能否写出一个程序,对于n块大小不一的烙饼,输出最优化的翻饼过程呢? 阅读全文
posted @ 2013-10-11 12:55 Linka 阅读(277) 评论(0) 推荐(0)
摘要:问题: 现在有一个象棋残局,只剩下将A帅B,AB只能在3x3的格子里横纵移动,而且AB不能照面。 输出A、B的合法位置(要求代码中只使用一个变量)。 问题本身很简单,难度在于只用一个变量。 阅读全文
posted @ 2013-10-11 12:41 Linka 阅读(220) 评论(0) 推荐(0)
摘要:问题: 1.CPU的占用率固定在50%,为一条直线。 2.问题1的进阶,占用率有参数决定。 3.CPU占用率是一条正弦曲线。 此题目涉及到操作系统API的调用,及对CPU时钟周期的理解,我的电脑配置为:i5-3570k 3.40GHz 阅读全文
posted @ 2013-10-11 12:21 Linka 阅读(408) 评论(0) 推荐(0)
摘要:问题: 1.神奇的9位数,能不能找出符合如下条件的9位数? 这个数包括1~9这9个数字,这个9位数的前n位都能被n整除。假设这个9位数是abcdefghi 2.有这样一个乘法算式:人过大佛寺*我=寺佛大过人 这里面每一个汉字代表一个数字,并且不同汉字代表的数字不同,找出这些数字来? 阅读全文
posted @ 2013-10-10 15:54 Linka 阅读(547) 评论(0) 推荐(0)
摘要:问题:一共有多少种不同的数独解答呢?其中有多少种是独立的解答呢? 如果用一个字符串来表示各种数独,如何保证一一对应的基础上,让字符串的长度最短? (压缩保存?) 分析: 首先要明确问题,独立的解答到底是什么?如何定义“独立”这种关系? 如果任意交换数独的两个数字,仍然是一个合法的数独。 那么我们可以定义:如果两个数独解答可以通过这种交换得到,则它们就不是独立的。 假设不考虑独立的情况下,一个空的数独有N个解答,那么独立的解答应该为 N/( 9! )。 阅读全文
posted @ 2013-10-10 12:18 Linka 阅读(859) 评论(0) 推荐(0)
摘要:问题:输入三角形三边长,判断是否能构成一个三角形(不考虑退化三角形)。 1.如何用一个byte来表示各种输出结果? 2.如果你是一名测试工程师,如何编写测试用例? 阅读全文
posted @ 2013-10-09 20:55 Linka 阅读(786) 评论(0) 推荐(0)
摘要:问题:有一根27厘米的细木杆,在第3厘米、7厘米、11厘米、17厘米、23厘米这五个位置上各有一只蚂蚁。木杆很细,不能同时通过两只蚂蚁。开始时,蚂蚁头朝向任意(左或右),它们只会朝前或掉头,不会后退。当任意两只蚂蚁碰头是,两只蚂蚁会同时调头朝反向走。假设蚂蚁每秒走1厘米,编写程序,求所有蚂蚁都离开木杆的最短时间和最长时间。 阅读全文
posted @ 2013-10-09 18:36 Linka 阅读(1394) 评论(0) 推荐(0)
摘要:问题:有一个桶,里面放有白球、黑球各100个,人们必须按以下规则取出: 1.每次从桶里取出两个球 2.如果两个同色,就放入一个黑球 3.如果两个异色,就放入一个白球 最后桶里只剩下一个黑球的概率是多少? 1.每次从桶里取出两个球 2.如果两个同色,就放入一个黑球 3.如果两个异色,就放入一个白球 最后桶里只剩下一个黑球的概率是多少? 阅读全文
posted @ 2013-10-09 11:33 Linka 阅读(454) 评论(0) 推荐(0)
摘要:磁带的特性:线性存储、价格低廉、海量的存储空间 问题:设现在有n份文件长度为L[0]、L[1]、L[2]….L[n-1],访问概率为P[0]、P[1]、P[2]…P[n-1] 1.访问概率相等的情况下,如何安排存储顺序最好? 2.长度一样的情况下,如何安排呢? 3.长度与访问概率都不相同的情况下,又怎么安排呢? 阅读全文
posted @ 2013-10-09 00:41 Linka 阅读(193) 评论(0) 推荐(0)
摘要:问题:如果一个二维坐标系中,已知三角形三个点的坐标,那么对于任意一点,如何判断其在三角形内呢?(点在三角形边上也算在三角形内) 阅读全文
posted @ 2013-10-08 20:27 Linka 阅读(548) 评论(0) 推荐(0)
摘要:问题:在一场球赛开始前,售票工作进行着,每张球票为50元。现在有2n个人排队购票,其中有n人手持50元,另外n人手持100元,假设开始售票是售票处没有零钱,问这2n个人有多少种排列方式,不至于售票出出现没钱找的情况? 阅读全文
posted @ 2013-10-08 18:55 Linka 阅读(515) 评论(0) 推荐(0)
摘要:问题: 原有地板铺有 NxM 块正方形瓷砖老化了需要更新,但商店已经没有此类瓷砖了,只供应长方形的瓷砖,分析如何用 1x2 的瓷砖去覆盖 NxM 的地板呢? 分析: 1.N=1,M为偶数时,需要M/2块瓷砖 2.若NxM为奇数,则肯定不能用1x2的瓷砖去全部覆盖它。 (例如3x3只能放4块,3x5只能放7块,都剩余一个不能覆盖) 3.N与M中至少有一个为偶数,需要Nx(M/2)块瓷砖(这里假设M为偶数) 阅读全文
posted @ 2013-10-08 16:22 Linka 阅读(1271) 评论(0) 推荐(0)
摘要:现在有一班飞机将要起飞,乘客们正准备按机票号码(1, 2, 3, …N)依次排队登机。突然来了一只大猩猩(对,他叫金刚)。他也有飞机票,但是他插队第一个登上了飞机,然后随意地选了一个座位坐下了1。根据社会的和谐程度,其他的乘客有两种反应: 1. 乘客们都义愤填膺,“既然金刚同志不遵守规定,为什么我要遵守?”他们也随意地找位置坐下,并且坚决不让座给其他乘客。 2. 乘客们虽然感到愤怒,但还是以“和谐”为重,如果自己的位置没有被占领,就赶紧坐下,如果自己的位置已经被别人(或者金刚同志)占了,就随机地选择另一个位置坐下,并开始闭目养神,不再挪动位置。 阅读全文
posted @ 2013-10-08 15:00 Linka 阅读(466) 评论(0) 推荐(0)