Microsoft Word - 1的数目.doc

Size: px
Start display at page:

Download "Microsoft Word - 1的数目.doc"

Transcription

1 写 书 评, 赢 取 编 程 之 美 -- 微 软 技 术 面 试 心 得 1 的 数 目 给 定 一 个 十 进 制 正 整 数 N, 写 下 从 1 开 始, 到 N 的 所 有 整 数, 然 后 数 一 下 其 中 出 现 的 所 有 1 的 个 数 例 如 : N= 2, 写 下 1,2 这 样 只 出 现 了 1 个 1 N= 12, 我 们 会 写 下 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 这 样,1 的 个 数 是 5 问 题 是 : 1. 写 一 个 函 数 f(n), 返 回 1 到 N 之 间 出 现 的 1 的 个 数, 比 如 f(12) =5 2. 在 32 位 整 数 范 围 内, 满 足 条 件 f(n)= N 的 最 大 的 N 是 多 少?

2 写 书 评, 赢 取 编 程 之 美 -- 微 软 技 术 面 试 心 得 分 析 与 解 法 问 题 1 的 解 法 一 这 个 问 题 看 上 去 并 不 是 一 个 困 难 的 问 题, 因 为 不 需 要 太 多 的 思 考, 我 想 大 家 都 能 找 到 一 个 最 简 单 的 方 法 来 计 算 f(n), 那 就 是 从 1 开 始 遍 历 到 N, 将 其 中 每 一 个 数 中 含 有 1 的 个 数 加 起 来, 自 然 就 得 到 了 从 1 到 N 所 有 1 的 个 数 的 和 写 成 程 序 如 下 : 代 码 清 单 2-9 ULONGLONG Count1InAInteger(ULONGLONG n) ULONGLONG inum = 0; while(n!= 0) inum += (n % 10 == 1)? 1 : 0; n /= 10; return inum; ULONGLONG f(ulonglong n) ULONGLONG icount = 0; for (ULONGLONG i = 1; i <= n; i++) icount += Count1InAInteger(i);

