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

浙公网安备 33010602011771号