天涯小站 2.0

 找回密码
 注册
搜索
查看: 8869|回复: 13

[保健] 周末一题: "'酒筹'之后, 大家做做看"(续)

[复制链接]
发表于 2009-4-3 12:12:40 | 显示全部楼层 |阅读模式
上周有一"周末一题: '酒筹'之后, 大家做做看", 里面说到"数学, 很美妙, 一首无声的诗歌".

有时一个看着简单的公式, 背后隐藏的竟然是如此美妙的韵律.

今年是2009年, 下面的一道题也涉及到2009, 不太难, 更直观, 感兴趣的做做看-但不要让2009误导啊:)

Let f: N->N be a function satisfiying the following for all positive integers n:

f(1) = 1
f(2n) = f(n)
f(2n+1) = f(2n) + 1

Find the maximum of f(n) when 1<=n<=2009
回复

使用道具 举报

发表于 2009-4-4 07:42:10 | 显示全部楼层
上周有一"周末一题: '酒筹'之后, 大家做做看", 里面说到"数学, 很美妙, 一首无声的诗歌".

有时一个看着简单的公式, 背后隐藏的竟然是如此美妙的韵律.

今年是2009年, 下面的一道题也涉及到2009, 不太难, 更直观, 感 ...
无疆行者 发表于 2009-4-3 05:12 PM


f(1023) = 10

这次的规律比较好看出来。
回复 支持 反对

使用道具 举报

发表于 2009-4-4 09:18:48 | 显示全部楼层
f(1023) = 10

这次的规律比较好看出来。
hanxin 发表于 2009-4-4 08:42 AM

真厉害。我是看了你的答案才明白。问一下我是否真明白,你是根据二-十进制的规律推的?
回复 支持 反对

使用道具 举报

发表于 2009-4-4 09:56:14 | 显示全部楼层
真厉害。我是看了你的答案才明白。问一下我是否真明白,你是根据二-十进制的规律推的?
炉匠 发表于 2009-4-4 02:18 PM


谢谢炉匠夸奖。。。 test test
回复 支持 反对

使用道具 举报

发表于 2009-4-4 10:14:02 | 显示全部楼层
本帖最后由 hanxin 于 2009-4-4 03:15 PM 编辑

test 成功啦。接这写。。。

我开始并没想到 2-10 进制。我是先把 function 换了一下:

f(n)  =  f(n/2)  if n is even
f(n)  =  f(n-1) + 1 if n is odd

从这里看出,只有在odd number才有可能升值。这样我就集中看 odd number 。

从最开始,

f(3) = 2, so f(6) = f(3) = 2, then we get f(7) = 3 (this is the first possible increase from 2)
then
f(7) = f(14) = 3, we get the next increase f(15) = 4, ... and so on
finally
f(1023) = 10

结论是,新的升值总是在 ((2^n) - 1)。 不知道说对了没有。
回复 支持 反对

使用道具 举报

发表于 2009-4-4 13:13:43 | 显示全部楼层
test 成功啦。接这写。。。

我开始并没想到 2-10 进制。我是先把 function 换了一下:

f(n)  =  f(n/2)  if n is even
f(n)  =  f(n-1) + 1 if n is odd

从这里看出,只有在odd number才有可能升值。这样我就集中 ...
hanxin 发表于 2009-4-4 11:14 AM

还是你厉害。我是工科猪头,想着象逻辑电路十位寄存器。
回复 支持 反对

使用道具 举报

发表于 2009-4-4 15:32:43 | 显示全部楼层
还是你厉害。我是工科猪头,想着象逻辑电路十位寄存器。
炉匠 发表于 2009-4-4 06:13 PM


嘻嘻,我也是工科猪头。

出题的老师还没来。也可能我答得不对呢。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-4 21:18:29 | 显示全部楼层
f(1023) = 10

这次的规律比较好看出来。
hanxin 发表于 2009-4-4 08:42 AM


Bingo
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-4 21:21:00 | 显示全部楼层
还是你厉害。我是工科猪头,想着象逻辑电路十位寄存器。
炉匠 发表于 2009-4-4 02:13 PM


炉匠想的也不错啦: 基本上相当于一个Logical left shift one bit when even, and also inject 1 when odd. 结果是记其中二进制1的个数:)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-4 21:22:09 | 显示全部楼层
这线可以close了, 关线...

Have a good weekend!
回复 支持 反对

使用道具 举报

发表于 2009-4-7 00:49:49 | 显示全部楼层
我把题寄给一个小兄弟,他把公式稍微变了一下,得到全部解。1023,1535,1791,1919,1983。牛啊。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-7 01:52:58 | 显示全部楼层
我把题寄给一个小兄弟,他把公式稍微变了一下,得到全部解。1023,1535,1791,1919,1983。牛啊。
炉匠 发表于 2009-4-7 01:49 AM



呵呵, 本来这题只要求"Find the maximum of f(n) ", 所以10就可以了:

1023,1535,1791,1919,1983在二进制下分别是:

011-1111-1111
101-1111-1111
110-1111-1111
111-0111-1111
111-1011-1111

它们的 f都是十进制的10, 即1的个数(n小于2048)-下面的移位还有几个超过了2009(本客故意设置的今年).

0011/1100, 看着跟平仄一样
回复 支持 反对

使用道具 举报

发表于 2009-4-7 18:14:57 | 显示全部楼层
呵呵, 本来这题只要求"Find the maximum of f(n) ", 所以10就可以了:

1023,1535,1791,1919,1983在二进制下分别是:

011-1111-1111
101-1111-1111
110-1111-1111
111-0111-1111
111-1011-1111

它们的 f都是十进 ...
无疆行者 发表于 2009-4-7 06:52 AM


原来是这样!我笨,只看到一个解。

望关东老师,多多出题(容易的就行 )。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-7 18:25:27 | 显示全部楼层
13# hanxin

本来这题只要得出10就行了-但知道题后面的"物理意义"(呵呵, 权且用这个词儿), 也是本客的初衷.

这两个"周末一题"最后都能和001100挂上钩, 既是本客的偏爱, 也是对"平仄""方砖"的调侃
P.S., 本客把任何"老师"或"诗人"的说法视为冒犯
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|天涯小站

GMT-5, 2026-7-26 05:54 PM

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表