随笔分类 - 编程之美
摘要:求二进制中1的个数问题描述 对于一个字节(8bit)的变量,求其二进制表示中“1”的个数,要求算法的执行效率尽可能地高。【解法一】 可以举一个八位的二进制例子来进行分析。对于二进制操作,我们知道,除以一个2,原来的数字将会减少一个0。如果除的过程中有余,那么就表示当前位置有一个1。以10 100...
阅读全文
摘要:点游戏1. 问题描述: 给玩家4张牌,每张牌的面值在1-13之间,允许其中有数值相同的牌,采用加、减、乘、除四则运算,允许中间运算存在小数,并且可以使用括号,但每张牌只能用一次。构造表达式,使其结果为24。 输入: n1, n2, n3, n4 (1~13) 输出: 若能得到运算结果为 2...
阅读全文
摘要:构造数独1. 问题 构造一个9*9的方格矩阵,玩家要在每个方格中,分别填上1至9的任意一个数字,让整个棋盘每一列、每一行以及每一个3*3的小矩阵中的数字都不重复。2. 求解 用转置的方法生成数独数组,代码如下: 1 package chapter1youxizhileShuDu; 2 3...
阅读全文
摘要:连连看游戏设计连连看是一种很受大家欢迎的小游戏。微软亚洲研究院的实习生们就曾经开发过一个类似的游戏--Microsoft Link-up。图1-17为Microsoft Link-up的一个截图。如果用户可以把两个同样的图用线(连线拐的弯不能多于两个)连到一起,那么这两个头像就会消掉,当所有的头像全...
阅读全文
摘要:NIM(3)两堆石头的游戏1. 问题描述 假设有两堆石头,有两个玩家会根据如下的规则轮流取石头:每人每次可以从两堆石头中各取出数量相等的石头,或者仅从一堆石头中取出任意数量的石头;最后把剩下的石头一次拿光的人获胜。请问在哪些局面(依据两堆石头中的石头个数)下,先取石头的玩家有必胜的策略。2. 解...
阅读全文
摘要:NIM(2)“拈”游戏分析1. 问题 有N块石头和两个玩家A和B,玩家A先将石头分成若干堆,然后按照BABA……的顺序不断轮流取石头,能将剩下的石头一次取光的玩家获胜。每次取石头时,每个玩家只能从若干堆石头中任选一堆,取这一堆石头中任意数目(大于1)个石头。请问:玩家A有必胜策略吗?要怎么分配和取...
阅读全文
摘要:NIM(1)一排石子的游戏转载:编程之美-MIN(1)一排石头的游戏1. 原题1.1 题目N块石头排成一行,每块石头有各自固定的位置。两个玩家依次取石头,每个玩家每次可以取其中任意一块石头,或者相邻的两块石头,石头在游戏过程中不能移位(即编号不会改变),最后能将剩下的石头一次取光的玩家获胜。这个游戏...
阅读全文
摘要:参考链接:【编程之美】双线程高效下载[编程之美]双线程高效下载编程之美--多线程高效下载的问题编程之美——双线程高效下载【编程之美】双线程高效下载
阅读全文
摘要:高效率地安排见面会1. 问题描述: 在校园招聘的季节里,为了能让学生们更好地了解微软亚洲研究院各研究组的情况,HR部门计划为每一个研究组举办一次见面会,让各个研究组的员工能跟学生相互了解和交流。已知有n位学生,他们分别对m个研究组中的若干个感兴趣。为了满足所有学生的要求,HR希望每个学生都能参加自...
阅读全文
摘要:小飞的电梯调度算法1. 问题描述:亚洲微软研究院所在的希格玛大厦一共有6部电梯。在高峰时间,每层都有人上下,电梯每层都停。实习生小飞常常会被每层都停的电梯弄的很不耐烦,于是他提出了这样一个办法:由于楼层并不算太高,那么在繁忙的上下班时间,每次电梯从一层往上走时,我们只允许电梯停在其中的某一层。所有乘...
阅读全文
摘要:饮料供货1. 问题描述在微软亚洲研究院上班,大家早上来的第一件事是干啥呢?查看邮件?No,是去水房拿饮料:酸奶,豆浆,绿茶、王老吉、咖啡、可口可乐……(当然,还是有很多同事把拿饮料当做第二件事)。管理水房的阿姨们每天都会准备很多的饮料给大家,为了提高服务质量,她们会统计大家对每种饮料的满意度。一段时...
阅读全文
摘要:转载:编程之美_1.5_快速找出机器故障题目:假设一个机器只存储一个标号为ID的记录,假设每份数据保存2个备份,这样就有2个机器存储了相同的数据。其中ID是小于10亿的整数问题1、在某个时间,如果得到一个数据文件ID的列表。是否能够快速的找到这个表中仅出现一次的ID?即快速找出出现故障的机器存储的数...
阅读全文
摘要:买书问题1. 问题描述 上柜的《哈利波特》平装本系列,一共有五卷。假设每一卷单独销售均需8欧元。如果读者一次购买不同的两卷,就可以扣除5%的费用,三卷则更多。假设具体折扣的情况如下: 问题:要求根据这样的需求,设计出算法,能够计算出读者所购买一批书的最低价格。2. 问题分析: 优化问题一般采用动...
阅读全文
摘要:一摞烙饼的排序 问题:写出一个程序,对于n块大小不一的烙饼,输出最优化的翻饼过程?要保证烙饼按照大小次序摆好——小的在上面,大的在下面。分析与解法:用java实现的代码如下:package chapter1youxizhilePrefixSorting;import java.util.Scann...
阅读全文
摘要:中国象棋将帅问题 中国象棋里面双方的“将”和“帅”各自呆在自己的九宫格里,一步只能横移或纵移一格,而且双方不能见面(既不能处在同一条纵线上)。在残局时有的人会用这一规则走出绝妙杀招。假设一方的“将”为A,另一方的“帅”为B,现在求双方所能出现的所有合法位置,所需变量只能用一个字节来保存。 我们用...
阅读全文
摘要:在Java中,不存在Unsigned无符号数据类型,但可以轻而易举的完成Unsigned转换。方案一:如果在Java中进行流(Stream)数据处理,可以用DataInputStream类对Stream中的数据以Unsigned读取。Java在这方面提供了支持,可以用java.io.DataInpu...
阅读全文
摘要:让CPU占用率曲线听你指挥写一个程序,让用于来决定Windows任务管理器(Task Manager)的CPU占用率。程序越精简越好,计算机语言不限。例如,可以实现下面三种情况:CPU的占用率固定在50%,为一条直线;CPU的占用率为一条直线,但是具体占用率由命令行参数决定(参数范围1~100);C...
阅读全文
浙公网安备 33010602011771号