找回密码
 欢迎注册
楼主: chyanog

[提问] 百度之星的一道与斐波那契数列有关的题

[复制链接]
发表于 2012-12-21 12:31:13 | 显示全部楼层
16# chyanog 仔细看了你的代码, 发现有很多闪光的地方. 非常不错! 我上面贴的是最原始的代码,是C语言实现的原型.
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-12-21 13:05:37 | 显示全部楼层
这是一个彻底字符串处理的版本,有点长:
  1. f[a0_, b0_, n0_] :=
  2. Module[{a = a0, b = b0, n = n0, i, t, tmp},
  3. tmp = NestWhile[# <> ToString@Tr@ToExpression[Characters[StringTake[#, -2]]] &,
  4. "baiduStar" <> ToString[a] <> ToString[b], StringFreeQ @@ StringSplit[StringInsert[#, " ", -3]] &];
  5. tmp = IntegerDigits@ToExpression@First@StringCases[tmp, NumberString];
  6. t = StringJoin[ToString /@ tmp];
  7. t = StringPosition[t, StringTake[t, -2]][[1, 1]];
  8. tmp[[If[n < t, n, Mod[n - t, Length[tmp] - t - 1] + t]]]]
复制代码
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2012-12-21 17:49:30 | 显示全部楼层
用字符串处理也不错;xx我习惯写成Table[0, {10}, {10}]的 PS :python的字符串操作很方便,我估计mathematica6引入的Span就是借鉴了py的切片,py中的字符串和列表一样都能用切片的
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2012-12-21 18:03:28 | 显示全部楼层
21# wayne 这就过奖了,几行代码会有几个闪光点,
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-12-21 21:13:33 | 显示全部楼层
23# chyanog 谁借鉴谁还不一定吧,你查过先后顺序吗. Table[0, {10}, {10}] 或者 ConstantArray[0, {10, 10}] 或者 0 IdentityMatrix[10] 都可以
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2012-12-21 21:18:51 | 显示全部楼层
25# wayne 貌似Array[0 &, {10, 10}]最短

评分

参与人数 1威望 +12 经验 +12 鲜花 +12 收起 理由
wayne + 12 + 12 + 12 社区有你更精彩

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-12-21 21:24:58 | 显示全部楼层
26# chyanog 哈哈, 这个相当于是没有输入参数的纯函数了!漂亮! 没想到还可以玩这个小trick 呢!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-12-21 21:32:46 | 显示全部楼层
发现跟chyanog比起来,我的代码很中规中矩阿. 有兴趣可以关注一下官网举办的one-liner比赛吧.
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2012-12-21 21:37:39 | 显示全部楼层
28# wayne 我也是中规中矩啊,one-liner比赛也听说过,还没怎么关注
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2012-12-21 21:47:12 | 显示全部楼层
23# chyanog 谁借鉴谁还不一定吧,你查过先后顺序吗. Table[0, {10}, {10}] 或者 ConstantArray[0, {10, 10}] 或者 0 IdentityMatrix[10] 都可以 wayne 发表于 2012-12-21 21:13
先后顺序已经考察过了,Python的早一些

评分

参与人数 1威望 +12 金币 +12 贡献 +12 经验 +12 鲜花 +12 收起 理由
wayne + 12 + 12 + 12 + 12 + 12 我最多能给的就是这些分了

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-11-23 20:23 , Processed in 0.024439 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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