3 写 书 评, 赢 取 编 程 之 美 -- 微 软 技 术 面 试 心 得 return icount; 这 个 方 法 很 简 单, 只 要 学 过 一 点 编 程 知 识 的 人 都 能 想 到, 实 现 也 很 简 单, 容 易 理 解 但 是 这 个 算 法 的 致 命 问 题 是 效 率, 它 的 时 间 复 杂 度 是 log 2 N) O(N) 计 算 一 个 整 数 数 字 里 面 1 的 个 数 的 复 杂 度 = O(N * 如 果 给 定 的 N 比 较 大, 则 需 要 很 长 的 运 算 时 间 才 能 得 到 计 算 结 果 比 如 在 笔 者 的 机 器 上, 如 果 给 定 N= , 则 算 出 f (N) 大 概 需 要 40 秒 的 时 间, 计 算 时 间 会 随 着 N 的 增 大 而 线 性 增 长 看 起 来 要 计 算 从 1 到 N 的 数 字 中 所 有 1 的 和, 至 少 也 得 遍 历 1 到 N 之 间 所 有 的 数 字 才 能 得 到 那 么 能 不 能 找 到 快 一 点 的 方 法 来 解 决 这 个 问 题 呢? 要 提 高 效 率, 必 须 摈 弃 这 种 遍 历 1 到 N 所 有 数 字 来 计 算 f(n) 的 方 法, 而 应 采 用 另 外 的 思 路 来 解 决 这 个 问 题 问 题 1 的 解 法 二 仔 细 分 析 这 个 问 题, 给 定 了 N, 似 乎 就 可 以 通 过 分 析 小 于 N 的 数 在 每 一 位 上 可 能 出 现 1 的 次 数 之 和 来 得 到 这 个 结 果 让 我 们 来 分 析 一 下 对 于 一 个 特 定 的 N, 如 何 得 到 一 个 规 律 来 分 析 在 每 一 位 上 所 有 出 现 1 的 可 能 性, 并 求 和 得 到 最 后 的 f(n) 先 从 一 些 简 单 的 情 况 开 始 观 察, 看 看 能 不 能 总 结 出 什 么 规 律

4 写 书 评, 赢 取 编 程 之 美 -- 微 软 技 术 面 试 心 得 先 看 1 位 数 的 情 况 如 果 N = 3, 那 么 从 1 到 3 的 所 有 数 字 :1 2 3, 只 有 个 位 数 字 上 可 能 出 现 1, 而 且 只 出 现 1 次, 进 一 步 可 以 发 现 如 果 N 是 个 位 数, 如 果 N>=1, 那 么 f(n) 都 等 于 1, 如 果 N=0, 则 f(n) 为 0 再 看 2 位 数 的 情 况 如 果 N=13, 那 么 从 1 到 13 的 所 有 数 字 : , 个 位 和 十 位 的 数 字 上 都 可 能 有 1, 我 们 可 以 将 它 们 分 开 来 考 虑, 个 位 出 现 1 的 次 数 有 两 次 :1 和 11, 十 位 出 现 1 的 次 数 有 4 次 : 和 13, 所 以 f(n)=2+4=6 要 注 意 的 是 11 这 个 数 字 在 十 位 和 个 位 都 出 现 了 1, 但 是 11 恰 好 在 个 位 为 1 和 十 位 为 1 中 被 计 算 了 两 次, 所 以 不 用 特 殊 处 理, 是 对 的 再 考 虑 N=23 的 情 况, 它 和 N=13 有 点 不 同, 十 位 出 现 1 的 次 数 为 10 次, 从 10 到 19, 个 位 出 现 1 的 次 数 为 1 11 和 21, 所 以 f(n)=3+10=13 通 过 对 两 位 数 进 行 分 析, 我 们 发 现, 个 位 数 出 现 1 的 次 数 不 仅 和 个 位 数 字 有 关, 还 和 十 位 数 有 关 : 如 果 N 的 个 位 数 大 于 等 于 1, 则 个 位 出 现 1 的 次 数 为 十 位 数 的 数 字 加 1; 如 果 N 的 个 位 数 为 0, 则 个 位 出 现 1 的 次 数 等 于 十 位 数 的 数 字 而 十 位 数 上 出 现 1 的 次 数 不 仅 和 十 位 数 有 关, 还 和 个 位 数 有 关 : 如 果 十 位 数 字 等 于 1, 则 十 位 数 上 出 现 1 的 次 数 为 个 位 数 的 数 字 加 1; 如 果 十 位 数 大 于 1, 则 十 位 数 上 出 现 1 的 次 数 为 10 f(13) = 个 位 出 现 1 的 个 数 + 十 位 出 现 1 的 个 数 = = 6; f(23) = 个 位 出 现 1 的 个 数 + 十 位 出 现 1 的 个 数 = = 13; f(33) = 个 位 出 现 1 的 个 数 + 十 位 出 现 1 的 个 数 = = 14; f(93) = 个 位 出 现 1 的 个 数 + 十 位 出 现 1 的 个 数 = = 20; 接 着 分 析 3 位 数

5 写 书 评, 赢 取 编 程 之 美 -- 微 软 技 术 面 试 心 得 如 果 N = 123: 个 位 出 现 1 的 个 数 为 13:1, 11, 21,, 91, 101, 111, 121 十 位 出 现 1 的 个 数 为 20:10~19, 110~119 百 位 出 现 1 的 个 数 为 24:100~123 f(23)= 个 位 出 现 1 的 个 数 + 十 位 出 现 1 的 个 数 + 百 位 出 现 1 的 次 数 = = 57; 同 理 我 们 可 以 再 分 析 4 位 数 5 位 数 读 者 朋 友 们 可 以 写 一 写, 总 结 一 下 各 种 情 况 有 什 么 不 同 根 据 上 面 的 一 些 尝 试, 下 面 我 们 推 导 出 一 般 情 况 下, 从 N 得 到 f(n) 的 计 算 方 法 : 假 设 N=abcde, 这 里 a b c d e 分 别 是 十 进 制 数 N 的 各 个 数 位 上 的 数 字 如 果 要 计 算 百 位 上 出 现 1 的 次 数, 它 将 会 受 到 三 个 因 素 的 影 响 : 百 位 上 的 数 字, 百 位 以 下 ( 低 位 ) 的 数 字, 百 位 ( 更 高 位 ) 以 上 的 数 字 如 果 百 位 上 的 数 字 为 0, 则 可 以 知 道, 百 位 上 可 能 出 现 1 的 次 数 由 更 高 位 决 定, 比 如 , 则 可 以 知 道 百 位 出 现 1 的 情 况 可 能 是 100~199,1 100~1 199,2 100~2 199,,11 100~11 199, 一 共 有 个 也 就 是 由 更 高 位 数 字 (12) 决 定, 并 且 等 于 更 高 位 数 字 (12) 当 前 位 数 (100)

6 写 书 评, 赢 取 编 程 之 美 -- 微 软 技 术 面 试 心 得 如 果 百 位 上 的 数 字 为 1, 则 可 以 知 道, 百 位 上 可 能 出 现 1 的 次 数 不 仅 受 更 高 位 影 响, 还 受 低 位 影 响, 也 就 是 由 更 高 位 和 低 位 共 同 决 定 例 如 对 于 , 受 更 高 位 影 响, 百 位 出 现 1 的 情 况 是 100~ 199,1 100~1 199,2 100~2 199,,11 100~11 199, 一 共 个, 和 上 面 第 一 种 情 况 一 样, 等 于 更 高 位 数 字 (12) 当 前 位 数 (100) 但 是 它 还 受 低 位 影 响, 百 位 出 现 1 的 情 况 是 ~12 113, 一 共 114 个, 等 于 低 位 数 字 (123)+1 如 果 百 位 上 数 字 大 于 1( 即 为 2~9), 则 百 位 上 可 能 出 现 1 的 次 数 也 仅 由 更 高 位 决 定, 比 如 , 则 百 位 出 现 1 的 可 能 性 为 :100~199,1 100~1 199,2 100~2 199,,11 100~11 199, ~12 199, 一 共 有 个, 并 且 等 于 更 高 位 数 字 +1(12+1) 当 前 位 数 (100) 通 过 上 面 的 归 纳 和 总 结, 我 们 可 以 写 出 如 下 的 更 高 效 算 法 来 计 算 f(n): 代 码 清 单 2-10 LONGLONG Sum1s(ULONGLONG n) ULONGLONG icount = 0; ULONGLONG ifactor = 1; ULONGLONG ilowernum = 0; ULONGLONG icurrnum = 0;

7 写 书 评, 赢 取 编 程 之 美 -- 微 软 技 术 面 试 心 得 ULONGLONG ihighernum = 0; while(n / ifactor!= 0) ilowernum = n - (n / ifactor) * ifactor; icurrnum = (n / ifactor) % 10; ihighernum = n / (ifactor * 10); + 1; switch(icurrnum) case 0: icount += ihighernum * ifactor; break; case 1: icount += ihighernum * ifactor + ilowernum break; default: icount += (ihighernum + 1) * ifactor; break; ifactor *= 10; return icount; 这 个 方 法 只 要 分 析 N 就 可 以 得 到 f(n), 避 开 了 从 1 到 N 的 遍 历, 输 入 长 度 为 Len 的 数 字 N 的 时 间 复 杂 度 为 O(Len), 即 为 O(ln(n)/ln(10)+1) 在 笔 者 的 计 算 机 上, 计 算 N= ,

8 写 书 评, 赢 取 编 程 之 美 -- 微 软 技 术 面 试 心 得 相 对 于 第 一 种 方 法 的 40 秒 时 间, 这 种 算 法 不 到 1 毫 秒 就 可 以 返 回 结 果, 速 度 至 少 提 高 了 倍

9 写 书 评, 赢 取 编 程 之 美 -- 微 软 技 术 面 试 心 得 问 题 2 的 解 法 要 确 定 最 大 的 数 N, 满 足 f(n)=n 我 们 通 过 简 单 的 分 析 可 以 知 道 ( 仿 照 上 面 给 出 的 方 法 来 分 析 ): 9 以 下 为 : 1 个 ; 99 以 下 为 : =20 个 ; 999 以 下 为 : =300 个 ; 9999 以 下 为 : =4000 个 ; 以 下 为 : 个 ; 以 下 为 : 个 容 易 从 上 面 的 式 子 归 纳 出 :f(10 n-1 )= n * 10 n-1 通 过 这 个 递 推 式, 很 容 易 看 到, 当 n = 9 时 候,f(n) 的 开 始 值 大 于 n, 所 以 我 们 可 以 猜 想, 当 n 大 于 某 一 个 数 N 时,f(n) 会 始 终 比 n 大, 也 就 是 说, 最 大 满 足 条 件 在 0~N 之 间, 亦 即 N 是 最 大 满 足 条 件 f (n)= n 的 一 个 上 界 如 果 能 估 计 出 这 个 N, 那 么 只 要 让 n 从 N 往 0 递 减, 每 个 分 别 检 查 是 否 有 f(n)= n, 第 一 个 满 足 条 件 的 数

10 写 书 评, 赢 取 编 程 之 美 -- 微 软 技 术 面 试 心 得 就 是 我 们 要 求 的 整 数 因 此, 问 题 转 化 为 如 何 证 明 上 界 N 确 实 存 在, 并 估 计 出 这 个 上 界 N 证 明 满 足 条 件 f(n)= n 的 数 存 在 一 个 上 界 首 先, 用 类 似 数 学 归 纳 法 的 思 路 来 推 理 这 个 问 题 很 容 易 得 到 下 面 这 些 结 论 ( 读 者 朋 友 可 以 自 己 试 着 列 举 验 证 一 下 ): 当 n 增 加 10 时,f(n) 至 少 增 加 1; 当 n 增 加 100 时,f(n) 至 少 增 加 20; 当 n 增 加 时,f(n) 至 少 增 加 300; 当 n 增 加 时,f(n) 至 少 增 加 4 000; 当 n 增 加 10 k 时,f(n) 至 少 增 加 k*10 k - 1 首 先, 当 k>=10 时,k*10 k - 1 > 10 k, 所 以 f(n) 的 增 加 量 大 于 n 的 增 加 量 其 次,f( )=10 10 > 如 果 存 在 N, 当 n = N 时,f(N) -N> 成 立 时, 此 时 不 管 n 增 加 多 少,f(n) 的 值 将 始 终 大 于 n 具 体 来 说, 设 n 的 增 加 量 为 m: 当 m 小 于 时, 由 于 f (N)-N> , 因 此 有 f(n + m)> f(n)> N > N + m, 即 f(n) 的 值 仍 然 比 n 的 值 大 ; 当 m 大 于 等 于 时,f (n)

11 写 书 评, 赢 取 编 程 之 美 -- 微 软 技 术 面 试 心 得 的 增 量 始 终 比 n 的 增 量 大, 即 f(n + m)- f(n)>(n+m)- N, 也 就 是 f(n + m)> f(n)+ m > N m > N + m, 即 f(n) 的 值 仍 然 比 n 的 值 大 因 此, 对 于 满 足 f(n)- N > 成 立 的 N 一 定 是 所 求 该 数 的 一 个 上 界 求 出 上 界 N 又 由 于 f( )= n * , 不 妨 设 N = 10 K-1, 有 f(10 K-1 ) -(10 K-1 )> , 即 K*10 K-1 -(10 K-1 )> , 易 得 K > =11 时 候 均 满 足 所 以, 当 K = 11 时,N= 即 为 最 小 一 个 上 界 计 算 这 个 最 大 数 n 令 N = = , 让 n 从 N 往 0 递 减, 每 个 分 别 检 查 是 否 有 f(n)= n, 第 一 满 足 条 件 的 就 是 我 们 要 求 的 整 数 很 容 易 解 出 n = 是 满 足 f(n)= n 的 最 大 整 数 扩 展 问 题 对 于 其 他 进 制 表 达 方 式, 也 可 以 试 一 试, 看 看 有 什 么 规 律 例 如 二 进 制 : f(1)= 1 f(10)= 10( 因 为 01, 10 有 两 个 1) f(11)= 100( 因 为 01, 10, 11 有 四 个 1)

12 写 书 评, 赢 取 编 程 之 美 -- 微 软 技 术 面 试 心 得 读 者 朋 友 可 以 模 仿 我 们 的 分 析 方 法, 给 出 相 应 的 解 答

13

14 题 目 1-12 NIM 拈 游 戏 分 析 1 NIM 拈 游 戏 分 析 问 题 有 N 块 石 头 和 两 个 玩 家 A 和 B, 玩 家 A 先 将 石 头 分 成 若 干 堆, 然 后 按 照 BABA 的 顺 序 不 断 轮 流 取 石 头, 能 将 剩 下 的 石 头 一 次 取 光 的 玩 家 获 胜 每 次 取 石 头 时, 每 个 玩 家 只 能 从 若 干 堆 石 头 中 任 选 一 堆, 取 这 一 堆 石 头 中 任 意 数 目 ( 大 于 1) 个 石 头 请 问 : 玩 家 A 有 必 胜 策 略 吗? 要 怎 么 分 配 和 取 石 头 才 能 保 证 自 己 有 把 握 取 胜? 解 法 与 分 析 据 说, 该 游 戏 起 源 于 中 国, 英 文 名 字 叫 做 NIM, 是 由 广 东 话 拈 ( 取 物 之 意 ) 音 译 而 来, 经 由 当 年 到 美 洲 打 工 的 华 人 流 传 出 去, 这 个 游 戏 一 个 常 见 的 变 种 是 将 十 二 枚 硬 币 分 三 列 排 成 [3,4,5] 再 开 始 玩 我 们 这 里 讨 论 的 是 一 般 意 义 上 的 拈 游 戏 言 归 正 传, 在 面 试 者 咄 咄 逼 人 的 目 光 下, 你 要 如 何 着 手 解 决 这 个 问 题? 在 面 试 中, 面 试 者 考 察 的 重 点 不 是 what 能 否 记 住 某 道 题 目 的 解 法, 某 件 历 史 事 件 发 生 的 确 切 年 代,C++ 语 言 中 关 于 类 的 继 承 的 某 个 规 则 的 分 支 等 面 试 者 很 想 知 道 的 是 how 应 聘 者 是 如 何 思 考 和 学 习 的 所 以, 应 聘 者 得 展 现 自 己 的 思 路 解 答 这 类 问 题 应 从 最 基 本 的 特 例 开 始 分 析 我 们 用 N 表 示 石 头 的 堆 数,M 表 示 总 的 石 头 数 目 当 N=1 时, 即 只 有 一 堆 石 头 显 然 无 论 你 放 多 少 石 头, 你 的 对 手 都 能 一 次 全 拿 光, 你 不 能 这 样 摆 当 N=2 时, 即 有 两 堆 石 头, 最 简 单 的 情 况 是 每 堆 石 头 中 各 有 一 个 石 子 (1,1) 先 让 对 手 拿, 无 论 怎 样 你 都 可 以 获 胜 我 们 把 这 种 在 双 方 理 性 走 法 下, 你 一 定 能 够 赢 的 编 程 之 美 微 软 技 术 面 试 心 得

15 2 第 1 章 游 戏 之 美 局 面 叫 作 安 全 局 面 当 N = 2,M > 2 时, 既 然 (1, 1) 是 安 全 局 面, 那 么 (1, X) 都 不 是 安 全 局 面, 因 为 对 手 只 要 经 过 一 次 转 换, 就 能 把 (1, X) 变 成 (1, 1), 然 后 该 你 走, 你 就 输 了 既 然 (1, X) 不 安 全, 那 么 (2, 2) 如 何? 经 过 分 析,(2,2) 是 安 全 的, 因 为 它 不 能 一 步 变 成 (1,1) 这 样 的 安 全 局 面 这 样 我 们 似 乎 可 以 推 理 (3, 3) (4, 4), 一 直 到 (X, X) 都 是 安 全 局 面 于 是 我 们 初 步 总 结, 如 果 石 头 的 数 目 是 偶 数, 就 把 它 们 分 为 两 堆, 每 堆 有 同 样 多 的 数 目 这 样 无 论 对 手 如 何 取, 你 只 要 保 证 你 取 之 后 是 安 全 局 面 (X, X), 你 就 能 赢 好, 如 果 石 头 数 目 是 奇 数 个 呢? 当 M=3 的 时 候, 有 两 种 情 况,(2, 1) (1, 1, 1), 这 两 种 情 况 都 会 是 先 拿 者 赢 当 M=5 的 时 候, 和 M=3 类 似 无 论 你 怎 么 摆, 都 会 是 先 拿 者 赢 若 M=7 呢? 情 况 多 起 来 了, 头 有 些 晕 了, 好 像 也 是 先 拿 者 赢 我 们 在 这 里 得 到 一 个 很 重 要 的 阶 段 性 结 论 : 当 摆 放 方 法 为 (1, 1,, 1) 的 时 候, 如 果 1 的 个 数 是 奇 数 个, 则 先 拿 者 赢 ; 如 果 1 的 个 数 是 偶 数 个, 则 先 拿 者 必 输 当 摆 放 方 法 为 (1, 1,, 1, X)( 多 个 1, 加 上 一 个 大 于 1 的 X) 的 时 候, 先 拿 者 必 赢 因 为 : 如 果 1 有 奇 数 个, 先 拿 者 可 以 从 (X) 这 一 堆 中 一 次 拿 走 X-1 个, 剩 下 偶 数 个 1 接 下 来 动 手 的 人 必 输 如 果 有 偶 数 个 1, 加 上 一 个 X, 先 拿 者 可 以 一 次 把 X 都 拿 光, 剩 下 偶 数 个 1 接 下 来 动 手 的 人 也 必 输 当 然, 游 戏 是 两 个 人 玩 的, 还 有 其 他 的 各 种 摆 法, 例 如 当 M = 9 的 时 候, 我 们 可 以 摆 为 (2, 3, 4) (1, 4, 4) (1, 2, 6), 等 等, 这 么 多 堆 石 头, 它 们 既 互 相 独 立, 又 互 相 牵 制, 那 如 何 分 析 得 出 致 胜 策 略 呢? 关 键 是 找 到 在 这 一 系 列 变 化 过 程 中 有 没 有 一 个 特 性 始 终 决 定 着 输 赢 这 个 时 候, 就 得 考 验 一 下 真 功 夫 了, 我 们 要 想 想 大 学 一 年 级 数 理 逻 辑 课 上 学 的 异 或 (XOR) 运 算 异 或 运 算 规 则 如 下 : 编 程 之 美 微 软 技 术 面 试 心 得

16 题 目 1-12 NIM 拈 游 戏 分 析 3 XOR(0, 0)= 0 XOR(1, 0)= 1 XOR(1, 1)= 0 首 先 我 们 看 整 个 游 戏 过 程, 我 们 从 N 堆 石 头 (M 1, M 2,, M n ) 开 始, 双 方 斗 智 斗 勇, 石 头 一 直 递 减 到 全 部 为 零 (0, 0,, 0) 当 M 为 偶 数 的 时 候, 我 们 的 取 胜 策 略 是 把 M 分 成 相 同 的 两 份, 这 样 就 能 取 胜 开 始 :(M 1, M 1 ) 它 们 异 或 的 结 果 是 XOR(M 1, M 1 )= 0 中 途 :(M 1, M 2 ) 对 手 无 论 怎 样 从 这 堆 石 头 中 取,XOR(M 1, M 2 )!= 0 我 方 :(M 2, M 2 ) 我 方 还 是 把 两 堆 变 相 等 XOR(M 2, M 2 )= 0 最 后 :(M 2, M 2 ) 我 方 取 胜 类 似 的, 若 M 为 奇 数, 我 们 把 石 头 分 成 (1, 1,,1) 奇 数 堆 的 时 候,XOR(1, 1,,1) [ 奇 数 个 ]!=0 而 这 时 候, 对 方 可 以 取 走 一 整 堆,XOR(1, 1,, 1) [ 偶 数 个 ]=0, 如 此 下 去, 我 方 必 输 我 们 推 广 到 M 为 奇 数, 但 是 每 堆 石 头 的 数 目 不 限 于 1 的 情 况, 看 看 XOR 值 的 规 律 : 开 始 :(M 1, M 2,, M n ) XOR(M 1, M 2, M n )=? 中 途 :(M 1, M 2, M n ) XOR(M 1, M 2, M n )=? 最 后 :(0, 0,, 0) XOR(0,0, 0)=0 不 幸 的 是, 可 以 看 出, 当 有 奇 数 个 石 头 时, 无 论 你 如 何 分 堆,XOR(M 1, M 2, M n ) 总 是 不 等 于 0! 因 为 必 然 会 有 奇 数 堆 有 奇 数 个 石 头 ( 二 进 制 表 示 最 低 位 为 1), 异 或 的 结 果 最 低 位 肯 定 为 1 [ 结 论 1] 再 不 幸 的 是, 还 可 以 证 明, 当 XOR(M 1, M 2, M n )!= 0 时, 我 们 总 是 只 需 要 改 变 一 个 M i 的 值, 就 可 以 让 XOR(M 1, M 2, M i, M n )= 0 [ 结 论 2] 更 不 幸 的 是, 又 可 以 证 明, 当 XOR(M 1, M 2, M n )= 0 时, 对 任 何 一 个 M 值 的 改 变 ( 取 走 石 头 ), 都 会 让 XOR(M 1, M 2, M i, M n )! = 0 [ 结 论 3] 编 程 之 美 微 软 技 术 面 试 心 得

17 4 第 1 章 游 戏 之 美 有 了 这 三 个 不 幸 的 结 论, 我 们 不 得 不 承 认, 当 M 为 奇 数 时, 无 论 怎 样 分 堆, 总 是 先 动 手 的 人 赢 还 不 信? 那 我 们 试 试 看 : 当 M=9, 随 机 分 堆 为 (1,2,6) 开 始 :(1,2,6) 1= = =1 1 0 XOR=1 0 1 即 XOR(1,2,6)!=0 B 先 手 :(1, 2, 3), 即 从 第 三 堆 取 走 三 个, 得 到 (1,2,3) 1= = =0 1 1 XOR=0 0 0 A 方 :(1, 2, 2)XOR(1, 2, 2)!=0 B 方 :(0, 2, 2)XOR (0, 2, 2)=0 A 方 继 续 顽 抗 B 方 最 后 :(0, 0, 0),XOR(0, 0, 0)= 0 所 以,XOR(1,2,3)=0 好 了, 通 过 以 上 的 分 析, 我 们 不 但 知 道 了 这 类 问 题 的 答 案, 还 知 道 了 游 戏 的 规 律, 以 及 如 何 才 能 赢 XOR, 这 个 我 们 很 早 就 学 过 的 运 算, 在 这 里 帮 了 大 忙 1 我 们 应 该 对 XOR 说 Orz 才 对! 有 兴 趣 的 读 者 可 以 写 一 个 程 序, 返 回 当 输 入 为 (M 1, M 2,, M n ) 的 时 候, 到 底 如 2 何 取 石 头, 才 能 有 赢 的 可 能 比 如, 当 输 入 为 (3, 4, 5) 的 时 候, 程 序 返 回 (1, 4, 5) 这 样 就 转 败 为 胜 了! 扩 展 问 题 1. 如 果 规 定 相 反, 取 光 所 有 石 头 的 人 输, 又 该 如 何 控 制 局 面? 1 温 馨 提 示 : 你 还 记 得 教 我 们 XOR 运 算 的 老 师 么? 这 门 课 一 定 比 较 枯 燥 吧, 如 果 当 时 能 玩 NIM 这 个 游 戏 就 好 了 2 提 一 句, 这 是 一 个 不 明 智 的 分 堆 办 法, 不 如 分 为 (6, 6), 这 样 必 赢 无 疑 编 程 之 美 微 软 技 术 面 试 心 得

18 题 目 1-12 NIM 拈 游 戏 分 析 5 2. 如 果 每 次 可 以 挑 选 任 意 K 堆, 并 从 中 任 意 取 石 头, 又 该 如 何 找 到 必 胜 策 略 呢? 编 程 之 美 微 软 技 术 面 试 心 得

19 1.1 让 CPU 占 用 率 曲 线 听 你 指 挥 1 编 程 之 美 微 软 技 术 面 试 心 得 编 程 之 美 微 软 技 术 面 试 心 得 ( 是 微 软 亚 洲 研 究 院 技 术 创 新 组 研 发 主 管 邹 欣 继 移 山 之 道 VSTS 软 件 开 发 指 南 后 的 最 新 力 作 它 传 达 给 读 者 : 微 软 重 视 什 么 样 的 能 力, 需 要 什 么 样 的 人 才 但 它 更 深 层 的 意 义 在 于 引 导 读 者 思 考, 提 倡 一 种 发 现 问 题 解 决 问 题 的 思 维 方 式, 充 分 挖 掘 编 程 的 乐 趣, 展 示 编 程 之 美 本 书 3 月 份 上 市 网 上 讨 论 和 解 答 在 : 题 目 让 CPU 占 用 率 曲 线 听 你 指 挥 问 题 写 一 个 程 序, 让 用 户 来 决 定 Windows 任 务 管 理 器 (Task Manager) 的 CPU 占 用 率 程 序 越 精 简 越 好, 计 算 机 语 言 不 限 例 如, 可 以 实 现 下 面 三 种 情 况 : 1. CPU 的 占 用 率 固 定 在 50%, 为 一 条 直 线 ; 2. CPU 的 占 用 率 为 一 条 直 线, 但 是 具 体 占 用 率 由 命 令 行 参 数 决 定 ( 参 数 范 围 1~ 100); 编 程 之 美 微 软 技 术 面 试 心 得

20 2 1.1 让 CPU 占 用 率 曲 线 听 你 指 挥 3. CPU 的 占 用 率 状 态 是 一 个 正 弦 曲 线 1 分 析 与 解 法 有 一 名 学 生 写 了 如 下 的 代 码 : while (true) if (busy) i++; else 然 后 她 就 陷 入 了 苦 苦 思 索 :else 干 什 么 呢? 怎 么 才 能 让 电 脑 不 做 事 情 呢?CPU 使 用 率 为 0 的 时 候, 到 底 是 什 么 东 西 在 用 CPU? 另 一 名 学 生 花 了 很 多 时 间 构 想 如 何 深 入 内 核, 以 控 制 CPU 占 用 率 可 是 事 情 真 的 有 这 么 复 杂 么? MSRA TTG(Microsoft Research Asia, Technology Transfer Group) 的 一 些 实 习 生 写 了 各 种 解 法, 他 们 写 的 简 单 程 序 可 以 达 到 如 图 1-1 所 示 的 效 果 图 1-1 编 码 控 制 CPU 占 用 率 呈 现 正 弦 曲 线 形 态 看 来 这 并 不 是 不 可 能 完 成 的 任 务 让 我 们 仔 细 地 回 想 一 下 写 程 序 时 曾 经 碰 到 的 问 题, 如 1 作 者 注 : 当 面 试 的 同 学 听 到 这 个 问 题 的 时 候, 很 多 人 都 有 点 意 外 我 把 我 的 笔 记 本 电 脑 交 给 他 们 说, 这 是 开 卷 考 试, 你 可 以 上 网 查 资 料, 干 什 么 都 可 以 大 部 分 面 试 者 在 电 脑 上 的 第 一 个 动 作 就 是 上 网 搜 索 CPU 控 制 50% 这 样 的 关 键 字, 当 然 没 有 找 到 什 么 直 接 的 结 果 不 过 这 本 书 出 版 以 后, 情 况 可 能 就 不 一 样 了 编 程 之 美 微 软 技 术 面 试 心 得

21 1.1 让 CPU 占 用 率 曲 线 听 你 指 挥 3 果 我 们 不 小 心 写 了 一 个 死 循 环,CPU 占 用 率 就 会 跳 到 最 高, 并 且 一 直 保 持 100% 我 们 也 可 以 打 开 任 务 管 理 器 2, 实 际 观 测 一 下 它 是 怎 样 变 动 的 凭 肉 眼 观 察, 它 大 约 是 1 秒 钟 更 新 一 次 一 般 情 况 下,CPU 使 用 率 会 很 低 但 是, 当 用 户 运 行 一 个 程 序, 执 行 一 些 复 杂 操 作 的 时 候,CPU 的 使 用 率 会 急 剧 升 高 当 用 户 晃 动 鼠 标 时,CPU 的 使 用 率 也 有 小 幅 度 的 变 化 那 当 任 务 管 理 器 报 告 CPU 使 用 率 为 0 的 时 候, 谁 在 使 用 CPU 呢? 通 过 任 务 管 理 器 的 进 程 (Process) 一 栏 可 以 看 到,System Idle Process 占 用 了 CPU 空 闲 的 时 间 这 时 候 大 家 该 回 忆 起 在 操 作 系 统 原 理 这 门 课 上 学 到 的 一 些 知 识 了 吧 系 统 中 有 那 么 多 进 程, 它 们 什 么 时 候 能 闲 下 来 呢? 答 案 很 简 单, 这 些 程 序 或 者 在 等 待 用 户 的 输 入, 或 者 在 等 待 某 些 事 件 的 发 生 (WaitForSingleObject()), 或 者 进 入 休 眠 状 态 ( 通 过 Sleep() 来 实 现 ) 在 任 务 管 理 器 的 一 个 刷 新 周 期 内,CPU 忙 ( 执 行 应 用 程 序 ) 的 时 间 和 刷 新 周 期 总 时 间 的 比 率, 就 是 CPU 的 占 用 率, 也 就 是 说, 任 务 管 理 器 中 显 示 的 是 每 个 刷 新 周 期 内 CPU 占 用 率 的 统 计 平 均 值 因 此, 我 们 写 一 个 程 序, 让 它 在 任 务 管 理 器 的 刷 新 期 间 内 一 会 儿 忙, 一 会 儿 闲, 然 后 通 过 调 节 忙 / 闲 的 比 例, 就 可 以 控 制 任 务 管 理 器 中 显 示 的 CPU 占 用 率 解 法 一 简 单 的 解 法 步 骤 1 要 操 纵 CPU 的 usage 曲 线, 就 需 要 使 CPU 在 一 段 时 间 内 ( 根 据 Task Manager 的 采 样 率 ) 跑 busy 和 idle 两 个 不 同 的 loop, 从 而 通 过 不 同 的 时 间 比 例, 来 获 得 调 节 CPU Usage 的 效 果 步 骤 2 Busy loop 可 以 通 过 执 行 空 循 环 来 实 现,idle 可 以 通 过 Sleep() 来 实 现 问 题 的 关 键 在 于 如 何 控 制 两 个 loop 的 时 间, 方 法 有 二 : Sleep 一 段 时 间, 然 后 以 for 循 环 n 次, 估 算 n 的 值 那 么 对 于 一 个 空 循 环 for(i = 0; i < n; i++); 又 该 如 何 来 估 算 这 个 最 合 适 的 n 值 呢? 我 们 都 知 道 CPU 执 行 的 是 机 器 指 令, 而 最 接 近 于 机 器 指 令 的 语 言 是 汇 编 语 言, 所 以 我 们 可 以 先 把 这 个 空 循 环 简 单 地 写 成 如 下 汇 编 代 码 后 再 进 行 分 析 : loop: mov dx i ; 将 i 置 入 dx 寄 存 器 inc dx ; 将 dx 寄 存 器 加 1 mov i dx ; 将 dx 中 的 值 赋 回 i cmp i n ; 比 较 i 和 n jl loop ;i 小 于 n 时 则 重 复 循 环 假 设 这 段 代 码 要 运 行 的 CPU 是 P4 2.4Ghz(2.4 * 10 的 9 次 方 个 时 钟 周 期 每 秒 ) 现 代 CPU 每 个 时 钟 周 期 可 以 执 行 两 条 以 上 的 代 码, 那 么 我 们 就 取 平 均 值 两 条, 于 是 让 ( * 2)/5= ( 循 环 / 秒 ), 也 就 是 说 CPU 1 秒 钟 可 以 运 行 这 个 空 循 环 次 不 过 我 们 还 是 不 能 简 单 地 将 n = , 然 后 Sleep(1000) 了 事 如 果 我 们 让 CPU 工 2 如 果 应 聘 者 从 来 没 有 琢 磨 过 任 务 管 理 器, 那 还 是 不 要 在 简 历 上 说 精 通 Windows 为 好 编 程 之 美 微 软 技 术 面 试 心 得

22 4 1.1 让 CPU 占 用 率 曲 线 听 你 指 挥 作 1 秒 钟, 然 后 休 息 1 秒 钟, 波 形 很 有 可 能 就 是 锯 齿 状 的 先 达 到 一 个 峰 值 ( 大 于 >50%), 然 后 跌 到 一 个 很 低 的 占 用 率 我 们 尝 试 着 降 低 两 个 数 量 级, 令 n = , 而 睡 眠 时 间 相 应 改 为 10 毫 秒 (Sleep(10)) 用 10 毫 秒 是 因 为 它 不 大 也 不 小, 比 较 接 近 Windows 的 调 度 时 间 片 如 果 选 得 太 小 ( 比 如 1 毫 秒 ), 则 会 造 成 线 程 频 繁 地 被 唤 醒 和 挂 起, 无 形 中 又 增 加 了 内 核 时 间 的 不 确 定 性 影 响 最 后 我 们 可 以 得 到 如 下 代 码 : 代 码 清 单 1-1 int main() for(;;) for(int i = 0; i < ; i++); Sleep(10); return 0; 在 不 断 调 整 的 参 数 后, 我 们 就 可 以 在 一 台 指 定 的 机 器 上 获 得 一 条 大 致 稳 定 的 50% CPU 占 用 率 直 线 使 用 这 种 方 法 要 注 意 两 点 影 响 : 1. 尽 量 减 少 sleep/awake 的 频 率, 如 果 频 繁 发 生, 影 响 则 会 很 大, 因 为 此 时 优 先 级 更 高 的 操 作 系 统 内 核 调 度 程 序 会 占 用 很 多 CPU 运 算 时 间 2. 尽 量 不 要 调 用 system call( 比 如 I/O 这 些 privilege instruction), 因 为 它 也 会 导 致 很 多 不 可 控 的 内 核 运 行 时 间 该 方 法 的 缺 点 也 很 明 显 : 不 能 适 应 机 器 差 异 性 一 旦 换 了 一 个 CPU, 我 们 又 得 重 新 估 算 n 值 有 没 有 办 法 动 态 地 了 解 CPU 的 运 算 能 力, 然 后 自 动 调 节 忙 / 闲 的 时 间 比 呢? 请 看 下 一 个 解 法 解 法 二 使 用 GetTickCount() 和 Sleep() 我 们 知 道 GetTickCount() 可 以 得 到 系 统 启 动 到 现 在 的 毫 秒 值, 最 多 能 够 统 计 到 49.7 天 另 外, 利 用 Sleep() 函 数, 最 多 也 只 能 精 确 到 1 毫 秒 因 此, 可 以 在 毫 秒 这 个 量 级 做 操 作 和 比 较 具 体 如 下 : 利 用 GetTickCount() 来 实 现 busy loop 的 循 环, 用 Sleep() 实 现 idle loop 伪 代 码 如 下 : 代 码 清 单 1-2 int busytime = 10; //10 ms int idletime = busytime; //same ratio will lead to 50% cpu usage 编 程 之 美 微 软 技 术 面 试 心 得

23 1.1 让 CPU 占 用 率 曲 线 听 你 指 挥 5 Int64 starttime = 0; while (true) starttime = GetTickCount(); // busy loop 的 循 环 while ((GetTickCount() - starttime) <= busytime) ; //idle loop Sleep(idleTime); 这 两 种 解 法 都 是 假 设 目 前 系 统 上 只 有 当 前 程 序 在 运 行, 但 实 际 上, 操 作 系 统 中 有 很 多 程 序 都 会 在 不 同 时 间 执 行 各 种 各 样 的 任 务, 如 果 此 刻 其 他 进 程 使 用 了 10% 的 CPU, 那 我 们 的 程 序 应 该 只 能 使 用 40% 的 CPU( 而 不 是 机 械 地 占 用 50%), 这 样 可 达 到 50% 的 效 果 怎 么 做 呢? 我 们 得 知 道 当 前 CPU 占 用 率 是 多 少, 这 就 要 用 到 另 一 个 工 具 来 帮 忙 Perfmon.exe Perfmon 是 从 Windows NT 开 始 就 包 含 在 Windows 服 务 器 和 台 式 机 操 作 系 统 的 管 理 工 具 组 中 的 专 业 监 视 工 具 之 一 ( 如 图 1-2 所 示 ) Perfmon 可 监 视 各 类 系 统 计 数 器, 获 取 有 关 操 作 系 统 应 用 程 序 和 硬 件 的 统 计 数 字 Perfmon 的 用 法 相 当 直 接, 只 要 选 择 您 所 要 监 视 的 对 象 ( 比 如 : 处 理 器 RAM 或 硬 盘 ), 然 后 选 择 所 要 监 视 的 计 数 器 ( 比 如 监 视 物 理 磁 盘 对 象 时 的 平 均 队 列 长 度 ) 即 可 还 可 以 选 择 所 要 监 视 的 实 例, 比 如 面 对 一 台 多 CPU 服 务 器 时, 可 以 选 择 监 视 特 定 的 处 理 器 图 1-2 系 统 监 视 器 (Perfmon) 我 们 可 以 写 程 序 来 查 询 Perfmon 的 值,Microsoft.Net Framework 提 供 了 PerformanceCounter() 这 一 类 型, 从 而 可 以 方 便 地 拿 到 当 前 各 种 计 算 机 性 能 数 据, 包 括 CPU 的 使 用 率 例 如 下 面 这 个 程 序 解 法 三 能 动 态 适 应 的 解 法 编 程 之 美 微 软 技 术 面 试 心 得

24 6 1.1 让 CPU 占 用 率 曲 线 听 你 指 挥 代 码 清 单 1-3 //C# code static void MakeUsage(float level) PerformanceCounter p = new PerformanceCounter("Processor", "% Processor Time", "_Total"); while (true) if (p.nextvalue() > level) System.Threading.Thread.Sleep(10); 可 以 看 到, 上 面 的 解 法 能 方 便 地 处 理 各 种 CPU 使 用 率 参 数 这 个 程 序 可 以 解 答 前 面 提 到 的 问 题 2 有 了 前 面 的 积 累, 我 们 应 该 可 以 让 任 务 管 理 器 画 出 优 美 的 正 弦 曲 线 了, 见 下 面 的 代 码 解 法 四 正 弦 曲 线 代 码 清 单 1-4 //C++ code to make task manager generate sine graph #include "Windows.h" #include "stdlib.h" #include "math.h" const double SPLIT = 0.01; const int COUNT = 200; const double PI = ; const int INTERVAL = 300; int _tmain(int argc, _TCHAR* argv[]) DWORD busyspan[count]; //array of busy times DWORD idlespan[count]; //array of idle times int half = INTERVAL / 2; double radian = 0.0; for(int i = 0; i < COUNT; i++) busyspan[i] = (DWORD)(half + (sin(pi * radian) * half)); idlespan[i] = INTERVAL - busyspan[i]; radian += SPLIT; DWORD starttime = 0; int j = 0; while (true) j = j % COUNT; starttime = GetTickCount(); while ((GetTickCount() - starttime) <= busyspan[j]) ; Sleep(idleSpan[j]); j++; return 0; 编 程 之 美 微 软 技 术 面 试 心 得

25 1.1 让 CPU 占 用 率 曲 线 听 你 指 挥 7 讨 论 如 果 机 器 是 多 CPU, 上 面 的 程 序 会 出 现 什 么 结 果? 如 何 在 多 个 CPU 时 显 示 同 样 的 状 态? 例 如, 在 双 核 的 机 器 上, 如 果 让 一 个 单 线 程 的 程 序 死 循 环, 能 让 两 个 CPU 的 使 用 率 达 到 50% 的 水 平 么? 为 什 么? 多 CPU 的 问 题 首 先 需 要 获 得 系 统 的 CPU 信 息 可 以 使 用 GetProcessorInfo() 获 得 多 处 理 器 的 信 息, 然 后 指 定 进 程 在 哪 一 个 处 理 器 上 运 行 其 中 指 定 运 行 使 用 的 是 SetThreadAffinityMask() 函 数 另 外, 还 可 以 使 用 RDTSC 指 令 获 取 当 前 CPU 核 心 运 行 周 期 数 在 x86 平 台 上 定 义 函 数 : inline int64 GetCPUTickCount() asm rdtsc; 在 x64 平 台 上 定 义 : #define GetCPUTickCount() rdtsc() 使 用 CallNtPowerInformation API 得 到 CPU 频 率, 从 而 将 周 期 数 转 化 为 毫 秒 数, 例 如 : 代 码 清 单 1-5 _PROCESSOR_POWER_INFORMATION info; CallNTPowerInformation(11, //query processor power information NULL, //no input buffer 0, //input buffer size is zero &info, //output buffer Sizeof(info)); //outbuf size int64 t_begin = GetCPUTickCount(); //do something int64 t_end = GetCPUTickCount(); double millisec = ((double)t_end (double)t_begin)/(double)info.currentmhz; RDTSC 指 令 读 取 当 前 CPU 的 周 期 数, 在 多 CPU 系 统 中, 这 个 周 期 数 在 不 同 的 CPU 之 间 基 数 不 同, 频 率 也 有 可 能 不 同 用 从 两 个 不 同 的 CPU 得 到 的 周 期 数 作 计 算 会 得 出 没 有 意 义 的 值 如 果 线 程 在 运 行 中 被 调 度 到 了 不 同 的 CPU, 就 会 出 现 上 述 情 况 可 用 SetThreadAffinityMask 避 免 线 程 迁 移 另 外,CPU 的 频 率 会 随 系 统 供 电 及 负 荷 情 况 有 所 调 整 总 结 能 帮 助 你 了 解 当 前 线 程 / 进 程 / 系 统 效 能 的 API 大 致 有 以 下 这 些 : 编 程 之 美 微 软 技 术 面 试 心 得

26 8 1.1 让 CPU 占 用 率 曲 线 听 你 指 挥 1. Sleep() 这 个 方 法 能 让 当 前 线 程 停 下 来 2. WaitForSingleObject() 自 己 停 下 来, 等 待 某 个 事 件 发 生 3. GetTickCount() 有 人 把 Tick 翻 译 成 嘀 嗒, 很 形 象 4. QueryPerformanceFrequency() QueryPerformanceCounter() 让 你 访 问 到 精 度 更 高 的 CPU 数 据 5. timegetsystemtime() 是 另 一 个 得 到 高 精 度 时 间 的 方 法 6. PerformanceCounter 效 能 计 数 器 7. GetProcessorInfo()/SetThreadAffinityMask() 遇 到 多 核 的 问 题 怎 么 办 呢? 这 两 个 方 法 能 够 帮 你 更 好 地 控 制 CPU 8. GetCPUTickCount() 想 拿 到 CPU 核 心 运 行 周 期 数 吗? 用 用 这 个 方 法 吧 了 解 并 应 用 了 上 面 的 API, 就 可 以 考 虑 在 简 历 中 写 上 精 通 Windows 了 编 程 之 美 微 软 技 术 面 试 心 得

27 写 书 评, 赢 取 编 程 之 美 -- 微 软 技 术 面 试 心 得 不 要 被 阶 乘 吓 倒 阶 乘 (Factorial) 是 个 很 有 意 思 的 函 数, 但 是 不 少 人 都 比 较 怕 它, 我 们 来 看 看 两 个 与 阶 乘 相 关 的 问 题 : 1. 给 定 一 个 整 数 N, 那 么 N 的 阶 乘 N! 末 尾 有 多 少 个 0 呢? 例 如 :N=10,N!= , N! 的 末 尾 有 两 个 0 2. 求 N! 的 二 进 制 表 示 中 最 低 位 1 的 位 置

28 写 书 评, 赢 取 编 程 之 美 -- 微 软 技 术 面 试 心 得 分 析 与 解 法 有 些 人 碰 到 这 样 的 题 目 会 想 : 是 不 是 要 完 整 计 算 出 N! 的 值? 如 果 溢 出 怎 么 办? 事 实 上, 如 果 我 们 从 哪 些 数 相 乘 能 得 到 10 这 个 角 度 来 考 虑, 问 题 就 变 得 简 单 了 首 先 考 虑, 如 果 N!= K 10 M, 且 K 不 能 被 10 整 除, 那 么 N! 末 尾 有 M 个 0 再 考 虑 对 N! 进 行 质 因 数 分 解,N!=(2 x ) (3 y ) (5 z ), 由 于 10 = 2 5, 所 以 M 只 跟 X 和 Z 相 关, 每 一 对 2 和 5 相 乘 可 以 得 到 一 个 10, 于 是 M = min(x, Z) 不 难 看 出 X 大 于 等 于 Z, 因 为 能 被 2 整 除 的 数 出 现 的 频 率 比 能 被 5 整 除 的 数 高 得 多, 所 以 把 公 式 简 化 为 M = Z 根 据 上 面 的 分 析, 只 要 计 算 出 Z 的 值, 就 可 以 得 到 N! 末 尾 0 的 个 数 问 题 1 的 解 法 一 要 计 算 Z, 最 直 接 的 方 法, 就 是 计 算 i(i =1, 2,, N) 的 因 式 分 解 中 5 的 指 数, 然 后 求 和 : 代 码 清 单 2-6 ret = 0; for(i = 1; i <= N; i++) j = i; while(j % 5 ==0) ret++; j /= 5; 问 题 1 的 解 法 二 公 式 :Z = [N/5] +[N/5 2 ] +[N/5 3 ] + ( 不 用 担 心 这 会 是 一 个 无 穷 的 运 算, 因 为 总 存 在 一 个 K, 使 得 5 K > N,[N/5 K ]=0 ) 公 式 中,[N/5] 表 示 不 大 于 N 的 数 中 5 的 倍 数 贡 献 一 个 5,[N/5 2 ] 表 示 不 大 于 N 的 数 中 5 2 的 倍 数 再 贡 献 一 个 5, 代 码 如 下 : ret = 0; while(n) ret += N / 5; N /= 5; 问 题 2 要 求 的 是 N! 的 二 进 制 表 示 中 最 低 位 1 的 位 置 给 定 一 个 整 数 N, 求 N! 二 进 制 表 示 的 最 低 位 1 在 第 几 位? 例 如 : 给 定 N = 3,N!= 6, 那 么 N! 的 二 进 制 表 示 (1 010) 的 最 低 位 1 在 第 二 位

29 写 书 评, 赢 取 编 程 之 美 -- 微 软 技 术 面 试 心 得 为 了 得 到 更 好 的 解 法, 首 先 要 对 题 目 进 行 一 下 转 化 首 先 来 看 一 下 一 个 二 进 制 数 除 以 2 的 计 算 过 程 和 结 果 是 怎 样 的 把 一 个 二 进 制 数 除 以 2, 实 际 过 程 如 下 : 判 断 最 后 一 个 二 进 制 位 是 否 为 0, 若 为 0, 则 将 此 二 进 制 数 右 移 一 位, 即 为 商 值 ( 为 什 么 ); 反 之, 若 为 1, 则 说 明 这 个 二 进 制 数 是 奇 数, 无 法 被 2 整 除 ( 这 又 是 为 什 么 ) 所 以, 这 个 问 题 实 际 上 等 同 于 求 N! 含 有 质 因 数 2 的 个 数 即 答 案 等 于 N! 含 有 质 因 数 2 的 个 数 加 1 问 题 2 的 解 法 一 由 于 N! 中 含 有 质 因 数 2 的 个 数, 等 于 N/2 + N/4 + N/8 + N/16 + 1, 根 据 上 述 分 析, 得 到 具 体 算 法, 如 下 所 示 : 代 码 清 单 2-7 int lowestone(int N) int Ret = 0; while(n) N >>= 1; Ret += N; return Ret; 问 题 2 的 解 法 二 N! 含 有 质 因 数 2 的 个 数, 还 等 于 N 减 去 N 的 二 进 制 表 示 中 1 的 数 目 我 们 还 可 以 通 过 这 个 规 律 来 求 解 下 面 对 这 个 规 律 进 行 举 例 说 明, 假 设 N = 11011, 那 么 N! 中 含 有 质 因 数 2 的 个 数 为 N/2 + N/4 + N/8 + N/16 + 即 : =( ) +( ) +(10 + 1) + 1 =( )+( )+ 1 = =( )+(1000-1)+(10-1)+(1-1) 1 这 个 规 律 请 读 者 自 己 证 明 ( 提 示 N/k, 等 于 1, 2, 3,, N 中 能 被 k 整 除 的 数 的 个 数 )

30 写 书 评, 赢 取 编 程 之 美 -- 微 软 技 术 面 试 心 得 = N 二 进 制 表 示 中 1 的 个 数 小 结 任 意 一 个 长 度 为 m 的 二 进 制 数 N 可 以 表 示 为 N = b[1] + b[2] * 2 + b[3] * b[m] * 2 (m-1), 其 中 b [ i ] 表 示 此 二 进 制 数 第 i 位 上 的 数 字 (1 或 0) 所 以, 若 最 低 位 b[1] 为 1, 则 说 明 N 为 奇 数 ; 反 之 为 偶 数, 将 其 除 以 2, 即 等 于 将 整 个 二 进 制 数 向 低 位 移 一 位 相 关 题 目 给 定 整 数 n, 判 断 它 是 否 为 2 的 方 幂 ( 解 答 提 示 :n>0&&((n&(n-1))==0))

31 写 书 评, 赢 取 编 程 之 美 微 软 技 术 面 试 心 得 中 国 象 棋 将 帅 问 题 下 过 中 国 象 棋 的 朋 友 都 知 道, 双 方 的 将 和 帅 相 隔 遥 远, 并 且 它 们 不 能 照 面 在 象 棋 残 局 中, 许 多 高 手 能 利 用 这 一 规 则 走 出 精 妙 的 杀 招 假 设 棋 盘 上 只 有 将 和 帅 二 子 ( 如 图 1-3 所 示 )( 为 了 下 面 叙 述 方 便, 我 们 约 定 用 A 表 示 将,B 表 示 帅 ): 图 1-3 A B 二 子 被 限 制 在 己 方 3 3 的 格 子 里 运 动 例 如, 在 如 上 的 表 格 里,A 被 正 方 形 d 10, f 10, d 8, f 8 包 围, 而 B 被 正 方 形 d 3, f 3, d 1, f 1 包 围 每 一 步,A B 分 别 可 以 横 向 或 纵 向 移 动 一 格, 但 不 能 沿 对 角 线 移 动 另 外,A 不 能 面 对 B, 也 就 是 说,A 和 B 不 能 处 于 同 一 纵 向 直 线 上 ( 比 如 A 在 d 10 的 位 置, 那 么 B 就 不 能 在 d 1 d 2 以 及 d 3 ) 请 写 出 一 个 程 序, 输 出 A B 所 有 合 法 位 置 要 求 在 代 码 中 只 能 使 用 一 个 变 量

32 写 书 评, 赢 取 编 程 之 美 微 软 技 术 面 试 心 得 分 析 与 解 法 问 题 的 本 身 并 不 复 杂, 只 要 把 所 有 A B 互 相 排 斥 的 条 件 列 举 出 来 就 可 以 完 成 本 题 的 要 求 由 于 本 题 要 求 只 能 使 用 一 个 变 量, 所 以 必 须 首 先 想 清 楚 在 写 代 码 的 时 候, 有 哪 些 信 息 需 要 存 储, 并 且 尽 量 高 效 率 地 存 储 信 息 稍 微 思 考 一 下, 可 以 知 道 这 个 程 序 的 大 体 框 架 是 : 遍 历 A 的 位 置 遍 历 B 的 位 置 判 断 A B 的 位 置 组 合 是 否 满 足 要 求 如 果 满 足, 则 输 出 因 此, 需 要 存 储 的 是 A B 的 位 置 信 息, 并 且 每 次 循 环 都 要 更 新 为 了 能 够 进 行 判 断, 首 先 需 要 创 建 一 个 逻 辑 的 坐 标 系 统, 以 便 检 测 A 何 时 会 面 对 B 这 里 我 们 想 到 的 方 法 是 用 1~9 的 数 字, 按 照 行 优 先 的 顺 序 来 表 示 每 个 格 点 的 位 置 ( 如 图 1-4 所 示 ) 这 样, 只 需 要 用 模 余 运 算 就 可 以 得 到 当 前 的 列 号, 从 而 判 断 A B 是 否 互 斥 图 1-4 用 1~9 的 数 字 表 示 A B 的 坐 标 第 二, 题 目 要 求 只 用 一 个 变 量, 但 是 我 们 却 要 存 储 A 和 B 两 个 子 的 位 置 信 息, 该 怎 么 办 呢? 可 以 先 把 已 知 变 量 类 型 列 举 一 下, 然 后 做 些 分 析 对 于 bool 类 型, 估 计 没 有 办 法 做 任 何 扩 展 了, 因 为 它 只 能 表 示 true 和 false 两 个 值 ; 而 byte 或 者 int 类 型, 它 们 能 够 表 达 的 信 息 则 更 多 事 实 上, 对 本 题 来 说, 每 个 子 都 只 需 要 9 个 数 字 就 可 以 表 达 它 的 全 部 位 置 一 个 8 位 的 byte 类 型 能 够 表 达 2 8 =256 个 值, 所 以 用 它 来 表 示 A B 的 位 置 信 息 绰 绰 有 余, 因 此 可 以 把 这 个 字 节 的 变 量 ( 设 为 b) 分 成 两 部 分 用 前 面 的 4 bit 表 示 A 的 位 置, 用 后 面 的 4 bit 表 示 B 的 位 置, 那 么 4 个 bit 可 以 表 示 16 个 数, 这 已 经 足 够 了 问 题 在 于 : 如 何 使 用 bit 级 的 运 算 将 数 据 从 这 一 byte 变 量 的 左 边 和 右 边 分 别 存 入 和 读 出 下 面 是 做 法 : 将 byte b( ) 的 右 边 4 bit(0101) 设 为 n(0011): 首 先 清 除 b 右 边 的 bits, 同 时 保 持 左 边 的 bits:

33 写 书 评, 赢 取 编 程 之 美 微 软 技 术 面 试 心 得 (LMASK) & (b) 然 后 将 上 一 步 得 到 的 结 果 与 n 做 或 运 算 (LMASK & b) ^ (n) 将 byte b( ) 左 边 的 4 bit(1010) 设 为 n(0011): 首 先, 清 除 b 左 边 的 bits, 同 时 保 持 右 边 的 bits: (RMASK) & (b) 现 在, 把 n 移 动 到 byte 数 据 的 左 边 n << 4 = 然 后 对 以 上 两 步 得 到 的 结 果 做 或 运 算, 从 而 得 到 最 终 结 果 (RMASK & b) ^ (n << 4)

34 写 书 评, 赢 取 编 程 之 美 微 软 技 术 面 试 心 得 得 到 byte 数 据 的 右 边 4 bits 或 左 边 4 bits(e.g 中 的 1010 以 及 0101): 清 除 b 左 边 的 bits, 同 时 保 持 右 边 的 bits (RMASK) & (b) 清 除 b 的 右 边 的 bits, 同 时 保 持 左 边 的 bits (LMASK) & (b) 将 结 果 右 移 4 bits >> 4 = 最 后 的 挑 战 是 如 何 在 不 声 明 其 他 变 量 约 束 的 前 提 下 创 建 一 个 for 循 环 可 以 重 复 利 用 1byte 的 存 储 单 元, 把 它 作 为 循 环 计 数 器 并 用 前 面 提 到 的 存 取 和 读 入 技 术 进 行 操 作 还 可 以 用 宏 来 抽 象 化 代 码, 例 如 : for (LSET(b, 1); LGET(b) <= GRIDW * GRIDW; LSET(b, (LGET(b) + 1))) 解 法 一 代 码 清 单 1-6 #define HALF_BITS_LENGTH 4 // 这 个 值 是 记 忆 存 储 单 元 长 度 的 一 半, 在 这 道 题 里 是 4bit #define FULLMASK 255 // 这 个 数 字 表 示 一 个 全 部 bit 的 mask, 在 二 进 制 表 示 中, 它 是 #define LMASK (FULLMASK << HALF_BITS_LENGTH) // 这 个 宏 表 示 左 bits 的 mask, 在 二 进 制 表 示 中, 它 是 #define RMASK (FULLMASK >> HALF_BITS_LENGTH) // 这 个 数 字 表 示 右 bits 的 mask, 在 二 进 制 表 示 中, 它 表 示 #define RSET(b, n) (b = ((LMASK & b) ^ n)) // 这 个 宏, 将 b 的 右 边 设 置 成 n #define LSET(b, n) (b = ((RMASK & b) ^ (n << HALF_BITS_LENGTH))) // 这 个 宏, 将 b 的 左 边 设 置 成 n #define RGET(b) (RMASK & b) // 这 个 宏 得 到 b 的 右 边 的 值 #define LGET(b) ((LMASK & b) >> HALF_BITS_LENGTH) // 这 个 宏 得 到 b 的 左 边 的 值 #define GRIDW 3 // 这 个 数 字 表 示 将 帅 移 动 范 围 的 行 宽 度 #include <stdio.h> #define HALF_BITS_LENGTH 4 #define FULLMASK 255 #define LMASK (FULLMASK << HALF_BITS_LENGTH) #define RMASK (FULLMASK >> HALF_BITS_LENGTH) #define RSET(b, n) (b = ((LMASK & b) ^ n)) #define LSET(b, n) (b = ((RMASK & b) ^ (n << HALF_BITS_LENGTH))) #define RGET(b) (RMASK & b) #define LGET(b) ((LMASK & b) >> HALF_BITS_LENGTH) #define GRIDW 3

35 写 书 评, 赢 取 编 程 之 美 微 软 技 术 面 试 心 得 int main() unsigned char b; for(lset(b, 1); LGET(b) <= GRIDW * GRIDW; LSET(b, (LGET(b) + 1))) for(rset(b, 1); RGET(b) <= GRIDW * GRIDW; RSET(b, (RGET(b) + 1))) if(lget(b) % GRIDW!= RGET(b) % GRIDW) printf("a = %d, B = %d\n", LGET(b), RGET(b)); return 0; 输 出 格 子 的 位 置 用 N 来 表 示,N = 1, 2,, 8, 9, 依 照 行 优 先 的 顺 序, 如 图 1-5 所 示 : 将 (A) 的 格 子 帅 (B) 的 格 子 图 1-5

36 写 书 评, 赢 取 编 程 之 美 微 软 技 术 面 试 心 得 A = 1, B = 2 A = 1, B = 3 A = 1, B = 5 A = 1, B = 6 A = 1, B = 8 A = 1, B = 9 A = 2, B = 1 A = 2, B = 3 A = 2, B = 4 A = 2, B = 6 A = 2, B = 7 A = 2, B = 9 A = 3, B = 1 A = 3, B = 2 A = 3, B = 4 A = 3, B = 5 A = 3, B = 7 A = 3, B = 8 A = 4, B = 2 A = 4, B = 3 A = 4, B = 5 A = 4, B = 6 A = 4, B = 8 A = 4, B = 9 A = 5, B = 1 A = 5, B = 3 A = 5, B = 4 A = 5, B = 6 A = 5, B = 7 A = 5, B = 9 A = 6, B = 1 A = 6, B = 2 A = 6, B = 4 A = 6, B = 5 A = 6, B = 7 A = 6, B = 8 A = 7, B = 2 A = 7, B = 3 A = 7, B = 5 A = 7, B = 6 A = 7, B = 8 A = 7, B = 9 A = 8, B = 1 A = 8, B = 3 A = 8, B = 4 A = 8, B = 6 A = 8, B = 7 A = 8, B = 9 A = 9, B = 1 A = 9, B = 2 A = 9, B = 4 A = 9, B = 5 A = 9, B = 7 A = 9, B = 8 考 虑 了 这 么 多 因 素, 总 算 得 到 了 本 题 的 一 个 解 法, 但 是 MSRA 里 却 有 人 说, 下 面 的 一 小 段 代 码 也 能 达 到 同 样 的 目 的 : BYTE i = 81; while(i--) if(i / 9 % 3 == i % 9 % 3) continue; printf( A = %d, B = %d\n, i / 9 + 1, i % 9 + 1); 但 是 很 快 又 有 另 一 个 人 说 他 的 解 法 才 是 效 率 最 高 的 :

37 代 码 清 单 1-7 写 书 评, 赢 取 编 程 之 美 微 软 技 术 面 试 心 得 struct unsigned char a:4; unsigned char b:4; i; for(i.a = 1; i.a <= 9; i.a++) for(i.b = 1; i.b <= 9; i.b++) if(i.a % 3 == i.b % 3) printf( A = %d, B = %d\n, i.a, i.b); 读 者 能 自 己 证 明 一 下 么? 1 1 这 一 题 目 由 微 软 亚 洲 研 究 院 工 程 师 Matt Scott 提 供, 他 在 学 习 中 国 象 棋 的 时 候 想 出 了 这 个 题 目, 后 来 一 位 应 聘 者 给 出 了 比 他 的 正 解 简 明 很 多 的 答 案, 他 们 现 在 成 了 同 事

38 写 书 评, 赢 取 编 程 之 美 -- 微 软 技 术 面 试 心 得 子 数 组 的 最 大 乘 积 给 定 一 个 长 度 为 N 的 整 数 数 组, 只 允 许 用 乘 法, 不 能 用 除 法, 计 算 任 意 (N-1) 个 数 的 组 合 乘 积 中 最 大 的 一 组, 并 写 出 算 法 的 时 间 复 杂 度 我 们 把 所 有 可 能 的 (N-1) 个 数 的 组 合 找 出 来, 分 别 计 算 它 们 的 乘 积, 并 比 较 大 小 由 于 总 共 有 N 个 (N-1) 个 数 的 组 合, 总 的 时 间 复 杂 度 为 O(N 2 ), 但 显 然 这 不 是 最 好 的 解 法

39 写 书 评, 赢 取 编 程 之 美 -- 微 软 技 术 面 试 心 得 分 析 与 解 法 解 法 一 在 计 算 机 科 学 中, 时 间 和 空 间 往 往 是 一 对 矛 盾 体, 不 过, 这 里 有 一 个 优 化 的 折 中 方 法 可 以 通 过 空 间 换 时 间 或 时 间 换 空 间 的 策 略 来 达 到 优 化 某 一 方 面 的 效 果 在 这 里, 是 否 可 以 通 过 空 间 换 时 间 来 降 低 时 间 复 杂 度 呢? 计 算 (N-1) 个 数 的 组 合 乘 积, 假 设 第 i 个 (0 i N-1) 元 素 被 排 除 在 乘 积 之 外 ( 如 图 2-13 所 示 ) 图 2-13 组 合 示 意 图 设 array[] 为 初 始 数 组,s[i] 表 示 数 组 前 i 个 元 素 的 乘 积, 其 中 1 i N,s[0] = 1( 边 界 条 件 ), 那 么 s[i]= s[i-1] array[i-1], 其 中 i = 1, 2,, N-1, N; 设 t[i] 表 示 数 组 后 (N-i) 个 元 素 的 乘 积, 其 中 1 i N,t[N+1]=1 ( 边 界 条 件 ), 那 么 t[i]=t[i+1] array[i], 其 中 i=1, 2,, N-1, N; 那 么 设 p[i] 为 数 组 除 第 i 个 元 素 外, 其 他 N-1 个 元 素 的 乘 积, 即 有 : p[i]=s[i-1] t[i+1] 由 于 只 需 要 从 头 至 尾, 和 从 尾 至 头 扫 描 数 组 两 次 即 可 得 到 数 组 s[] 和 t[], 进 而 线 性 时 间 可 以 得 到 p[] 所 以, 很 容 易 就 可 以 得 到 p[] 的 最 大 值 ( 只 需 遍 历 p[] 一 次 ) 总 的 时 间 复 杂 度 等 于 计 算 数 组 s[] t[] p[] 的 时 间 复 杂 度 加 上 查 找 p[] 最 大 值 的 时 间 复 杂 度 等 于 O(N)

40 写 书 评, 赢 取 编 程 之 美 -- 微 软 技 术 面 试 心 得 解 法 二 其 实, 还 可 以 通 过 分 析, 进 一 步 减 少 解 答 问 题 的 计 算 量 假 设 N 个 整 数 的 乘 积 为 P, 针 对 P 的 正 负 性 进 行 如 下 分 析 ( 其 中,A N-1 表 示 N-1 个 数 的 组 合,P N-1 表 示 N-1 个 数 的 组 合 的 乘 积 ): 1. P 为 0 那 么, 数 组 中 至 少 包 含 有 一 个 0 假 设 除 去 一 个 0 之 外, 其 他 N-1 个 数 的 乘 积 为 Q, 根 据 Q 的 正 负 性 进 行 讨 论 : Q 为 0 说 明 数 组 中 至 少 有 两 个 0, 那 么 N-1 个 数 的 乘 积 只 能 为 0, 返 回 0; Q 为 正 数 返 回 Q, 因 为 如 果 以 0 替 换 此 时 A N-1 中 的 任 一 个 数, 所 得 到 的 P N-1 为 0, 必 然 小 于 Q; Q 为 负 数 如 果 以 0 替 换 此 时 A N-1 中 的 任 一 个 数, 所 得 到 的 P N-1 为 0, 大 于 Q, 乘 积 最 大 值 为 0 2. P 为 负 数 根 据 负 负 得 正 的 乘 法 性 质, 自 然 想 到 从 N 个 整 数 中 去 掉 一 个 负 数, 使 得 P N-1 为 一 个 正 数 而 要 使 这 个 正 数 最 大, 这 个 被 去 掉 的 负 数 的 绝 对 值 必 须 是 数 组 中 最 小 的 我 们 只 需 要 扫 描 一 遍 数 组, 把 绝 对 值 最 小 的 负 数 给 去 掉 就 可 以 了

41 写 书 评, 赢 取 编 程 之 美 -- 微 软 技 术 面 试 心 得 3. P 为 正 数 类 似 P 为 负 数 的 情 况, 应 该 去 掉 一 个 绝 对 值 最 小 的 正 数 值, 这 样 得 到 的 P N-1 就 是 最 大 的 上 面 的 解 法 采 用 了 直 接 求 N 个 整 数 的 乘 积 P, 进 而 判 断 P 的 正 负 性 的 办 法, 但 是 直 接 求 乘 积 在 编 译 环 境 下 往 往 会 有 溢 出 的 危 险 ( 这 也 就 是 本 题 要 求 不 使 用 除 法 的 潜 在 用 意 ), 事 实 上 可 做 一 个 小 的 转 变, 不 需 要 直 接 求 乘 积, 而 是 求 出 数 组 中 正 数 (+) 负 数 (-) 和 0 的 个 数, 从 而 判 断 P 的 正 负 性, 其 余 部 分 与 以 上 面 的 解 法 相 同 在 时 间 复 杂 度 方 面, 由 于 只 需 要 遍 历 数 组 一 次, 在 遍 历 数 组 的 同 时 就 可 得 到 数 组 中 正 数 (+) 负 数 (-) 和 0 的 个 数, 以 及 数 组 中 绝 对 值 最 小 的 正 数 和 负 数, 时 间 复 杂 度 为 O(N)

42 写 书 评, 赢 取 编 程 之 美 -- 微 软 技 术 面 试 心 得 寻 找 发 帖 水 王 Tango 是 微 软 亚 洲 研 究 院 的 一 个 试 验 项 目 研 究 院 的 员 工 和 实 习 生 们 都 很 喜 欢 在 Tango 上 面 交 流 灌 水 传 说,Tango 有 一 大 水 王, 他 不 但 喜 欢 发 贴, 还 会 回 复 其 他 ID 发 的 每 个 帖 子 坊 间 风 闻 该 水 王 发 帖 数 目 超 过 了 帖 子 总 数 的 一 半 如 果 你 有 一 个 当 前 论 坛 上 所 有 帖 子 ( 包 括 回 帖 ) 的 列 表, 其 中 帖 子 作 者 的 ID 也 在 表 中, 你 能 快 速 找 出 这 个 传 说 中 的 Tango 水 王 吗?

43 写 书 评, 赢 取 编 程 之 美 -- 微 软 技 术 面 试 心 得 分 析 与 解 法 首 先 想 到 的 是 一 个 最 直 接 的 方 法, 我 们 可 以 对 所 有 ID 进 行 排 序 然 后 再 扫 描 一 遍 排 好 序 的 ID 列 表, 统 计 各 个 ID 出 现 的 次 数 如 果 某 个 ID 出 现 的 次 数 超 过 总 数 的 一 半, 那 么 就 输 出 这 个 ID 这 个 算 法 的 时 间 复 杂 度 为 O(N * log 2 N + N) 如 果 ID 列 表 已 经 是 有 序 的, 还 需 要 扫 描 一 遍 整 个 列 表 来 统 计 各 个 ID 出 现 的 次 数 吗? 如 果 一 个 ID 出 现 的 次 数 超 过 总 数 N 的 一 半 那 么, 无 论 水 王 的 ID 是 什 么, 这 个 有 序 的 ID 列 表 中 的 第 N/2 项 ( 从 0 开 始 编 号 ) 一 定 会 是 这 个 ID( 读 者 可 以 试 着 证 明 一 下 ) 省 去 重 新 扫 描 一 遍 列 表, 可 以 节 省 一 点 算 法 耗 费 的 时 间 如 果 能 够 迅 速 定 位 到 列 表 的 某 一 项 ( 比 如 使 用 数 组 来 存 储 列 表 ), 除 去 排 序 的 时 间 复 杂 度, 后 处 理 需 要 的 时 间 为 O(1) 但 上 面 两 种 方 法 都 需 要 先 对 ID 列 表 进 行 排 序, 时 间 复 杂 度 方 面 没 有 本 质 的 改 进 能 否 避 免 排 序 呢? 如 果 每 次 删 除 两 个 不 同 的 ID( 不 管 是 否 包 含 水 王 的 ID), 那 么, 在 剩 下 的 ID 列 表 中, 水 王 ID 出 现 的 次 数 仍 然 超 过 总 数 的 一 半 看 到 这 一 点 之 后, 就 可 以 通 过 不 断 重 复 这 个 过 程, 把 ID 列 表 中 的 ID 总 数 降 低 ( 转 化 为 更 小 的 问 题 ), 从 而 得 到 问 题 的 答 案 新 的 思 路, 避 免 了 排 序 这 个 耗 时 的 步 骤, 总 的 时 间 复 杂 度 只 有 O(N), 且 只 需 要 常 数 的 额 外 内 存 伪 代 码 如 下 : 代 码 清 单 2-8 Type Find(Type* ID, int N) Type candidate; int ntimes, i; for(i = ntimes = 0; i < N; i++) if(ntimes == 0) candidate = ID[i], ntimes = 1; else if(candidate == ID[i]) ntimes++; else ntimes--; return candidate; 在 这 个 题 目 中, 有 一 个 计 算 机 科 学 中 很 普 遍 的 思 想, 就 是 如 何 把 一 个 问 题 转 化 为 规 模 较 小 的 若 干 个 问 题 分 治 递 推 和 贪 心 等 都 是 基 于 这 样 的 思 路 在 转 化 过 程 中, 小 的 问 题 跟 原 问 题 本 质 上 一 致 这 样, 我 们 可 以 通 过 同 样 的 方 式 将 小 问 题 转 化 为 更 小 的 问 题 因 此, 转 化 过 程 是 很 重 要 的 像 上 面 这 个 题 目, 我 们 保 证 了 问 题 的 解 在 小 问 题 中 仍 然 具 有 与 原 问 题 相 同

44 写 书 评, 赢 取 编 程 之 美 -- 微 软 技 术 面 试 心 得 的 性 质 : 水 王 的 ID 在 ID 列 表 中 的 次 数 超 过 一 半 转 化 本 身 计 算 的 效 率 越 高, 转 化 之 后 问 题 规 模 缩 小 得 越 快, 则 整 体 算 法 的 时 间 复 杂 度 越 低 扩 展 问 题 随 着 Tango 的 发 展, 管 理 员 发 现, 超 级 水 王 没 有 了 统 计 结 果 表 明, 有 3 个 发 帖 很 多 的 ID, 他 们 的 发 帖 数 目 都 超 过 了 帖 子 总 数 目 N 的 1/4 你 能 从 发 帖 ID 列 表 中 快 速 找 出 他 们 的 ID 吗?

45 写 书 评, 赢 取 编 程 之 美 -- 微 软 技 术 面 试 心 得 寻 找 最 大 的 K 个 数 在 面 试 中, 有 下 面 的 问 答 : 问 : 有 很 多 个 无 序 的 数, 我 们 姑 且 假 定 它 们 各 不 相 等, 怎 么 选 出 其 中 最 大 的 若 干 个 数 呢? 答 : 可 以 这 样 写 :int array[100] 问 : 好, 如 果 有 更 多 的 元 素 呢? 答 : 那 可 以 改 为 :int array[1000] 问 : 如 果 我 们 有 很 多 元 素, 例 如 1 亿 个 浮 点 数, 怎 么 办? 答 : 个, 十, 百, 千, 万 那 可 以 写 :float array [ ] 问 : 这 样 的 程 序 能 编 译 运 行 么? 答 : 嗯 我 从 来 没 写 过 这 么 多 的 0

46 写 书 评, 赢 取 编 程 之 美 -- 微 软 技 术 面 试 心 得 分 析 与 解 法 解 法 一 当 学 生 们 信 笔 写 下 float array [ ], 他 们 往 往 没 有 想 到 这 个 数 据 结 构 要 如 何 在 电 脑 上 实 现, 是 从 当 前 程 序 的 栈 (Stack) 中 分 配, 还 是 堆 (Heap), 还 是 电 脑 的 内 存 也 许 放 不 下 这 么 大 的 东 西? 我 们 先 假 设 元 素 的 数 量 不 大, 例 如 在 几 千 个 左 右, 在 这 种 情 况 下, 那 我 们 就 排 序 一 下 吧 在 这 里, 快 速 排 序 或 堆 排 序 都 是 不 错 的 选 择, 他 们 的 平 均 时 间 复 杂 度 都 是 O(N * log 2 N) 然 后 取 出 前 K 个,O(K) 总 时 间 复 杂 度 O (N * log 2 N)+ O(K) = O(N * log 2 N) 你 一 定 注 意 到 了, 当 K=1 时, 上 面 的 算 法 也 是 O(N * log 2 N) 的 复 杂 度, 而 显 然 我 们 可 以 通 过 N-1 次 的 比 较 和 交 换 得 到 结 果 上 面 的 算 法 把 整 个 数 组 都 进 行 了 排 序, 而 原 题 目 只 要 求 最 大 的 K 个 数, 并 不 需 要 前 K 个 数 有 序, 也 不 需 要 后 N-K 个 数 有 序 怎 么 能 够 避 免 做 后 N-K 个 数 的 排 序 呢? 我 们 需 要 部 分 排 序 的 算 法, 选 择 排 序 和 交 换 排 序 都 是 不 错 的 选 择 把 N 个 数 中 的 前 K 大 个 数 排 序 出 来, 复 杂 度 是 O(N * K) 那 一 个 更 好 呢?O(N * log 2 N) 还 是 O(N * K)? 这 取 决 于 K 的 大 小, 这 是 你 需 要 在 面 试 者 那 里 弄 清 楚 的 问 题 在 K(K < = log 2 N) 较 小 的 情 况 下, 可 以 选 择 部 分 排 序 在 下 一 个 解 法 中, 我 们 会 通 过 避 免 对 前 K 个 数 排 序 来 得 到 更 好 的 性 能 解 法 二 回 忆 一 下 快 速 排 序, 快 排 中 的 每 一 步, 都 是 将 待 排 数 据 分 做 两 组, 其 中 一 组 的 数 据 的 任 何 一 个 数 都 比 另 一 组 中 的 任 何 一 个 大, 然 后 再 对 两 组 分 别 做 类 似 的 操 作, 然 后 继 续 下 去 在 本 问 题 中, 假 设 N 个 数 存 储 在 数 组 S 中, 我 们 从 数 组 S 中 随 机 找 出 一 个 元 素 X, 把 数 组 分 为 两 部 分 S a 和 S b S a 中 的 元 素 大 于 等 于 X,S b 中 元 素 小 于 X 这 时, 有 两 种 可 能 性 :

47 写 书 评, 赢 取 编 程 之 美 -- 微 软 技 术 面 试 心 得 1. S a 中 元 素 的 个 数 小 于 K,S a 中 所 有 的 数 和 S b 中 最 大 的 K- S a 个 元 素 ( S a 指 S a 中 元 素 的 个 数 ) 就 是 数 组 S 中 最 大 的 K 个 数 2. S a 中 元 素 的 个 数 大 于 或 等 于 K, 则 需 要 返 回 S a 中 最 大 的 K 个 元 素 这 样 递 归 下 去, 不 断 把 问 题 分 解 成 更 小 的 问 题, 平 均 时 间 复 杂 度 O(N * log 2 K) 伪 代 码 如 下 : 代 码 清 单 2-11 Kbig(S, k): if(k <= 0): return [] // 返 回 空 数 组 if(length S <= k): return S (Sa, Sb) = Partition(S) return Kbig(Sa, k).append(kbig(sb, k length Sa) Partition(S): Sa = [] // 初 始 化 为 空 数 组 Sb = [] // 初 始 化 为 空 数 组 // 随 机 选 择 一 个 数 作 为 分 组 标 准, 以 避 免 特 殊 数 据 下 的 算 法 退 化 // 也 可 以 通 过 对 整 个 数 据 进 行 洗 牌 预 处 理 实 现 这 个 目 的 // Swap(S[1], S[Random() % length S]) p = S[1] for i in [2: length S]: S[i] > p? Sa.Append(S[i]) : Sb.Append(S[i]) // 将 p 加 入 较 小 的 组, 可 以 避 免 分 组 失 败, 也 使 分 组 更 均 匀, 提 高 效 率 length S a < length S b? S a.append(p) : S b.append(p) return (S a, S b ) 解 法 三 寻 找 N 个 数 中 最 大 的 K 个 数, 本 质 上 就 是 寻 找 最 大 的 K 个 数 中 最 小 的 那 个, 也 就 是 第 K 大 的 数 可 以 使 用 二 分 搜 索 的 策 略 来 寻 找 N 个 数 中 的 第 K 大 的 数 对 于 一 个 给 定 的 数 p, 可 以 在 O(N) 的 时 间 复 杂 度 内 找 出 所 有 不 小 于 p 的 数 假 如 N 个 数 中 最 大 的 数 为 V max, 最 小 的 数 为 V min, 那 么 这 N 个 数 中 的 第 K 大 数 一 定 在 区 间 [V min, V max ] 之 间 那 么, 可 以 在 这 个 区 间 内 二 分 搜 索 N 个 数 中 的 第 K 大 数 p 伪 代 码 如 下 :

48 写 书 评, 赢 取 编 程 之 美 -- 微 软 技 术 面 试 心 得 代 码 清 单 2-12 while(vmax Vmin > delta) Vmid = Vmin + (Vmax - Vmin) * 0.5; if(f(arr, N, Vmid) >= K) Vmin = Vmid; else Vmax = Vmid; 数 伪 代 码 中 f(arr, N, V mid ) 返 回 数 组 arr[0,, N-1] 中 大 于 等 于 V mid 的 数 的 个 上 述 伪 代 码 中,delta 的 取 值 要 比 所 有 N 个 数 中 的 任 意 两 个 不 相 等 的 元 素 差 值 之 最 小 值 小 如 果 所 有 元 素 都 是 整 数,delta 可 以 取 值 0.5 循 环 运 行 之 后, 得 到 一 个 区 间 (V min, V max ), 这 个 区 间 仅 包 含 一 个 元 素 ( 或 者 多 个 相 等 的 元 素 ) 这 个 元 素 就 是 第 K 大 的 元 素 整 个 算 法 的 时 间 复 杂 度 为 O(N * log 2 ( V max - V min /delta)) 由 于 delta 的 取 值 要 比 所 有 N 个 数 中 的 任 意 两 个 不 相 等 的 元 素 差 值 之 最 小 值 小, 因 此 时 间 复 杂 度 跟 数 据 分 布 相 关 在 数 据 分 布 平 均 的 情 况 下, 时 间 复 杂 度 为 O(N * log 2 (N)) 在 整 数 的 情 况 下, 可 以 从 另 一 个 角 度 来 看 这 个 算 法 假 设 所 有 整 数 的 大 小 都 在 [0, 2 m-1 ] 之 间, 也 就 是 说 所 有 整 数 在 二 进 制 中 都 可 以 用 m bit 来 表 示 ( 从 低 位 到 高 位, 分 别 用 0, 1,, m-1 标 记 ) 我 们 可 以 先 考 察 在 二 进 制 位 的 第 (m-1) 位, 将 N 个 整 数 按 该 位 为 1 或 者 0 分 成 两 个 部 分 也 就 是 将 整 数 分 成 取 值 为 [0, 2 m-1-1] 和 [2 m-1, 2 m -1] 两 个 区 间 前 一 个 区 间 中 的 整 数 第 (m-1) 位 为 0, 后 一 个 区 间 中 的 整 数 第 (m-1) 位 为 1 如 果 该 位 为 1 的 整 数 个 数 A 大 于 等 于 K, 那 么, 在 所 有 该 位 为 1 的 整 数 中 继 续 寻 找 最 大 的 K 个 否 则, 在 该 位 为 0 的 整 数 中 寻 找 最 大 的 K-A 个 接 着 考 虑 二 进 制 位 第 (m-2) 位, 以 此 类 推 思 路 跟 上 面 的 浮 点 数 的 情 况 本 质 上 一 样 对 于 上 面 两 个 方 法, 我 们 都 需 要 遍 历 一 遍 整 个 集 合, 统 计 在 该 集 合 中 大 于 等 于 某 一 个 数 的 整 数 有 多 少 个 不 需 要 做 随 机 访 问 操 作, 如 果 全 部 数 据 不 能 载 入 内 存, 可 以 每 次 都 遍 历 一 遍 文 件 经 过 统 计, 更 新 解 所 在 的 区 间 之 后, 再 遍 历 一 次 文 件, 把 在 新 的 区 间 中 的 元 素 存 入 新 的 文 件 下 一 次 操 作 的 时 候, 不 再 需 要 遍 历 全 部 的 元 素 每 次 需 要 两 次 文 件 遍 历, 最 坏 情 况 下, 总 共 需 要 遍 历 文 件 的 次 数 为 2 * log 2 ( V max - V min /delta) 由 于 每 次 更 新 解 所 在 区 间 之 后, 元 素 数 目 会 减 少 当 所 有 元 素 能 够 全 部 载 入 内 存 之 后, 就 可 以 不 再 通 过 读 写 文 件 的 方 式 来 操 作 了

49 写 书 评, 赢 取 编 程 之 美 -- 微 软 技 术 面 试 心 得 此 外, 寻 找 N 个 数 中 的 第 K 大 数, 是 一 个 经 典 问 题 理 论 上, 这 个 问 题 存 在 线 性 算 法 不 过 这 个 线 性 算 法 的 常 数 项 比 较 大, 在 实 际 应 用 中 效 果 有 时 并 不 好 解 法 四 我 们 已 经 得 到 了 三 个 解 法, 不 过 这 三 个 解 法 有 个 共 同 的 地 方, 就 是 需 要 对 数 据 访 问 多 次, 那 么 就 有 下 一 个 问 题, 如 果 N 很 大 呢,100 亿?( 更 多 的 情 况 下, 是 面 试 者 问 你 这 个 问 题 ) 这 个 时 候 数 据 不 能 全 部 装 入 内 存 ( 不 过 也 很 难 说, 说 知 道 以 后 会 不 会 1T 内 存 比 1 斤 白 菜 还 便 宜 ), 所 以 要 求 尽 可 能 少 的 遍 历 所 有 数 据 不 妨 设 N > K, 前 K 个 数 中 的 最 大 K 个 数 是 一 个 退 化 的 情 况, 所 有 K 个 数 就 是 最 大 的 K 个 数 如 果 考 虑 第 K+1 个 数 X 呢? 如 果 X 比 最 大 的 K 个 数 中 的 最 小 的 数 Y 小, 那 么 最 大 的 K 个 数 还 是 保 持 不 变 如 果 X 比 Y 大, 那 么 最 大 的 K 个 数 应 该 去 掉 Y, 而 包 含 X 如 果 用 一 个 数 组 来 存 储 最 大 的 K 个 数, 每 新 加 入 一 个 数 X, 就 扫 描 一 遍 数 组, 得 到 数 组 中 最 小 的 数 Y 用 X 替 代 Y, 或 者 保 持 原 数 组 不 变 这 样 的 方 法, 所 耗 费 的 时 间 为 O(N * K) 进 一 步, 可 以 用 容 量 为 K 的 最 小 堆 来 存 储 最 大 的 K 个 数 最 小 堆 的 堆 顶 元 素 就 是 最 大 K 个 数 中 最 小 的 一 个 每 次 新 考 虑 一 个 数 X, 如 果 X 比 堆 顶 的 元 素 Y 小, 则 不 需 要 改 变 原 来 的 堆, 因 为 这 个 元 素 比 最 大 的 K 个 数 小 如 果 X 比 堆 顶 元 素 大, 那 么 用 X 替 换 堆 顶 的 元 素 Y 在 X 替 换 堆 顶 元 素 Y 之 后,X 可 能 破 坏 最 小 堆 的 结 构 ( 每 个 结 点 都 比 它 的 父 亲 结 点 大 ), 需 要 更 新 堆 来 维 持 堆 的 性 质 更 新 过 程 花 费 的 时 间 复 杂 度 为 O(log 2 K) 图 2-1

50 写 书 评, 赢 取 编 程 之 美 -- 微 软 技 术 面 试 心 得 图 2-1 是 一 个 堆, 用 一 个 数 组 h[] 表 示 每 个 元 素 h[i], 它 的 父 亲 结 点 是 h[i/2], 儿 子 结 点 是 h[2 * i + 1] 和 h[2 * i + 2] 每 新 考 虑 一 个 数 X, 需 要 进 行 的 更 新 操 作 伪 代 码 如 下 : 代 码 清 单 2-13 if(x > h[0]) h[0] = X; p = 0; while(p < K) q = 2 * p + 1; if(q >= K) break; if((q < K 1) && (h[q + 1] < h[q])) q = q + 1; if(h[q] < h[p]) t = h[p]; h[p] = h[q]; h[q] = t; p = q; else break; 因 此, 算 法 只 需 要 扫 描 所 有 的 数 据 一 次, 时 间 复 杂 度 为 O(N * log 2 K) 这 实 际 上 是 部 分 执 行 了 堆 排 序 的 算 法 在 空 间 方 面, 由 于 这 个 算 法 只 扫 描 所 有 的 数 据 一 次, 因 此 我 们 只 需 要 存 储 一 个 容 量 为 K 的 堆 大 多 数 情 况 下, 堆 可 以 全 部 载 入 内 存 如 果 K 仍 然 很 大, 我 们 可 以 尝 试 先 找 最 大 的 K 个 元 素, 然 后 找 第 K +1 个 到 第 2 * K 个 元 素, 如 此 类 推 ( 其 中 容 量 K 的 堆 可 以 完 全 载 入 内 存 ) 不 过 这 样, 我 们 需 要 扫 描 所 有 数 据 ceil 1 (K/K ) 次 解 法 五 上 面 类 快 速 排 序 的 方 法 平 均 时 间 复 杂 度 是 线 性 的 能 否 有 确 定 的 线 性 算 法 呢? 是 否 可 以 通 过 改 进 计 数 排 序 基 数 排 序 等 来 得 到 一 个 更 高 效 的 算 法 呢? 答 案 是 肯 定 的 但 算 法 的 适 用 范 围 会 受 到 一 定 的 限 制 1 ceil(ceiling, 天 花 板 之 意 ) 表 示 大 于 等 于 一 个 浮 点 数 的 最 小 整 数

51 写 书 评, 赢 取 编 程 之 美 -- 微 软 技 术 面 试 心 得 如 果 所 有 N 个 数 都 是 正 整 数, 且 它 们 的 取 值 范 围 不 太 大, 可 以 考 虑 申 请 空 间, 记 录 每 个 整 数 出 现 的 次 数, 然 后 再 从 大 到 小 取 最 大 的 K 个 比 如, 所 有 整 数 都 在 (0, MAXN) 区 间 中 的 话, 利 用 一 个 数 组 count[maxn] 来 记 录 每 个 整 数 出 现 的 个 数 (count[i] 表 示 整 数 i 在 所 有 整 数 中 出 现 的 个 数 ) 我 们 只 需 要 扫 描 一 遍 就 可 以 得 到 count 数 组 然 后, 寻 找 第 K 大 的 元 素 : 代 码 清 单 2-14 for(sumcount = 0, v = MAXN 1; v >= 0; v--) sumcount += count[v]; if(sumcount >= K) break; return v; 极 端 情 况 下, 如 果 N 个 整 数 各 不 相 同, 我 们 甚 至 只 需 要 一 个 bit 来 存 储 这 个 整 数 是 否 存 在 当 实 际 情 况 下, 并 不 一 定 能 保 证 所 有 元 素 都 是 正 整 数, 且 取 值 范 围 不 太 大 上 面 的 方 法 仍 然 可 以 推 广 适 用 如 果 N 个 数 中 最 大 的 数 为 V max, 最 小 的 数 为 V min, 我 们 可 以 把 这 个 区 间 [V min, V max ] 分 成 M 块, 每 个 小 区 间 的 跨 度 为 d =(V max V min ) /M, 即 [V min, V min +d], [V min + d, V min + 2d], 然 后, 扫 描 一 遍 所 有 元 素, 统 计 各 个 小 区 间 中 的 元 素 个 数, 跟 上 面 方 法 类 似 地, 我 们 可 以 知 道 第 K 大 的 元 素 在 哪 一 个 小 区 间 然 后, 再 对 那 个 小 区 间, 继 续 进 行 分 块 处 理 这 个 方 法 介 于 解 法 三 和 类 计 数 排 序 方 法 之 间, 不 能 保 证 线 性 跟 解 法 三 类 似 地, 时 间 复 杂 度 为 O ((N+M)* log 2 M( V max - V min /delta)) 遍 历 文 件 的 次 数 为 2 * log 2 M( V max - V min /delta) 当 然, 我 们 需 要 找 一 个 尽 量 大 的 M, 但 M 取 值 要 受 内 存 限 制 在 这 道 题 中, 我 们 根 据 K 和 N 的 相 对 大 小, 设 计 了 不 同 的 算 法 在 实 际 面 试 中, 如 果 一 个 面 试 者 能 针 对 一 个 问 题, 说 出 多 种 不 同 的 方 法, 并 且 分 析 它 们 各 自 适 用 的 情 况, 那 一 定 会 给 人 留 下 深 刻 印 象 注 : 本 题 目 的 解 答 中 用 到 了 多 种 排 序 算 法, 这 些 算 法 在 大 部 分 的 算 法 书 籍 中 都 有 讲 解 掌 握 排 序 算 法 对 工 作 也 会 很 有 帮 助 扩 展 问 题

52 写 书 评, 赢 取 编 程 之 美 -- 微 软 技 术 面 试 心 得 3. 如 果 需 要 找 出 N 个 数 中 最 大 的 K 个 不 同 的 浮 点 数 呢? 比 如, 含 有 10 个 浮 点 数 的 数 组 (1.5, 1.5, 2.5, 2.5, 3.5, 3.5, 5, 0, -1.5, 3.5) 中 最 大 的 3 个 不 同 的 浮 点 数 是 (5, 3.5, 2.5) 4. 如 果 是 找 第 k 到 m(0 < k < = m < = n) 大 的 数 呢? 5. 在 搜 索 引 擎 中, 网 络 上 的 每 个 网 页 都 有 权 威 性 权 重, 如 page rank 如 果 我 们 需 要 寻 找 权 重 最 大 的 K 个 网 页, 而 网 页 的 权 重 会 不 断 地 更 新, 那 么 算 法 要 如 何 变 动 以 达 到 快 速 更 新 (incremental update) 并 及 时 返 回 权 重 最 大 的 K 个 网 页? 提 示 : 堆 排 序? 当 每 一 个 网 页 权 重 更 新 的 时 候, 更 新 堆 还 有 更 好 的 方 法 吗? 6. 在 实 际 应 用 中, 还 有 一 个 精 确 度 的 问 题 我 们 可 能 并 不 需 要 返 回 严 格 意 义 上 的 最 大 的 K 个 元 素, 在 边 界 位 置 允 许 出 现 一 些 误 差 当 用 户 输 入 一 个 query 的 时 候, 对 于 每 一 个 文 档 d 来 说, 它 跟 这 个 query 之 间 都 有 一 个 相 关 性 衡 量 权 重 f (query, d) 搜 索 引 擎 需 要 返 回 给 用 户 的 就 是 相 关 性 权 重 最 大 的 K 个 网 页 如 果 每 页 10 个 网 页, 用 户 不 会 关 心 第 1000 页 开 外 搜 索 结 果 的 精 确 度, 稍 有 误 差 是 可 以 接 受 的 比 如 我 们 可 以 返 回 相 关 性 第 大 的 网 页, 而 不 是 第 9999 大 的 在 这 种 情 况 下, 算 法 该 如 何 改 进 才 能 更 快 更 有 效 率 呢? 网 页 的 数 目 可 能 大 到 一 台 机 器 无 法 容 纳 得 下, 这 时 怎 么 办 呢? 提 示 : 归 并 排 序? 如 果 每 台 机 器 都 返 回 最 相 关 的 K 个 文 档, 那 么 所 有 机 器 上 最 相 关 K 个 文 档 的 并 集 肯 定 包 含 全 集 中 最 相 关 的 K 个 文 档 由 于 边 界 情 况 并 不 需 要 非 常 精 确, 如 果 每 台 机 器 返 回 最 好 的 K 个 文 档, 那 么 K 应 该 如 何 取 值, 以 达 到 我 们 返 回 最 相 关 的 90%*K 个 文 档 是 完 全 精 确 的, 或 者 最 终 返 回 的 最 相 关 的 K 个 文 档 精 确 度 超 过 90%( 最 相 关 的 K 个 文 档 中

53 写 书 评, 赢 取 编 程 之 美 -- 微 软 技 术 面 试 心 得 90% 以 上 在 全 集 中 相 关 性 的 确 排 在 前 K), 或 者 最 终 返 回 的 最 相 关 的 K 个 文 档 最 差 的 相 关 性 排 序 没 有 超 出 110%*K 7. 如 第 4 点 所 说, 对 于 每 个 文 档 d, 相 对 于 不 同 的 关 键 字 q 1, q 2,, q m, 分 别 有 相 关 性 权 重 f(d, q 1 ),f(d, q 2 ),, f(d, q m ) 如 果 用 户 输 入 关 键 字 q i 之 后, 我 们 已 经 获 得 了 最 相 关 的 K 个 文 档, 而 已 知 关 键 字 q j 跟 关 键 字 q i 相 似, 文 档 跟 这 两 个 关 键 字 的 权 重 大 小 比 较 靠 近, 那 么 关 键 字 q i 的 最 相 关 的 K 个 文 档, 对 寻 找 q j 最 相 关 的 K 个 文 档 有 没 有 帮 助 呢?

54 写 书 评, 赢 取 编 程 之 美 微 软 技 术 面 试 心 得 求 二 叉 树 中 节 点 的 最 大 距 离 如 果 我 们 把 二 叉 树 看 成 一 个 图, 父 子 节 点 之 间 的 连 线 看 成 是 双 向 的, 我 们 姑 且 定 义 距 离 为 两 个 节 点 之 间 边 的 个 数 写 一 个 程 序 求 一 棵 二 叉 树 中 相 距 最 远 的 两 个 节 点 之 间 的 距 离 如 图 3-11 所 示, 粗 箭 头 的 边 表 示 最 长 距 离 : 图 3-11 树 中 相 距 最 远 的 两 个 节 点 A,B

55 写 书 评, 赢 取 编 程 之 美 微 软 技 术 面 试 心 得 分 析 与 解 法 我 们 先 画 几 个 不 同 形 状 的 二 叉 树,( 如 图 3-12 所 示 ), 看 看 能 否 得 到 一 些 启 示 图 3-12 几 个 例 子 从 例 子 中 可 以 看 出, 相 距 最 远 的 两 个 节 点, 一 定 是 两 个 叶 子 节 点, 或 者 是 一 个 叶 子 节 点 到 它 的 根 节 点 ( 为 什 么?) 解 法 一 根 据 相 距 最 远 的 两 个 节 点 一 定 是 叶 子 节 点 这 个 规 律, 我 们 可 以 进 一 步 讨 论 对 于 任 意 一 个 节 点, 以 该 节 点 为 根, 假 设 这 个 根 有 K 个 孩 子 节 点, 那 么 相 距 最 远 的 两 个 节 点 U 和 V 之 间 的 路 径 与 这 个 根 节 点 的 关 系 有 两 种 情 况 : 1. 若 路 径 经 过 根 Root, 则 U 和 V 是 属 于 不 同 子 树 的, 且 它 们 都 是 该 子 树 中 到 根 节 点 最 远 的 节 点, 否 则 跟 它 们 的 距 离 最 远 相 矛 盾 这 种 情 况 如 图 3-13 所 示 : 图 3-13 相 距 最 远 的 节 点 在 左 右 最 长 的 子 树 中

56 写 书 评, 赢 取 编 程 之 美 微 软 技 术 面 试 心 得 2. 如 果 路 径 不 经 过 Root, 那 么 它 们 一 定 属 于 根 的 K 个 子 树 之 一 并 且 它 们 也 是 该 子 树 中 相 距 最 远 的 两 个 顶 点 如 图 3-14 中 的 节 点 A: 图 3-14 相 距 最 远 的 节 点 在 某 个 子 树 下 因 此, 问 题 就 可 以 转 化 为 在 子 树 上 的 解, 从 而 能 够 利 用 动 态 规 划 来 解 决 设 第 K 棵 子 树 中 相 距 最 远 的 两 个 节 点 :U k 和 V k, 其 距 离 定 义 为 d(u k, V k ), 那 么 节 点 U k 或 V k 即 为 子 树 K 到 根 节 点 R k 距 离 最 长 的 节 点 不 失 一 般 性, 我 们 设 U k 为 子 树 K 中 到 根 节 点 R k 距 离 最 长 的 节 点, 其 到 根 节 点 的 距 离 定 义 为 d(u k, R) 取 d(u i, R)(1 i k) 中 最 大 的 两 个 值 max1 和 max2, 那 么 经 过 根 节 点 R 的 最 长 路 径 为 max1+max2+2, 所 以 树 R 中 相 距 最 远 的 两 个 点 的 距 离 为 :maxd(u 1, V 1 ),, d(u k, V k ),max1+max2+2 采 用 深 度 优 先 搜 索 如 图 3-15, 只 需 要 遍 历 所 有 的 节 点 一 次, 时 间 复 杂 度 为 O( E )= O ( V -1), 其 中 V 为 点 的 集 合,E 为 边 的 集 合 图 3-15 深 度 遍 历 示 意 图 示 例 代 码 如 下, 我 们 使 用 二 叉 树 来 实 现 该 算 法 代 码 清 单 3-11 // 数 据 结 构 定 义

57 写 书 评, 赢 取 编 程 之 美 微 软 技 术 面 试 心 得 struct NODE NODE* pleft; NODE* pright; int nmaxleft; int nmaxright; char chvalue; ; // 左 孩 子 // 右 孩 子 // 左 子 树 中 的 最 长 距 离 // 右 子 树 中 的 最 长 距 离 // 该 节 点 的 值 int nmaxlen = 0; // 寻 找 树 中 最 长 的 两 段 距 离 void FindMaxLen(NODE* proot) // 遍 历 到 叶 子 节 点, 返 回 if(proot == NULL) return; // 如 果 左 子 树 为 空, 那 么 该 节 点 的 左 边 最 长 距 离 为 0 if(proot -> pleft == NULL) proot -> nmaxleft = 0; // 如 果 右 子 树 为 空, 那 么 该 节 点 的 右 边 最 长 距 离 为 0 if(proot -> pright == NULL) proot -> nmaxright = 0; // 如 果 左 子 树 不 为 空, 递 归 寻 找 左 子 树 最 长 距 离 if(proot -> pleft!= NULL) FindMaxLen(pRoot -> pleft); // 如 果 右 子 树 不 为 空, 递 归 寻 找 右 子 树 最 长 距 离 if(proot -> pright!= NULL) FindMaxLen(pRoot -> pright); // 计 算 左 子 树 最 长 节 点 距 离 if(proot -> pleft!= NULL) int ntempmax = 0; if(proot -> pleft -> nmaxleft > proot -> pleft -> nmaxright) ntempmax = proot -> pleft -> nmaxleft; else ntempmax = proot -> pleft -> nmaxright; proot -> nmaxleft = ntempmax + 1; // 计 算 右 子 树 最 长 节 点 距 离 if(proot -> pright!= NULL)

58 写 书 评, 赢 取 编 程 之 美 微 软 技 术 面 试 心 得 int ntempmax = 0; if(proot -> pright -> nmaxleft > proot -> pright -> nmaxright) ntempmax = proot -> pright -> nmaxleft; else ntempmax = proot -> pright -> nmaxright; proot -> nmaxright = ntempmax + 1; // 更 新 最 长 距 离 if(proot -> nmaxleft + proot -> nmaxright > nmaxlen) nmaxlen = proot -> nmaxleft + proot -> nmaxright; 扩 展 问 题 在 代 码 中, 我 们 使 用 了 递 归 的 办 法 来 完 成 问 题 的 求 解 那 么 是 否 有 非 递 归 的 算 法 来 解 决 这 个 问 题 呢? 总 结 对 于 递 归 问 题 的 分 析, 笔 者 有 一 些 小 小 的 体 会 : 1. 先 弄 清 楚 递 归 的 顺 序 在 递 归 的 实 现 中, 往 往 需 要 假 设 后 续 的 调 用 已 经 完 成, 在 此 基 础 之 上, 才 实 现 递 归 的 逻 辑 在 该 题 中, 我 们 就 是 假 设 已 经 把 后 面 的 长 度 计 算 出 来 了, 然 后 继 续 考 虑 后 面 的 逻 辑 ; 2. 分 析 清 楚 递 归 体 的 逻 辑, 然 后 写 出 来 比 如 在 上 面 的 问 题 中, 递 归 体 的 逻 辑 就 是 如 何 计 算 两 边 最 长 的 距 离 ; 3. 考 虑 清 楚 递 归 退 出 的 边 界 条 件 也 就 说, 哪 些 地 方 应 该 写 return 注 意 到 以 上 3 点, 在 面 对 递 归 问 题 的 时 候, 我 们 将 总 是 有 章 可 循

59 写 书 评, 赢 取 编 程 之 美 微 软 技 术 面 试 心 得 求 二 进 制 数 中 1 的 个 数 对 于 一 个 字 节 (8bit) 的 变 量, 求 其 二 进 制 表 示 中 1 的 个 数, 要 求 算 法 的 执 行 效 率 尽 可 能 地 高

60 写 书 评, 赢 取 编 程 之 美 微 软 技 术 面 试 心 得 分 析 与 解 法 大 多 数 的 读 者 都 会 有 这 样 的 反 应 : 这 个 题 目 也 太 简 单 了 吧, 解 法 似 乎 也 相 当 地 单 一, 不 会 有 太 多 的 曲 折 分 析 或 者 峰 回 路 转 之 处 那 么 面 试 者 到 底 能 用 这 个 题 目 考 察 我 们 什 么 呢? 事 实 上, 在 编 写 程 序 的 过 程 中, 根 据 实 际 应 用 的 不 同, 对 存 储 空 间 或 效 率 的 要 求 也 不 一 样 比 如 在 PC 上 的 程 序 编 写 与 在 嵌 入 式 设 备 上 的 程 序 编 写 就 有 很 大 的 差 别 我 们 可 以 仔 细 思 索 一 下 如 何 才 能 使 效 率 尽 可 能 地 高 解 法 一 可 以 举 一 个 八 位 的 二 进 制 例 子 来 进 行 分 析 对 于 二 进 制 操 作, 我 们 知 道, 除 以 一 个 2, 原 来 的 数 字 将 会 减 少 一 个 0 如 果 除 的 过 程 中 有 余, 那 么 就 表 示 当 前 位 置 有 一 个 1 以 为 例 ; 第 一 次 除 以 2 时, 商 为 , 余 为 0 第 二 次 除 以 2 时, 商 为 , 余 为 1 因 此, 可 以 考 虑 利 用 整 型 数 据 除 法 的 特 点, 通 过 相 除 和 判 断 余 数 的 值 来 进 行 分 析 于 是 有 了 如 下 的 代 码 代 码 清 单 2-1 int Count(int v) int num = 0; while(v) if(v % 2 == 1) num++; v = v/ 2; return num; 解 法 二 使 用 位 操 作 前 面 的 代 码 看 起 来 比 较 复 杂 我 们 知 道, 向 右 移 位 操 作 同 样 也 可 以 达 到 相 除 的 目 的 唯 一 不 同 之 处 在 于, 移 位 之 后 如 何 来 判 断 是 否 有 1 存 在 对 于 这 个 问 题, 再 来 看 看 一 个 八 位 的 数 字 : 在 向 右 移 位 的 过 程 中, 我 们 会 把 最 后 一 位 直 接 丢 弃 因 此, 需 要 判 断 最 后 一 位 是 否 为 1, 而 与 操 作 可 以 达 到 目 的 可 以 把 这 个 八 位 的 数 字 与 进 行 与 操 作 如 果 结 果 为 1, 则 表 示 当 前 八 位 数 的 最 后 一 位 为 1, 否 则 为 0 代 码 如 下 : 代 码 清 单 2-2

CC213

CC213 : (Ken-Yi Lee), E-mail: feis.tw@gmail.com 49 [P.51] C/C++ [P.52] [P.53] [P.55] (int) [P.57] (float/double) [P.58] printf scanf [P.59] [P.61] ( / ) [P.62] (char) [P.65] : +-*/% [P.67] : = [P.68] : ,

More information

C 1

C 1 C homepage: xpzhangme 2018 5 30 C 1 C min(x, y) double C // min c # include # include double min ( double x, double y); int main ( int argc, char * argv []) { double x, y; if( argc!=

More information

C/C++ - 文件IO

C/C++ - 文件IO C/C++ IO Table of contents 1. 2. 3. 4. 1 C ASCII ASCII ASCII 2 10000 00100111 00010000 31H, 30H, 30H, 30H, 30H 1, 0, 0, 0, 0 ASCII 3 4 5 UNIX ANSI C 5 FILE FILE 6 stdio.h typedef struct { int level ;

More information

FY.DOC

FY.DOC 高 职 高 专 21 世 纪 规 划 教 材 C++ 程 序 设 计 邓 振 杰 主 编 贾 振 华 孟 庆 敏 副 主 编 人 民 邮 电 出 版 社 内 容 提 要 本 书 系 统 地 介 绍 C++ 语 言 的 基 本 概 念 基 本 语 法 和 编 程 方 法, 深 入 浅 出 地 讲 述 C++ 语 言 面 向 对 象 的 重 要 特 征 : 类 和 对 象 抽 象 封 装 继 承 等 主

More information

C/C++语言 - C/C++数据

C/C++语言 - C/C++数据 C/C++ C/C++ Table of contents 1. 2. 3. 4. char 5. 1 C = 5 (F 32). 9 F C 2 1 // fal2cel. c: Convert Fah temperature to Cel temperature 2 # include < stdio.h> 3 int main ( void ) 4 { 5 float fah, cel ;

More information

中 国 中 西 医 结 合 杂 志 年 月 第 卷 第 期!" 通 透 性 增 加 产 生 蛋 白 水 解 酶 促 进 血 管 内 皮 细 胞 有 丝 分 裂 内 皮 细 胞 从 基 底 膜 上 迁 移 到 血 管 周 围 间 隙 粘 附 聚 集 重 构 为 三 维 管 腔 并 与 周 围 血 管

中 国 中 西 医 结 合 杂 志 年 月 第 卷 第 期! 通 透 性 增 加 产 生 蛋 白 水 解 酶 促 进 血 管 内 皮 细 胞 有 丝 分 裂 内 皮 细 胞 从 基 底 膜 上 迁 移 到 血 管 周 围 间 隙 粘 附 聚 集 重 构 为 三 维 管 腔 并 与 周 围 血 管 中 国 中 西 医 结 合 杂 志 年 月 第 卷 第 期!" 学 术 探 讨 冠 心 病 的 治 疗 性 血 管 新 生 与 活 血 化 瘀 段 练 熊 兴 江 王 阶 摘 要 治 疗 性 血 管 新 生 /) '0 1/ * ' 是 冠 状 动 脉 硬 化 性 心 脏 病 * '( '/) *! / * ) '/ ' + 治 疗 的 新 策 略 而 活 血 化 瘀 治 法 对 于 + 的 基 础

More information

得 到 了 補 償. 對 於 武 姜 而 言, 莊 公 與 自 己 的 關 係 並 不 親 密, 而 共 叔 段 又 是 自 己 向 來 疼 愛 有 加 的 兒 子, 所 以, 對 莊 公 提 出 再 怎 麼 無 理 的 要 求, 武 姜 也 不 會 覺 得 有 什 麼 不 妥 之 處, 而 對 共

得 到 了 補 償. 對 於 武 姜 而 言, 莊 公 與 自 己 的 關 係 並 不 親 密, 而 共 叔 段 又 是 自 己 向 來 疼 愛 有 加 的 兒 子, 所 以, 對 莊 公 提 出 再 怎 麼 無 理 的 要 求, 武 姜 也 不 會 覺 得 有 什 麼 不 妥 之 處, 而 對 共 左 傳 - 鄭 伯 克 段 於 鄢 人 物 心 理 1021141 林 詩 倩 一. 緒 論 鄭 伯 克 段 於 鄢, 及 共 叔 段 之 亂, 是 魯 隱 公 元 年, 即 公 元 前 722 年, 春 秋 初 年 在 鄭 國 國 內 發 生 的 一 場 內 亂. 武 姜 成 為 武 公 夫 人 並 先 後 為 武 公 生 下 了 兩 個 兒 子, 長 子 莊 公 由 於 腳 先 出 來 造 成

More information

一 耀 州 青 瓷 的 裝 飾 手 法 與 紋 飾 種 類 耀 州 窯 的 裝 飾 紋 樣, 豐 富 多 變, 而 且 題 材 內 容 廣 泛, 組 合 形 式 多 樣, 圖 案 形 象 優 美, 令 人 賞 心 悅 目, 並 且 反 映 了 當 時 社 會 的 審 美 趣 味 和 理 想 裝 飾

一 耀 州 青 瓷 的 裝 飾 手 法 與 紋 飾 種 類 耀 州 窯 的 裝 飾 紋 樣, 豐 富 多 變, 而 且 題 材 內 容 廣 泛, 組 合 形 式 多 樣, 圖 案 形 象 優 美, 令 人 賞 心 悅 目, 並 且 反 映 了 當 時 社 會 的 審 美 趣 味 和 理 想 裝 飾 宋 代 耀 州 青 瓷 的 紋 飾 風 格 與 意 義 曾 肅 良 英 國 萊 斯 特 大 學 博 物 館 學 博 士 國 立 台 灣 師 範 大 學 美 術 研 究 所 助 理 教 授 摘 要 中 國 的 飲 茶 之 風, 興 於 唐 而 盛 於 宋, 特 別 是 宋 代 宮 廷 禁 苑 和 地 方 官 吏 文 人 學 士 的 尚 茶 崇 茶, 以 品 茶 為 雅 尚 的 觀 念 與 作 法, 使

More information

1911 年 武 汉 起 义, 广 东 独 立 胡 汉 民 任 总 督, 陈 任 广 东 军 政 府 外 交 部 副 部 长 陈 不 愿 做 官, 几 个 月 后 即 辞 职 1915 年 与 李 煜 堂 设 立 上 海 保 险 公 司, 陈 任 主 席 1921 年 孙 中 山 就 任 非 常 大

1911 年 武 汉 起 义, 广 东 独 立 胡 汉 民 任 总 督, 陈 任 广 东 军 政 府 外 交 部 副 部 长 陈 不 愿 做 官, 几 个 月 后 即 辞 职 1915 年 与 李 煜 堂 设 立 上 海 保 险 公 司, 陈 任 主 席 1921 年 孙 中 山 就 任 非 常 大 近 代 新 会 名 人 事 迹 张 云 田 : 新 会 县 双 水 区 人, 中 国 同 盟 会 员 华 侨 镇 南 关 起 义 烈 士 张 云 田 少 年 受 其 父 教 育, 精 通 文 翰, 其 时 深 受 外 国 嘲 笑 中 华 民 族 为 东 亚 病 夫 之 辱, 因 而 弃 文 就 武, 中 武 秀 才 中 年 时 结 交 三 合 会 兄 弟, 立 志 革 清 兴 华, 参 加 孙 中

More information

第 一 部 分 增 城 区 人 力 资 源 和 社 会 保 障 局 概 况 一 广 州 市 增 城 区 人 力 资 源 和 社 会 保 障 局 主 要 职 能 广 州 市 增 城 区 人 力 资 源 和 社 会 保 障 局 是 区 委 区 政 府 主 管 人 事 人 才 劳 动 社 会 保 障 的

第 一 部 分 增 城 区 人 力 资 源 和 社 会 保 障 局 概 况 一 广 州 市 增 城 区 人 力 资 源 和 社 会 保 障 局 主 要 职 能 广 州 市 增 城 区 人 力 资 源 和 社 会 保 障 局 是 区 委 区 政 府 主 管 人 事 人 才 劳 动 社 会 保 障 的 广 州 市 增 城 区 人 力 资 源 和 社 会 保 障 局 2016 年 部 门 预 算 目 录 第 一 部 分 广 州 市 增 城 区 人 力 资 源 和 社 会 保 障 局 概 况 一 部 门 主 要 职 能 二 部 门 预 算 单 位 构 成 三 部 门 人 员 构 成 第 二 部 分 2016 年 部 门 预 算 安 排 情 况 说 明 第 三 部 分 2016 年 部 门 预 算 报

More information

C/C++语言 - 运算符、表达式和语句

C/C++语言 - 运算符、表达式和语句 C/C++ Table of contents 1. 2. 3. 4. C C++ 5. 6. 7. 1 i // shoe1.c: # include # define ADJUST 7. 64 # define SCALE 0. 325 int main ( void ) { double shoe, foot ; shoe = 9. 0; foot = SCALE * shoe

More information

Microsoft Word - 第3章.doc

Microsoft Word - 第3章.doc Java C++ Pascal C# C# if if if for while do while foreach while do while C# 3.1.1 ; 3-1 ischeck Test() While ischeck while static bool ischeck = true; public static void Test() while (ischeck) ; ischeck

More information

! "#$ %$ $ 资 料 与 方 法 $ 调 查 对 象 全 国 东 北 华 北 华 东 西 北 西 南 和 中 南 六 个 大 区 个 省 自 治 区 直 辖 市 * 个 城 市 中 的 & 所 医 院 参 加 了 本 次 调 查 各 省 省 会 城 市 的 医 学 院 校 附 属 医 院 省

! #$ %$ $ 资 料 与 方 法 $ 调 查 对 象 全 国 东 北 华 北 华 东 西 北 西 南 和 中 南 六 个 大 区 个 省 自 治 区 直 辖 市 * 个 城 市 中 的 & 所 医 院 参 加 了 本 次 调 查 各 省 省 会 城 市 的 医 学 院 校 附 属 医 院 省 ! "#$ %$ $ 临 床 研 究 中 国 住 院 新 生 儿 流 行 病 学 调 查 中 华 医 学 会 儿 科 学 分 会 新 生 儿 学 组 摘 要 目 的 通 过 全 国 范 围 内 城 市 医 院 住 院 新 生 儿 的 调 查 以 了 解 我 国 目 前 住 院 新 生 儿 的 疾 病 谱 及 转 归 方 法 抽 取 全 国 个 省 和 自 治 区 的 * 个 城 市 中 的 & 所

More information

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit 6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C51 6.1 C51 6.1.1 C51 C51 ANSI C MCS-51 C51 ANSI C C51 6.1 6.1 C51 bit Byte bit sbit 1 0 1 unsigned char 8 1 0 255 Signed char 8 11 128

More information

新・解きながら学ぶJava

新・解きながら学ぶJava 481! 41, 74!= 40, 270 " 4 % 23, 25 %% 121 %c 425 %d 121 %o 121 %x 121 & 199 && 48 ' 81, 425 ( ) 14, 17 ( ) 128 ( ) 183 * 23 */ 3, 390 ++ 79 ++ 80 += 93 + 22 + 23 + 279 + 14 + 124 + 7, 148, 16 -- 79 --

More information

<5B BECBB0EDB8AEC1F25D312D34B0AD5FC3E2BCAEBCF6BEF7C0DAB7E F31702E504446>

<5B BECBB0EDB8AEC1F25D312D34B0AD5FC3E2BCAEBCF6BEF7C0DAB7E F31702E504446> : 2 = 3 4? 0 an ordered set of unambiguous, executable steps that produces a result and terminates in a finite time (computational theory) ( ) 5 6 (C-) int min, max; float degree, b; char ch, token; /,,,

More information

C/C++ - 函数

C/C++ - 函数 C/C++ Table of contents 1. 2. 3. & 4. 5. 1 2 3 # include # define SIZE 50 int main ( void ) { float list [ SIZE ]; readlist (list, SIZE ); sort (list, SIZE ); average (list, SIZE ); bargragh

More information

Microsoft PowerPoint - ds-1.ppt [兼容模式]

Microsoft PowerPoint - ds-1.ppt [兼容模式] http://jwc..edu.cn/jxgl/ HomePage/Default.asp 2 说 明 总 学 时 : 72( 学 时 )= 56( 课 时 )+ 16( 实 验 ) 行 课 时 间 : 第 1 ~14 周 周 学 时 : 平 均 每 周 4 学 时 上 机 安 排 待 定 考 试 时 间 : 课 程 束 第 8 11 12 章 的 内 容 为 自 学 内 容 ; 目 录 中 标 有

More information

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File 51 C 51 51 C C C C C C * 2003-3-30 pnzwzw@163.com C C C C KEIL uvision2 MCS51 PLM C VC++ 51 KEIL51 KEIL51 KEIL51 KEIL 2K DEMO C KEIL KEIL51 P 1 1 1 1-1 - 1 Project New Project 1 2 Windows 1 3 N C test

More information

untitled

untitled A, 3+A printf( ABCDEF ) 3+ printf( ABCDEF ) 2.1 C++ main main main) * ( ) ( ) [ ].* ->* ()[] [][] ** *& char (f)(int); ( ) (f) (f) f (int) f int char f char f(int) (f) char (*f)(int); (*f) (int) (

More information

## $%& %& ## () #) (( * (+++ () #) #) (+ (+ #) #) ( #, - #)). #))- # ( / / / 0 1 2 0 / $ # ( *. 3. 3 *..# 4 #$ 3 ( 5 ) ### 4 $ # 5, $ ## # 4 $# 5 ( %

## $%& %& ## () #) (( * (+++ () #) #) (+ (+ #) #) ( #, - #)). #))- # ( / / / 0 1 2 0 / $ # ( *. 3. 3 *..# 4 #$ 3 ( 5 ) ### 4 $ # 5, $ ## # 4 $# 5 ( % # # $ %& $ %# ( $ # ( # $ ( $ $ ( ( % ( $ ( $ ( ( % ( % $ ( $ ( ( $ ( ( ( & ( ( ( $ ( ( % %# ( ( $ ( %# % ## $%& %& ## () #) (( * (+++ () #) #) (+ (+ #) #) ( #, - #)). #))- # ( / / / 0 1 2 0 / $ # ( *.

More information

! # % % & # # % #!& % &# % &# % % % # %& ( (!& (! & & % % #!! ) %&! *& % %! % %!! # % %!! %*!& % &# % &# ) ) ( % # # ) % ( (!& (! (!! # % % #!! # ( &!

! # % % & # # % #!& % &# % &# % % % # %& ( (!& (! & & % % #!! ) %&! *& % %! % %!! # % %!! %*!& % &# % &# ) ) ( % # # ) % ( (!& (! (!! # % % #!! # ( &! !#!#!%!&!& #!#!#!#!#!#!! #!% # ( )! & & % & ) % ( %! # )& ) &!) &!% )& )! )!!% & ( (!&!&!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! )! % * % * ( & )!! % & # %! %! )! % * % * ( & )!! % & # %! %! # )! % * % *

More information

4 中 南 大 学 学 报 医 学 版 摘 要 目 的 探 讨 早 发 性 精 神 分 裂 症 患 者 在 静 息 状 态 下 是 否 存 在 脑 功 能 连 接 异 常 以 及 异 常 区 域 的 定 位 方 法 采 用 第 版 美 国 精 神 障 碍 诊 断 与 统 计 手 册 ( * ) (

4 中 南 大 学 学 报 医 学 版 摘 要 目 的 探 讨 早 发 性 精 神 分 裂 症 患 者 在 静 息 状 态 下 是 否 存 在 脑 功 能 连 接 异 常 以 及 异 常 区 域 的 定 位 方 法 采 用 第 版 美 国 精 神 障 碍 诊 断 与 统 计 手 册 ( * ) ( 中 南 大 学 学 报 医 学 版 3! + )! + - + - %$ 58: 58:7& * 1:D * $%&' 1&! & )& "# ( &!& )#% & '& '#! & #& & " ( ) 5*( )/ + ( / + + 6') * )* ) ; + *6 / + * ) *+ ' 6') * )+ * ) 6 9, * : + * ) *+ ) /+( * ( / * ) (

More information

C/C++ - 字符输入输出和字符确认

C/C++ - 字符输入输出和字符确认 C/C++ Table of contents 1. 2. getchar() putchar() 3. (Buffer) 4. 5. 6. 7. 8. 1 2 3 1 // pseudo code 2 read a character 3 while there is more input 4 increment character count 5 if a line has been read,

More information

象棋问题

象棋问题 编程之美 微软技术面试心得 编程之美 微软技术面试心得 2008 年 3 月 28 日电子工业出版 社首次发行, 首印 10000 册, 截至 2008 年 4 月 28 日 10000 册全部售 完 China-pub 当当网连续 6 周计算机图书销量排行第一 2008 年 5 月 12 日第 2 次印刷, 正式上市 中国象棋将帅问题 下过中国象棋的朋友都知道, 双方的 将 和 帅 相隔遥远, 并且它们不能照面

More information

(\244j\257d\276\307\274\351_201508021-C.indd_70%.pdf)

(\244j\257d\276\307\274\351_201508021-C.indd_70%.pdf) 1847-1852 1872 20 1 1896 8000 20 1896 1950 1 1896 1896 13 1900 1900 3 20 2 4 1910 1950 3 1911 1 2 3 4 1927 4 20 300 6 1906 1930 7 1911 5 1919 8 1914 9 1920 10 11 1902 200 6 12 1930 7 " # #! $! 14 15! "!

More information

<4D6963726F736F667420576F7264202D20A4D5A46CA1D0A740A4E5A5FEB6B02E646F63>

<4D6963726F736F667420576F7264202D20A4D5A46CA1D0A740A4E5A5FEB6B02E646F63> 我 讀 孔 子 ( 第 六 屆 ) 征 文 比 賽 獲 獎 作 文 選 集 澳 門 人 文 科 學 學 會 主 辦 澳 門 基 金 會 教 育 暨 青 年 局 贊 助 2008 11 1 一 等 獎 ( 以 下 以 下 按 照 學 校 筆 劃 順 序 排 列 ) 將 心 比 心, 推 己 及 人 王 錦 江 ( 培 正 中 學 ) 己 所 不 欲, 勿 施 於 人 聖 人 孔 子 這 句 只 有 八

More information

新・解きながら学ぶC言語

新・解きながら学ぶC言語 330!... 67!=... 42 "... 215 " "... 6, 77, 222 #define... 114, 194 #include... 145 %... 21 %... 21 %%... 21 %f... 26 %ld... 162 %lf... 26 %lu... 162 %o... 180 %p... 248 %s... 223, 224 %u... 162 %x... 180

More information

Microsoft Word - d.doc

Microsoft Word - d.doc 我 看 > 之 感 想 7B 蔡 進 軍 電 視 連 續 劇 在 校 園 出 現 了 一 股 熱 潮 現 象 同 學 們 無 論 在 小 息 或 午 膳 時 間 爭 相 討 論 項 羽 劉 邦 的 英 雄 氣 概 這 現 象 形 成 了 一 種 風 氣, 一 種 誘 惑, 什 至 是 壓 力 不 看 似 乎 是 一 大 憾 事, 到 底 該 劇 有

More information

新版 明解C++入門編

新版 明解C++入門編 511!... 43, 85!=... 42 "... 118 " "... 337 " "... 8, 290 #... 71 #... 413 #define... 128, 236, 413 #endif... 412 #ifndef... 412 #if... 412 #include... 6, 337 #undef... 413 %... 23, 27 %=... 97 &... 243,

More information

C C

C C C C 2017 3 8 1. 2. 3. 4. char 5. 2/101 C 1. 3/101 C C = 5 (F 32). 9 F C 4/101 C 1 // fal2cel.c: Convert Fah temperature to Cel temperature 2 #include 3 int main(void) 4 { 5 float fah, cel; 6 printf("please

More information

理 L~ 胆 有 纪 嚣 中 国 共 产 党 早 期 的 主 要 领 导 人, 伟 大 的 马 克 思 主 义 者, 卓 越 的 无 产 阶 级 革 命 家 理 论 家 和 宣 传 家, 中 国 革 命 文 学 事 业 的 重 要 奠 基 人 一 一 瞿 秋 白 同 志 诞 辰 110 周 年 暨

理 L~ 胆 有 纪 嚣 中 国 共 产 党 早 期 的 主 要 领 导 人, 伟 大 的 马 克 思 主 义 者, 卓 越 的 无 产 阶 级 革 命 家 理 论 家 和 宣 传 家, 中 国 革 命 文 学 事 业 的 重 要 奠 基 人 一 一 瞿 秋 白 同 志 诞 辰 110 周 年 暨 陈 铁 健, 却 因 为 多 余 的 话 一 度 被 误 为 多 余 的 人 著 品 理 L~ 胆 有 纪 嚣 中 国 共 产 党 早 期 的 主 要 领 导 人, 伟 大 的 马 克 思 主 义 者, 卓 越 的 无 产 阶 级 革 命 家 理 论 家 和 宣 传 家, 中 国 革 命 文 学 事 业 的 重 要 奠 基 人 一 一 瞿 秋 白 同 志 诞 辰 110 周 年 暨 伟 大 的 五

More information

51 C 51 isp 10 C PCB C C C C KEIL

51 C 51 isp 10   C   PCB C C C C KEIL http://wwwispdowncom 51 C " + + " 51 AT89S51 In-System-Programming ISP 10 io 244 CPLD ATMEL PIC CPLD/FPGA ARM9 ISP http://wwwispdowncom/showoneproductasp?productid=15 51 C C C C C ispdown http://wwwispdowncom

More information

untitled

untitled 1-1 1-2 1-3 1-4 1-5 1-6 1-7 1-8 1-1-1 C int main(void){ int x,y,z; int sum=0; double avg=0.0; scanf("%d",&x) ; scanf("%d",&y) ; scanf("%d",&z) ; sum=x+y+z ; avg=sum/3.0; printf("%f\n",avg); system("pause");

More information

C/C++ 语言 - 循环

C/C++ 语言 - 循环 C/C++ Table of contents 7. 1. 2. while 3. 4. 5. for 6. 8. (do while) 9. 10. (nested loop) 11. 12. 13. 1 // summing.c: # include int main ( void ) { long num ; long sum = 0L; int status ; printf

More information

議 程 前 發 言 冀 新 官 上 任 燒 好 三 把 火 用 好 三 盆 水 陳 明 金 2014 年 11 月 18 日 澳 門 特 區 政 府 即 將 換 屆, 各 種 傳 聞 令 廣 大 居 民 感 覺 到, 絕 大 部 份 主 要 官 員 都 會 換 人 雖 然 他 們 對 人 選 無 話

議 程 前 發 言 冀 新 官 上 任 燒 好 三 把 火 用 好 三 盆 水 陳 明 金 2014 年 11 月 18 日 澳 門 特 區 政 府 即 將 換 屆, 各 種 傳 聞 令 廣 大 居 民 感 覺 到, 絕 大 部 份 主 要 官 員 都 會 換 人 雖 然 他 們 對 人 選 無 話 促 重 整 運 輸 部 門 冀 革 新 交 通 政 策 鄭 安 庭 議 員 議 程 前 發 言 2014 年 11 月 18 日 主 席 各 位 同 事 : 今 天 我 的 議 程 前 發 言 題 目 是 : 促 重 整 運 輸 部 門 冀 革 新 交 通 政 策 剛 剛 完 成 的 第 61 屆 澳 門 格 蘭 披 治 大 賽 車 令 到 遊 客 絡 繹 不 絕 的 澳 門 更 為 熱 烈, 關

More information

新版 明解C言語入門編

新版 明解C言語入門編 328, 4, 110, 189, 103, 11... 318. 274 6 ; 10 ; 5? 48 & & 228! 61!= 42 ^= 66 _ 82 /= 66 /* 3 / 19 ~ 164 OR 53 OR 164 = 66 ( ) 115 ( ) 31 ^ OR 164 [] 89, 241 [] 324 + + 4, 19, 241 + + 22 ++ 67 ++ 73 += 66

More information

CHAPTER 1

CHAPTER 1 CHAPTER 1 1-1 System Development Life Cycle; SDLC SDLC Waterfall Model Shelly 1995 1. Preliminary Investigation 2. System Analysis 3. System Design 4. System Development 5. System Implementation and Evaluation

More information

新・明解C言語入門編『索引』

新・明解C言語入門編『索引』 !... 75!=... 48 "... 234 " "... 9, 84, 240 #define... 118, 213 #include... 148 %... 23 %... 23, 24 %%... 23 %d... 4 %f... 29 %ld... 177 %lf... 31 %lu... 177 %o... 196 %p... 262 %s... 242, 244 %u... 177

More information

C PICC C++ C++ C C #include<pic.h> C static volatile unsigned char 0x01; static volatile unsigned char 0x02; static volatile unsigned cha

C PICC C++ C++ C C #include<pic.h> C static volatile unsigned char 0x01; static volatile unsigned char 0x02; static volatile unsigned cha CYPOK CYPOK 1 UltraEdit Project-->Install Language Tool: Language Suite----->hi-tech picc Tool Name ---->PICC Compiler Executable ---->c:hi-picinpicc.exe ( Command-line Project-->New Project-->File Name--->myc

More information

int *p int a 0x00C7 0x00C7 0x00C int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++;

int *p int a 0x00C7 0x00C7 0x00C int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++; Memory & Pointer trio@seu.edu.cn 2.1 2.1.1 1 int *p int a 0x00C7 0x00C7 0x00C7 2.1.2 2 int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++; 2.1.3 1. 2. 3. 3 int A,

More information

$$() * * ) ) + + +, ) - ),,, ) ). /, ) ) ). /01(). /,,. / ) ), ) ), + + ) ), ) ) ) ) ), $ ( ) $ $ $ ( ) * $ $ * * (, -. -/01/. (, -. * $ ) ( + $ $ ( ) $ ** $ $ $ $ ** ** + $ ), $ $ ( )) * ( * + $ $ (

More information

全国计算机技术与软件专业技术资格(水平)考试

全国计算机技术与软件专业技术资格(水平)考试 全 国 计 算 机 技 术 与 软 件 专 业 技 术 资 格 ( 水 平 ) 考 试 2008 年 上 半 年 程 序 员 下 午 试 卷 ( 考 试 时 间 14:00~16:30 共 150 分 钟 ) 试 题 一 ( 共 15 分 ) 阅 读 以 下 说 明 和 流 程 图, 填 补 流 程 图 中 的 空 缺 (1)~(9), 将 解 答 填 入 答 题 纸 的 对 应 栏 内 [ 说 明

More information

untitled

untitled 1 Outline 數 料 數 數 列 亂數 練 數 數 數 來 數 數 來 數 料 利 料 來 數 A-Z a-z _ () 不 數 0-9 數 不 數 SCHOOL School school 數 讀 school_name schoolname 易 不 C# my name 7_eleven B&Q new C# (1) public protected private params override

More information

ebook 132-6

ebook 132-6 6 SQL Server Windows NT Windows 2000 6.1 Enterprise Manager SQL Server Enterprise Manager( ) (Microsoft Management C o n s o l e M M C ) Enterprise Manager SQL Server Enterprise Manager 6.1.1 Enterprise

More information

1

1 1 2 3 4 5 GNUDebugger 6 7 void main(int argc, char **argv){ vulncpy(argv[1]); return; } void vulncpy(char *a){ char buf[30]; strcpy(buf, a); return; } *argv[1] buf Shellcode *argv[1]... &buf &buf 8 strcpy

More information

口 的 70% 连 南 县 的 瑶 族. 有 排 瑶 过 山 瑶 排 瑶 6 万 多 人 住 在 三 排 南 岗 i 雨 水 大 麦 山 大 坪 香 坪 盘 石 金 坑 8 个 乡 镇. 形 成 了 占 全 县 面 积 80% 的 聚 居 地 << 连 州 志 } 卷 八 排 瑶 志 曰 在 连 者

口 的 70% 连 南 县 的 瑶 族. 有 排 瑶 过 山 瑶 排 瑶 6 万 多 人 住 在 三 排 南 岗 i 雨 水 大 麦 山 大 坪 香 坪 盘 石 金 坑 8 个 乡 镇. 形 成 了 占 全 县 面 积 80% 的 聚 居 地 << 连 州 志 } 卷 八 排 瑶 志 曰 在 连 者 居 住 地 域 与 文 化 变 迁 一 一 以 广 东 瑶 族 为 例 赵 家 旺 * 中 国 是 个 多 民 族 国 家. 共 有 56 个 民 族. 其 中 少 数 民 族 有 归 个 根 据 1990 年 的 人 口 普 查. 全 国 总 人 口 11 亿 3 千 多 万 人. 汉 族 10 忆 4 千 多 万 人. 占 全 国 总 人 口 的 90% 多. 少 数 民 族 人 口 不 到 10%

More information

C/C++程序设计 - 字符串与格式化输入/输出

C/C++程序设计 - 字符串与格式化输入/输出 C/C++ / Table of contents 1. 2. 3. 4. 1 i # include # include // density of human body : 1. 04 e3 kg / m ^3 # define DENSITY 1. 04 e3 int main ( void ) { float weight, volume ; int

More information

nooog

nooog C : : : , C C,,, C, C,, C ( ), ( ) C,,, ;,, ; C,,, ;, ;, ;, ;,,,, ;,,, ; : 1 9, 2 3, 4, 5, 6 10 11, 7 8, 12 13,,,,, 2008 1 1 (1 ) 1.1 (1 ) 1.1.1 ( ) 1.1.2 ( ) 1.1.3 ( ) 1.1.4 ( ) 1.1.5 ( ) 1.2 ( ) 1.2.1

More information

第 期 熊 安 萍 等 *1$ 文 件 系 统 中 范 围 锁 机 制 的 应 用 研 究! 锁 命 名 空 间 '+'($($ 描 述 了 资 源 和 锁 的 集 合 它 同 时 在 客 户 节 点 和 服 务 节 点 存 在 不 同 之 处 只 是 利 用 一 个 数 据 标 识 来 有 效 区

第 期 熊 安 萍 等 *1$ 文 件 系 统 中 范 围 锁 机 制 的 应 用 研 究! 锁 命 名 空 间 '+'($($ 描 述 了 资 源 和 锁 的 集 合 它 同 时 在 客 户 节 点 和 服 务 节 点 存 在 不 同 之 处 只 是 利 用 一 个 数 据 标 识 来 有 效 区 第 卷 第 期 重 庆 邮 电 大 学 学 报 自 然 科 学 版 年 月!"#$" %$&'$ ''())$($*($'('+$$,-./0 1' 文 件 系 统 中 范 围 锁 机 制 的 应 用 研 究 熊 安 萍 葛 军 邹 洋 重 庆 邮 电 大 学 计 算 机 科 学 与 技 术 学 院 重 庆! 摘 要 分 布 式 锁 机 制 是 分 布 式 文 件 系 统 的 重 要 机 制 *1$

More information

.' 6! "! 6 "'' 6 7% $! 7%/'& 人 类 非 洲 锥 虫 病 又 称 昏 睡 病 是 布 氏 锥 虫 冈 比 亚 亚 种!! 或 布 氏 锥 虫 罗 得 西 亚 种 "#$$ %! &'!!! 感 染 引 起 的 一 种 寄 生 虫 病 以 采 采 蝇! 为 传 播 ' 媒

.' 6! ! 6 '' 6 7% $! 7%/'& 人 类 非 洲 锥 虫 病 又 称 昏 睡 病 是 布 氏 锥 虫 冈 比 亚 亚 种!! 或 布 氏 锥 虫 罗 得 西 亚 种 #$$ %! &'!!! 感 染 引 起 的 一 种 寄 生 虫 病 以 采 采 蝇! 为 传 播 ' 媒 ) 文 章 编 号 '.')) 论 著!"#$%&' ' ' ' ' '!"# ' $%& ' ' '8 目 的 对 ' 例 输 入 性 非 洲 锥 虫 病 患 者 进 行 实 验 室 诊 断 与 病 原 体 鉴 定 方 法 收 集 患 者 的 临 床 发 病 与 流 行 病 学 调 查 资 料 采 集 血 样 脑 脊 液 瑞 氏 吉 氏 染 色 涂 片 后 镜 检 用 布 氏 锥 虫 表 达 位

More information

# # # # # # # # # % # & # & # # # () # (( # * * (( # (+ # ( (# # (# # (# # ( # ( +) (

# # # # # # # # # % # & # & # # # () # (( # * * (( # (+ # ( (# # (# # (# # ( # ( +) ( # # # # # # # # # % # & # & # # # () # (( # * * (( # (+ # ( (# # (# # (# # ( # ( +) ( # +) # +( # ++ # + + # + # +# # + # +% +& # +& # + # + # ) ( # ( # + # # # # # # ) ( # + # # # # + # # # # # # #

More information

1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10

1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10 Java V1.0.1 2007 4 10 1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10 6.2.10 6.3..10 6.4 11 7.12 7.1

More information

6 22 22 23 23 24 24 1., 2., 3., 24 26 26 28 30 31 31 31 32 32 34 34 1. 2., 3.,, 34 37 37 39 40 43 44 2

6 22 22 23 23 24 24 1., 2., 3., 24 26 26 28 30 31 31 31 32 32 34 34 1. 2., 3.,, 34 37 37 39 40 43 44 2 1 1 1., 2.,, 3., 1 3 3 5 7 9 11 11 12 12 13 13 1., 2.,, 3., 13 15 15 18 19 21 1 6 22 22 23 23 24 24 1., 2., 3., 24 26 26 28 30 31 31 31 32 32 34 34 1. 2., 3.,, 34 37 37 39 40 43 44 2 44 45 45 47 1., 2.

More information

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.07.doc

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.07.doc 2 5 8 11 0 1. 13 2. 15 3. 18 1 1. 22 2. 25 3. 27 2 1. 35 2. 38 3. 41 4. 43 5. 48 6. 50 3 1. 56 2. 59 3. 63 4. 65 5. 69 13 22 35 56 6. 74 7. 82 8. 84 9. 87 10. 97 11. 102 12. 107 13. 111 4 114 1. 114 2.

More information

论 文 :?,,,,,,,,,, (, ),, ( ),,,,,,,, (, ) : (, ),,, :,, ;,,,,

论 文 :?,,,,,,,,,, (, ),, ( ),,,,,,,, (, ) : (, ),,, :,, ;,,,, :? * 珠 江 三 角 洲 农 民 工 工 资 的 决 定 模 型 刘 林 平 张 春 泥 : 本 文 通 过 对 珠 江 三 角 洲 农 民 工 问 卷 调 查 资 料 的 回 归 分 析, 构 建 了 一 个 决 定 农 民 工 工 资 水 平 的 模 型 本 文 发 现, 人 力 资 本 中 的 教 育 年 限 培 训 工 龄 等 变 量 对 农 民 工 工 资 有 显 著 的 正 向 影

More information

( CIP) /. :, ( ) ISBN TP CIP ( 2005) : : : : * : : 174 ( A ) : : ( 023) : ( 023)

( CIP) /. :, ( ) ISBN TP CIP ( 2005) : : : : * : : 174 ( A ) : : ( 023) : ( 023) ( CIP) /. :, 2005. 2 ( ) ISBN 7-5624-3339-9.......... TP311. 1 CIP ( 2005) 011794 : : : : * : : 174 ( A ) :400030 : ( 023) 65102378 65105781 : ( 023) 65103686 65105565 : http: / /www. cqup. com. cn : fxk@cqup.

More information

<4D F736F F D20D1B0D5D2D7EEB4F3B5C44BB8F6CAFD2E646F63>

<4D F736F F D20D1B0D5D2D7EEB4F3B5C44BB8F6CAFD2E646F63> 寻找最大的 K 个数 在面试中, 有下面的问答 : 问 : 有很多个无序的数, 我们姑且假定它们各不相等, 怎么选出其中最大的若干个数呢? 答 : 可以这样写 :int array[100] 问 : 好, 如果有更多的元素呢? 答 : 那可以改为 :int array[1000] 问 : 如果我们有很多元素, 例如 1 亿个浮点数, 怎么办? 答 : 个, 十, 百, 千, 万 那可以写 :float

More information

吴 燕 / 国 民 政 府 时 期 四 川 县 级 司 法 人 事 制 度 改 革 研 究 司 法 公 署, 或 称 法 院 司 法 处 ; 在 人 事 任 命 上, 司 法 厅 省 政 府 地 方 军 事 当 局 高 等 法 院 均 可 委 派 县 级 司 法 人 员 ; 审 判 权 的 大 小

吴 燕 / 国 民 政 府 时 期 四 川 县 级 司 法 人 事 制 度 改 革 研 究 司 法 公 署, 或 称 法 院 司 法 处 ; 在 人 事 任 命 上, 司 法 厅 省 政 府 地 方 军 事 当 局 高 等 法 院 均 可 委 派 县 级 司 法 人 员 ; 审 判 权 的 大 小 专 题 论 文 国 民 政 府 时 期 四 川 县 级 司 法 人 事 制 度 改 革 研 究 * 吴 燕 内 容 提 要 国 民 政 府 时 期, 最 高 司 法 行 政 当 局 力 图 对 县 级 司 法 人 事 制 度 进 行 改 革, 并 在 此 基 础 上 推 动 县 法 院 的 普 及 四 川 各 县 司 法 机 构 在 省 高 院 的 部 署 下 实 施 了 改 革 在 人 事 任 命

More information

untitled

untitled 不 料 料 例 : ( 料 ) 串 度 8 年 數 串 度 4 串 度 數 數 9- ( ) 利 數 struct { ; ; 數 struct 數 ; 9-2 數 利 數 C struct 數 ; C++ 數 ; struct 省略 9-3 例 ( 料 例 ) struct people{ char name[]; int age; char address[4]; char phone[]; int

More information

幻灯片 1

幻灯片 1 白 色 花 诗 集 人 民 文 学 出 版 社 1981 年 出 版 共 收 七 月 派 诗 人 阿 垅 鲁 藜 孙 钿 彭 燕 郊 方 然 冀 汸 钟 瑄 郑 思 曾 卓 杜 谷 绿 原 胡 征 芦 甸 徐 放 牛 汉 鲁 煤 化 铁 朱 健 朱 谷 怀 罗 洛 等 二 十 人 的 诗 作 一 百 十 九 首 集 名 出 自 阿 垅 未 入 选 的 一 首 诗 中 要 开 作 一 枝 白 色 花

More information

Microsoft Word - CPE考生使用手冊160524.docx

Microsoft Word - CPE考生使用手冊160524.docx 大 學 程 式 能 力 檢 定 (CPE) 考 生 使 用 手 冊 2016 年 5 月 24 日 這 份 手 冊 提 供 給 參 加 CPE 檢 定 考 試 的 考 生 內 容 包 含 考 試 環 境 的 使 用, 以 及 解 題 時 所 使 用 I/O 的 基 本 知 識 1. 如 欲 報 名 參 加 CPE 考 試, 請 先 於 CPE 網 站 完 成 帳 號 註 冊, 然 後 再 報 名 該

More information

C/C++语言 - 分支结构

C/C++语言 - 分支结构 C/C++ Table of contents 1. if 2. if else 3. 4. 5. 6. continue break 7. switch 1 if if i // colddays.c: # include int main ( void ) { const int FREEZING = 0; float temperature ; int cold_ days

More information

/0/ "!!!!! " "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! " # $ % && $ $ $ $ ( $ $ ( $ ) % * ( * $ $ $ $ $ $ $ ( $ $ $ $ $ # ( $ $ ( $ $ $ ( $ $ $ $

/0/ !!!!!  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!  # $ % && $ $ $ $ ( $ $ ( $ ) % * ( * $ $ $ $ $ $ $ ( $ $ $ $ $ # ( $ $ ( $ $ $ ( $ $ $ $ "!!!!!!!!! " "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! " # $ /0/ "!!!!! " "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! " # $ % && $ $ $ $ ( $ $ ( $ ) % * ( * $ $ $

More information

人 才 培 养 与 专 业 建 设 人 才 培 养 与 专 业 建 设 首 都 师 范 大 学 重 点 专 业 培 育 与 建 设 计 划 实 施 办 法 校 发 号 根 据 首 都 师 范 大 学 十 二 五 时 期 本 科 专 业 建 设 与 发 展 规 划 安 排 为 进 一 步 加 强 学 校 本 科 人 才 培 养 工 作 加 大 专 业 建 设 力 度 提 升 专 业 建 设 水 平

More information

Windows RTEMS 1 Danilliu MMI TCP/IP QEMU i386 QEMU ARM POWERPC i386 IPC PC104 uc/os-ii uc/os MMI TCP/IP i386 PORT Linux ecos Linux ecos ecos eco

Windows RTEMS 1 Danilliu MMI TCP/IP QEMU i386 QEMU ARM POWERPC i386 IPC PC104 uc/os-ii uc/os MMI TCP/IP i386 PORT Linux ecos Linux ecos ecos eco Windows RTEMS 1 Danilliu MMI TCP/IP 80486 QEMU i386 QEMU ARM POWERPC i386 IPC PC104 uc/os-ii uc/os MMI TCP/IP i386 PORT Linux ecos Linux ecos ecos ecos Email www.rtems.com RTEMS ecos RTEMS RTEMS Windows

More information

(2) 廠 商 具 有 維 修 維 護 或 售 後 服 務 能 力 之 證 明 ;(3) 廠 商 具 有 製 造 供 應 或 承 做 能 力 之 證 明 ;(4) 具 有 相 當 人 力 之 證 明 屬 特 定 資 格 之 ㄧ 8.(3) 機 關 辦 理 預 算 金 額 為 新 台 幣 四 億 元

(2) 廠 商 具 有 維 修 維 護 或 售 後 服 務 能 力 之 證 明 ;(3) 廠 商 具 有 製 造 供 應 或 承 做 能 力 之 證 明 ;(4) 具 有 相 當 人 力 之 證 明 屬 特 定 資 格 之 ㄧ 8.(3) 機 關 辦 理 預 算 金 額 為 新 台 幣 四 億 元 政 府 採 購 法 規 概 要 題 庫 最 後 更 新 日 期 :( 人 發 局 第 一 期 ) 2010/03/20 選 擇 題 : ( 答 案 ) 正 確 錯 誤 解 析 1.(3) 機 關 訂 定 招 標 文 件, 何 者 正 確?(1) 廠 商 履 行 契 約 所 必 須 具 備 之 財 務 商 業 或 技 術 資 格 條 件, 不 考 慮 廠 商 在 外 國 之 商 業 活 動 應 (2)

More information

年 第 期 许 德 刚 基 于 遗 忘 因 子 -./ 算 法 的 自 适 应 直 达 波 对 消 技 术 * 达 站 周 围 的 环 境 可 能 比 较 复 杂 来 自 近 距 离 不 同 固 定 物 体 所 反 射 的 多 径 信 号 也 强 于 回 波 信 号 大 大 影 响 了 雷 达 的

年 第 期 许 德 刚 基 于 遗 忘 因 子 -./ 算 法 的 自 适 应 直 达 波 对 消 技 术 * 达 站 周 围 的 环 境 可 能 比 较 复 杂 来 自 近 距 离 不 同 固 定 物 体 所 反 射 的 多 径 信 号 也 强 于 回 波 信 号 大 大 影 响 了 雷 达 的 第 期 年 月! " #$ %# &' # 工 程 与 应 用 # $$ # #( )*$### 基 于 遗 忘 因 子 算 法 的 自 适 应 直 达 波 对 消 技 术 许 德 刚 中 国 电 子 科 技 集 团 公 司 第 + 研 究 所 合 肥 ++ 摘 要 在 以 民 用 广 播 电 视 及 &, 等 信 号 为 照 射 源 的 无 源 雷 达 系 统 中 由 于 发 射 信 号 为 连

More information

要 站 立 得 稳, 我 在 十 字 架 上 已 经 都 抢 夺 过 来 了, 将 魔 鬼 不 让 你 们 来 享 用 的 都 推 开 了, 这 是 让 我 们 来 得 到 的 话 语 我 们 再 也 不 被 奴 仆 的 轭 辖 制, 要 来 拥 有 才 可 以 明 知 道 却 不 去 抢 夺 过

要 站 立 得 稳, 我 在 十 字 架 上 已 经 都 抢 夺 过 来 了, 将 魔 鬼 不 让 你 们 来 享 用 的 都 推 开 了, 这 是 让 我 们 来 得 到 的 话 语 我 们 再 也 不 被 奴 仆 的 轭 辖 制, 要 来 拥 有 才 可 以 明 知 道 却 不 去 抢 夺 过 日 分 期 :2014 年 1 月 5 日 类 : 圣 餐 主 日 讲 道 证 道 人 : 赵 镛 基 牧 师 题 目 : 什 么 样 的 人 能 够 享 受 到 福 分 本 文 话 语 : 约 书 亚 记 1:11 < 本 文 > 你 们 要 走 遍 营 中, 吩 咐 百 姓 说, 当 预 备 食 物 因 为 三 日 之 内 你 们 要 过 这 约 旦 河, 进 去 得 耶 和 华 你 们 神 赐

More information

摘 要 就 一 个 游 戏 而 言, 对 于 参 与 者, 需 要 研 究 不 同 的 策 略 去 达 到 胜 利, 而 对 于 游 戏 设 计 者, 则 需 要 研 究 这 个 游 戏 的 平 衡 性 与 记 分 规 则 的 合 理 性, 并 不 断 去 调 整 它 们 在 本 文 中, 我 们

摘 要 就 一 个 游 戏 而 言, 对 于 参 与 者, 需 要 研 究 不 同 的 策 略 去 达 到 胜 利, 而 对 于 游 戏 设 计 者, 则 需 要 研 究 这 个 游 戏 的 平 衡 性 与 记 分 规 则 的 合 理 性, 并 不 断 去 调 整 它 们 在 本 文 中, 我 们 三 国 杀 游 戏 平 衡 性 与 记 分 规 则 合 理 性 分 析 报 告 摘 要 就 一 个 游 戏 而 言, 对 于 参 与 者, 需 要 研 究 不 同 的 策 略 去 达 到 胜 利, 而 对 于 游 戏 设 计 者, 则 需 要 研 究 这 个 游 戏 的 平 衡 性 与 记 分 规 则 的 合 理 性, 并 不 断 去 调 整 它 们 在 本 文 中, 我 们 将 站 在 游 戏 设

More information

北魏山东佛教文化个案研究

北魏山东佛教文化个案研究 北 魏 山 东 佛 教 文 化 个 案 研 究 一 北 魏 时 期 佛 教 在 山 东 的 传 播 与 发 展 以 滨 州 博 兴 龙 华 寺 为 代 表 社 会 背 景 北 魏 佛 教 的 发 展 是 伴 随 着 佛 教 的 中 国 化 即 汉 化 的 过 程 而 不 断 发 展 的, 同 时 也 带 有 北 魏 统 治 者 作 为 少 数 民 族 的 本 身 特 色 自 汉 通 西 域, 佛 教

More information

23 10 18 5 1997 12 1 (1) (7) (16) (25) (35) (37) (44) (48) (51) (54) ( ) (58) (69) (74) (77) (89) (94) (98) (100) (107) (113) (117) (121) (126) " 37 38 ( ) ( ) ( ) ( ) 300 1 500 200 1938 1 30 15 8 1937

More information

附件1.FIT)

附件1.FIT) 附 件 : 上 海 市 科 技 创 新 人 才 激 励 政 策 操 作 指 南 上 海 市 科 技 创 新 人 才 激 励 政 策 操 作 指 南 2011 年 1 月 国 有 企 业 科 技 创 新 激 励 操 作 指 南 附 件 : 上 海 市 科 技 创 新 人 才 激 励 政 策 操 作 指 南 目 录 1. 人 才 引 进 132 1.1 上 海 市 户 籍 及 居 住 证 132 1.2

More information

毛主席的猪

毛主席的猪 在 孔 孟 之 乡 掘 孔 孟 后 裔 的 坟, 在 生 产 队 的 田 里 放 毛 主 席 的 猪, 也 只 有 知 青 才 有 这 " 特 权 " 吟 了 < 血 色 黄 昏 >, 叹 了 < 蹉 跎 岁 月 >, 再 哼 一 哼 知 青 生 活 中 那 千 韵 百 律 的 曲 曲 小 调 儿, 也 别 有 一 番 滋 味 在 心 头 扒 坟 梁 平 扒 坟, 是 当 地 老 百 姓 的 叫 法

More information

Microsoft Word - HERBRECIPES《中國藥膳》.doc

Microsoft Word - HERBRECIPES《中國藥膳》.doc 中 國 藥 膳 僅 供 參 考, 請 勿 亂 服 若 欲 服 用, 自 行 負 責 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 藥 膳 系 列 總 目 錄 第 一 章 總 論 第 一 節 簡 介 第 二 節 特 點 1. 注 重 整 體, 辯 證 施 食 2. 防 治 兼 宜, 效 果 顯 著 3. 良 藥 可 口, 服 食 方 便 第 三 節 藥 膳 內 容 與 分 類

More information

循经指压疗法

循经指压疗法 循 经 指 压 疗 法 陈 玉 琴 0 自 序 我 没 有 进 过 医 学 院, 更 没 有 学 过 解 剖 学 我 是 一 个 自 学 中 医 的 人, 思 考 问 题 本 着 简 单 化 和 直 观 的 原 则 循 经 指 压 健 康 疗 法 就 是 我 二 十 年 实 践 的 心 得 体 会 愿 以 此 作 向 资 深 的 中 医 师 请 教, 尤 其 是 中 医 大 的 教 师, 如 果 你

More information

从 因 人 设 事 谈 起 一 部 文 学 作 品 ( 尤 其 是 长 篇 小 说 ) 的 结 构 至 关 重 要, 因 为 它 是 文 本 整 体 的 组 织 方 式 和 内 部 构 造, 既 是 形 式 又 是 内 容 ; 乃 是 表 达 主 题 最 有 效 的 艺 术 手 段 元 代 戏 曲

从 因 人 设 事 谈 起 一 部 文 学 作 品 ( 尤 其 是 长 篇 小 说 ) 的 结 构 至 关 重 要, 因 为 它 是 文 本 整 体 的 组 织 方 式 和 内 部 构 造, 既 是 形 式 又 是 内 容 ; 乃 是 表 达 主 题 最 有 效 的 艺 术 手 段 元 代 戏 曲 凤 头 猪 肚 豹 尾 凤 头 猪 肚 豹 尾 谈 死 水 微 澜 的 结 构 艺 术 艾 芦 摘 要 : 论 文 从 死 水 微 澜 的 人 物 和 场 景 描 写 入 手, 具 体 地 分 析 了 这 部 长 篇 小 说 的 艺 术 结 构, 同 时 针 对 以 往 研 究 者 的 某 些 观 点 提 出 了 不 同 的 见 解 ; 认 为 作 品 以 精 粹 见 长, 以 少 胜 多, 由 小

More information



 辽 宁 时 代 万 恒 控 股 集 团 有 限 公 司 大 事 记 (2009 年 ) 集 团 办 公 室 编 辑 1 一 2009 年 组 织 沿 革 ( 一 ) 集 团 总 部 组 织 机 构 ( 部 门 设 置 ) 图 示 辽 宁 时 代 万 恒 控 股 集 团 有 限 公 司 监 事 会 董 事 会 党 委 董 事 会 秘 书 经 理 层 工 会 纪 委 信 办 企 审 财 国 党 监 息

More information

2

2 2 3 02 03 04 1 劳 动 者 画 像 性 别 与 年 龄 分 布 涉 诉 劳 动 者 中, 男 性 人 数 为 女 性 人 数 的 近 两 倍, 明 显 多 于 女 性 ; 男 性 劳 动 者 中 40-50 岁 年 龄 段 的 占 比 最 高, 女 性 劳 动 者 中 30-40 岁 年 龄 段 的 占 比 最 高 * 40% 36% 65% 23% 35% 15% 24% 13% 38%

More information

动 物 中 能 促 进 但 会 在 表 达 的 物 种 中 产 生 不 良 反 应 如 引 起 脂 肪 肝 或 升 高 74-4 水 平 2 # ) 9 等 建 立 血 脂 异 常 和 肝 硬 化 仓 鼠 模 型 进 行 研 究 结 果 表 明 7'&$ 不 能 改 善 血 脂 异 常 和 肝 硬

动 物 中 能 促 进 但 会 在 表 达 的 物 种 中 产 生 不 良 反 应 如 引 起 脂 肪 肝 或 升 高 74-4 水 平 2 # ) 9 等 建 立 血 脂 异 常 和 肝 硬 化 仓 鼠 模 型 进 行 研 究 结 果 表 明 7'&$ 不 能 改 善 血 脂 异 常 和 肝 硬 综 述 胆 固 醇 逆 向 转 运 的 研 究 进 展 及 中 医 药 干 预 何 芷 慧 江 巍 李 松 胆 固 醇 逆 向 转 运,0! 1! 1 ) 1 是 胆 固 醇 从 周 围 组 织 转 运 到 肝 脏 进 行 再 循 环 或 以 胆 酸 形 式 排 出 体 外 的 过 程 是 机 体 清 除 多 余 胆 固 醇 的 重 要 生 理 途 径 若 受 影 响 血 浆 中 含 量 过 高 的

More information

ebook

ebook 3 3 3.1 3.1.1 ( ) 90 3 1966 B e r n s t e i n P ( i ) R ( i ) W ( i P ( i P ( j ) 1) R( i) W( j)=φ 2) W( i) R( j)=φ 3) W( i) W( j)=φ 3.1.2 ( p r o c e s s ) 91 Wi n d o w s Process Control Bl o c k P C

More information

击 剑, 他 一 剑 能 刺 穿 大 将 身 上 的 铁 甲, 也 能 刺 穿 春 风 中 的 柳 絮 你 若 是 他 的 朋 友, 遇 着 他 心 情 特 别 好 的 时 候, 他 也 许 会 赤 手 空 拳 跃 入 黄 河 捉 两 尾 鲤 鱼, 在 从 水 里 跃 出 抓 两 只 秋 雁, 为

击 剑, 他 一 剑 能 刺 穿 大 将 身 上 的 铁 甲, 也 能 刺 穿 春 风 中 的 柳 絮 你 若 是 他 的 朋 友, 遇 着 他 心 情 特 别 好 的 时 候, 他 也 许 会 赤 手 空 拳 跃 入 黄 河 捉 两 尾 鲤 鱼, 在 从 水 里 跃 出 抓 两 只 秋 雁, 为 标 题 > 欢 乐 英 雄 作 者 : 古 龙 郭 大 路 与 王 动 燕 七 与 蚂 蚁 林 太 平 元 宝 女 人 和 狗 第 一 章 女 人 和 钱 第 二 章 第 三 章 麦 老 广 第 四 章 第 五 章 第 六 章 第 七 章 第 八 章 第 九 章 第 十 章 第 十 一 章 第 十 二 章 金 子 与 面 子 第 十 三 章 金 子 与 教

More information

唐宋八大家.doc

唐宋八大家.doc 唐 宋 八 大 家 目 录 名 称 的 起 源...1 韩 愈 (768-824)...1 柳 宗 元 (773-819)...2 欧 阳 修 (1007-1072)...4 苏 洵 (1009 1066)...5 苏 轼 (1037-1101)...8 苏 辙 (1039-1112)...11 王 安 石 (1021-1086)...12 曾 巩 (1019-1083)...18 概 括...20

More information

A5-«e¨¥¥Ø¿ý-5000w-990921

A5-«e¨¥¥Ø¿ý-5000w-990921 > 項 目 郵 地 局 銀 行 合作金庫 點 服務時間/內容 肆 醫療保健小常識 週一至週五(09:00-17:00) > 週一至週五(09:00-15:30) 24 小時 便利商店 週一至週日(00:00-24:00) 醫療用品 週一至週日(00:00-24:00) 何謂血壓 指心臟收縮或舒張時 血液作用於動脈血管壁的壓力 一般正常成人的收 縮壓應控制在 130

More information

桥 的 一 位 长 白 剑 派 名 宿 看 中, 收 为 弟 子 这 位 长 白 剑 派 的 名 宿 行 辈 甚 高, 从 不 示 人 姓 名, 也 是 他 兄 弟 有 缘, 在 青 龙 桥 一 呆 七 年 廿 年 前 他 兄 弟 初 人 江 湖, 在 紫 荆 关 南 的 西 陵 旷 地 上, 双

桥 的 一 位 长 白 剑 派 名 宿 看 中, 收 为 弟 子 这 位 长 白 剑 派 的 名 宿 行 辈 甚 高, 从 不 示 人 姓 名, 也 是 他 兄 弟 有 缘, 在 青 龙 桥 一 呆 七 年 廿 年 前 他 兄 弟 初 人 江 湖, 在 紫 荆 关 南 的 西 陵 旷 地 上, 双 标 题 > 苍 穹 神 剑 作 者 : 古 龙 第 一 章 星 月 双 剑 第 二 章 勤 修 苦 练 第 三 章 人 心 难 测 第 四 章 飘 然 老 人 第 五 章 再 入 江 湖 第 六 章 爱 情 的 幼 苗 第 七 章 英 雄 识 英 雄 第 八 章 武 当 之 行 第 九 章 武 当 大 会 盟 第 十 章 大 战 天 阴 教 标 题

More information

壹 前 言 一 寫 作 動 機 日 本 推 理 小 說, 雖 說 是 日 本 大 眾 文 學 的 主 流, 但 是 在 台 灣 卻 是 一 個 特 殊 的 存 在 由 我 身 邊 在 看 日 本 推 理 小 說 的 同 好 寥 寥 無 幾 便 可 得 知, 在 台 灣 日 本 推 理 小 說 似 乎

壹 前 言 一 寫 作 動 機 日 本 推 理 小 說, 雖 說 是 日 本 大 眾 文 學 的 主 流, 但 是 在 台 灣 卻 是 一 個 特 殊 的 存 在 由 我 身 邊 在 看 日 本 推 理 小 說 的 同 好 寥 寥 無 幾 便 可 得 知, 在 台 灣 日 本 推 理 小 說 似 乎 投 稿 類 別 : 文 學 類 篇 名 : 揭 開 日 本 推 理 小 說 的 面 紗 作 者 : 新 竹 女 中 陳 思 璇 高 二 六 班 指 導 老 師 : 劉 麗 卿 老 師 壹 前 言 一 寫 作 動 機 日 本 推 理 小 說, 雖 說 是 日 本 大 眾 文 學 的 主 流, 但 是 在 台 灣 卻 是 一 個 特 殊 的 存 在 由 我 身 邊 在 看 日 本 推 理 小 說 的 同

More information

Microsoft Word - 3C.doc

Microsoft Word - 3C.doc 3C 張 汶 軒 農 曆 新 年 每 年 團 年 飯, 我 們 每 個 人 都 做 最 拿 手 的 菜 色 和 甜 點 很 快 便 到 了 年 廿 九 我 們 一 家 做 的 是 餃 子 和 湯 丸 而 我 最 喜 歡 的 就 是 做 湯 丸, 因 為 它 最 容 易 做 快 和 味 道 好 湯 丸 的 做 法 是 這 樣 的 先 把 糯 米 粉 調 和 暖 水, 然 後 把 它 攪 拌 好, 把

More information

(Microsoft Word - \244\345\266\260\244\273)

(Microsoft Word - \244\345\266\260\244\273) 文集目錄 校長序言 編者的話 校園生活 開學了 開學了 上體育課 在學校午膳 伙伴閱讀計劃 小女童軍集會 毋忘母校 學校與我 學校與我 學校與我 足球達人 運動達人 運動達人 我的同學 一年級 一年級 一年級 一年級 一年級 二年級 五年級 五年級 五年級 六年級 六年級 六年級 六年級 六年級 陳海琳 黃偉晋 黃偉晋 許子翹 列榮彰 鍾凱盈 梁煒諾 徐迪龍 溫樂君 賴進嘉 馮兆基 黃家勁 郭嘉寶

More information

Microsoft Word - 合教秘[2016]109号.doc

Microsoft Word - 合教秘[2016]109号.doc 附 件 1 一 县 区 教 育 主 管 部 门 肥 东 县 教 育 体 育 局 包 河 区 教 育 体 育 局 瑶 海 区 教 育 体 育 局 经 开 区 社 会 发 展 局 蜀 山 区 教 育 体 育 局 长 丰 县 教 育 体 育 局 庐 阳 区 教 育 体 育 局 肥 西 县 教 育 局 新 站 区 社 会 事 业 局 高 新 区 社 会 事 业 局 二 学 校 肥 东 县 草 庙 学 校 合

More information

目 錄 一 廈 村 鄧 氏 宗 的 對 聯 橫 匾 和 碑 文 二 屏 山 鄧 氏 宗 的 對 聯 橫 匾 和 碑 文 三 覲 廷 書 室 喬 愈 二 聚 星 樓 的 P.1-12 P.13-18 P.19-22 對 聯 橫 匾 和 碑 文 四 結 語 五 鳴 謝 及 組 員 名 單 P.23 P.

目 錄 一 廈 村 鄧 氏 宗 的 對 聯 橫 匾 和 碑 文 二 屏 山 鄧 氏 宗 的 對 聯 橫 匾 和 碑 文 三 覲 廷 書 室 喬 愈 二 聚 星 樓 的 P.1-12 P.13-18 P.19-22 對 聯 橫 匾 和 碑 文 四 結 語 五 鳴 謝 及 組 員 名 單 P.23 P. P.1 目 錄 一 廈 村 鄧 氏 宗 的 對 聯 橫 匾 和 碑 文 二 屏 山 鄧 氏 宗 的 對 聯 橫 匾 和 碑 文 三 覲 廷 書 室 喬 愈 二 聚 星 樓 的 P.1-12 P.13-18 P.19-22 對 聯 橫 匾 和 碑 文 四 結 語 五 鳴 謝 及 組 員 名 單 P.23 P.24 P.2 > 屏 山 是 香 港 歷 史 最 悠 久 的 方 ㆒, 新 界 五

More information

办 公 厅 关 于 取 消 调 整 非 行 政 许 可 审 批 项 目 的 通 知 ( 川 办 发 2013 59 号 ) 四 川 省 人 民 政 府 办 公 厅 关 于 第 二 批 取 消 调 整 行 政 审 批 项 目 的 通 知 ( 川 办 发 2013 60 号 ) 资 阳 市 人 民 政

办 公 厅 关 于 取 消 调 整 非 行 政 许 可 审 批 项 目 的 通 知 ( 川 办 发 2013 59 号 ) 四 川 省 人 民 政 府 办 公 厅 关 于 第 二 批 取 消 调 整 行 政 审 批 项 目 的 通 知 ( 川 办 发 2013 60 号 ) 资 阳 市 人 民 政 乐 至 县 人 民 政 府 文 件 乐 府 发 2014 16 号 乐 至 县 人 民 政 府 关 于 印 发 县 级 部 门 保 留 取 消 和 调 整 的 行 政 审 批 行 政 许 可 事 项 的 通 知 各 乡 镇 人 民 政 府, 县 级 各 部 门 ( 单 位 ): 为 进 一 步 提 高 行 政 服 务 效 能, 优 化 环 境, 根 据 四 川 省 人 民 政 府 关 于 做 好 市

More information

待 所 21 19098 2155104784996 北 京 博 锐 尚 格 节 能 技 术 股 份 有 限 公 司 22 57045 6688104558152 北 京 天 雄 诚 信 数 码 科 技 有 限 公 司 23 74617 8802104752011 中 建 二 局 装 饰 工 程 有

待 所 21 19098 2155104784996 北 京 博 锐 尚 格 节 能 技 术 股 份 有 限 公 司 22 57045 6688104558152 北 京 天 雄 诚 信 数 码 科 技 有 限 公 司 23 74617 8802104752011 中 建 二 局 装 饰 工 程 有 北 京 市 小 客 车 指 标 调 控 管 理 信 息 系 统 单 位 普 通 指 标 配 置 分 期 编 号 :201506 分 期 描 述 :2015 年 第 06 期 单 位 普 通 摇 号 分 期 指 标 配 置 日 期 :2015-12-26 数 据 生 成 时 间 :2015-12-26 10:15:56 有 效 单 位 申 请 编 码 总 数 :84719 配 置 单 位 指 标 总

More information

概述

概述 OPC Version 1.6 build 0910 KOSRDK Knight OPC Server Rapid Development Toolkits Knight Workgroup, eehoo Technology 2002-9 OPC 1...4 2 API...5 2.1...5 2.2...5 2.2.1 KOS_Init...5 2.2.2 KOS_InitB...5 2.2.3

More information

学习MSP430单片机推荐参考书

学习MSP430单片机推荐参考书 MSP430 16 MSP430 C MSP430 C MSP430 FLASH 16 1 CPU 16 ALU 16 PC SP SR R4~R15 2 3 00-FFH 100-1FFH 4 5 1 2 51 24 27 6 1 2 3 4 5 6 4 12 SR SP SR CPU SR CPU C Z N GIE CPUOff CPU OscOff SCG0 SCG1 CPU EXIT SP

More information

<4D6963726F736F667420576F7264202D20A1D5AEDBAA4BD3ACAD64B6EAA1D6AA76C0F8A1D5C470AF66A1D6B0DFA440AABAA4E8BEAFA148A1D5A46AB6C0AFBBA1D6A8D3AA76C0F8A1D5C470AF66A1D6A641A5CEA1D5A661B6C0AFBBA142B6C0B373AFBBA1422E646F63>

<4D6963726F736F667420576F7264202D20A1D5AEDBAA4BD3ACAD64B6EAA1D6AA76C0F8A1D5C470AF66A1D6B0DFA440AABAA4E8BEAFA148A1D5A46AB6C0AFBBA1D6A8D3AA76C0F8A1D5C470AF66A1D6A641A5CEA1D5A661B6C0AFBBA142B6C0B373AFBBA1422E646F63> < 桂 枝 茯 苓 圓 > 治 療 < 癥 病 > 唯 一 的 方 劑?< 大 黃 粉 > 來 治 療 < 癥 病 > 再 用 < 地 黃 粉 黃 連 粉 黃 柏 粉 甘 草 粉 > 勝 於 < 桂 枝 茯 苓 圓 > 千 百 倍 主 講 者 : 廖 桂 聲 中 西 醫 師 廖 桂 聲 中 醫 診 所 www.lkscmc.com.tw 台 北 市 立 仁 愛 醫 院 兼 任 主 治 醫 師 子 宮

More information

平 肝 潜 阳 方 对 偏 头 痛 肝 阳 上 亢 证 大 鼠 血 淋 巴 细 胞 蛋 白 质 表 达 的 影 响 钟 广 伟 等 3 ( +( *+* ** *66 )+* + 8#,5%< (, %95( ( /+ '( *( 6(6++*#!+ 5 6*+' 6*+) ;+( '+ 8:7)*

平 肝 潜 阳 方 对 偏 头 痛 肝 阳 上 亢 证 大 鼠 血 淋 巴 细 胞 蛋 白 质 表 达 的 影 响 钟 广 伟 等 3 ( +( *+* ** *66 )+* + 8#,5%< (, %95( ( /+ '( *( 6(6++*#!+ 5 6*+' 6*+) ;+( '+ 8:7)* 3 中 南 大 学 学 报 医 学 版 平 肝 潜 阳 方 对 偏 头 痛 肝 阳 上 亢 证 大 鼠 血 淋 巴 细 胞 蛋 白 质 表 达 的 影 响 钟 广 伟 胡 建 军 陈 泽 奇 罗 艳 红 张 莺 尹 耀 慧 李 炜 易 振 佳 陈 国 林 中 南 大 学 湘 雅 医 院 中 西 医 结 合 研 究 所 急 诊 科 长 沙 4 摘 要 目 的 探 讨 平 肝 潜 阳 方 对 偏 头 痛

More information

Microsoft Word - 长安大学.doc

Microsoft Word - 长安大学.doc 长 安 大 学 805 管 理 学 全 套 考 研 资 料 ... 2 长 安 大 学 803 道 路 工 程 全 套 考 研 资 料 ... 2 长 安 大 学 802 结 构 设 计 原 理 全 套 考 研 资 料 ... 3 长 安 大 学 806 汽 车 理 论 全

More information

<4D6963726F736F667420576F7264202D20312EA1B6BDCCCAA6D7CAB8F1CCF5C0FDA1B72E646F63>

<4D6963726F736F667420576F7264202D20312EA1B6BDCCCAA6D7CAB8F1CCF5C0FDA1B72E646F63> 教 师 资 格 考 试 资 料 汇 编 目 录 1. 教 师 资 格 条 例...1 2. 教 师 资 格 条 例 实 施 办 法...5 3. 中 小 学 教 师 资 格 考 试 暂 行 办 法...9 4. 中 小 学 教 师 资 格 定 期 注 册 暂 行 办 法...13 5. 中 小 学 和 幼 儿 园 教 师 资 格 考 试 标 准 ( 试 行 )...16 6. 全 国 教 师 资 格

More information

<4D F736F F D D342DA57CA7DEA447B14D2DA475B57BBB50BADEB27AC3FEB14DA447B8D5C344>

<4D F736F F D D342DA57CA7DEA447B14D2DA475B57BBB50BADEB27AC3FEB14DA447B8D5C344> 1. 請 問 誰 提 出 積 體 電 路 (IC) 上 可 容 納 的 電 晶 體 數 目, 約 每 隔 24 個 月 (1975 年 更 改 為 18 個 月 ) 便 會 增 加 一 倍, 效 能 也 將 提 升 一 倍, 也 揭 示 了 資 訊 科 技 進 步 的 速 度? (A) 英 特 爾 (Intel) 公 司 創 始 人 戈 登. 摩 爾 (Gordon Moore) (B) 微 軟 (Microsoft)

More information

第3章.doc

第3章.doc 3 3 3 3.1 3 IT Trend C++ Java SAP Advantech ERPCRM C++ C++ Synopsys C++ NEC C C++PHP C++Java C++Java VIA C++ 3COM C++ SPSS C++ Sybase C++LinuxUNIX Motorola C++ IBM C++Java Oracle Java HP C++ C++ Yahoo

More information