楼主: nyfor

[精华] 最小源代码擂台

[复制链接]
论坛徽章:
18
生肖徽章2007版:虎
日期:2008-04-11 18:37:24奥运会纪念徽章:击剑
日期:2008-07-03 11:38:17迷宫蛋
日期:2011-05-10 13:03:40茶鸡蛋
日期:2011-05-10 13:05:16蜘蛛蛋
日期:2011-05-10 13:07:01灰彻蛋
日期:2012-12-10 11:47:16鲜花蛋
日期:2013-07-07 10:07:20
391#
发表于 2008-5-26 12:45 | 只看该作者
原帖由 nyfor 于 2008-5-26 12:37 发表
等所有的代码都贴上来之后就可以搞一个最短的了.
目前我综合大家的算法, 缩短到了 324 Byte.



me too

使用道具 举报

回复
论坛徽章:
69
生肖徽章2007版:羊
日期:2008-11-14 14:42:19复活蛋
日期:2011-08-06 08:59:05ITPUB十周年纪念徽章
日期:2011-11-01 16:19:412012新春纪念徽章
日期:2012-01-04 11:49:542012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20版主4段
日期:2012-05-15 15:24:11
392#
 楼主| 发表于 2008-5-26 12:59 | 只看该作者
真的是"三人行必有我师", 太有道理了.

使用道具 举报

回复
论坛徽章:
18
生肖徽章2007版:虎
日期:2008-04-11 18:37:24奥运会纪念徽章:击剑
日期:2008-07-03 11:38:17迷宫蛋
日期:2011-05-10 13:03:40茶鸡蛋
日期:2011-05-10 13:05:16蜘蛛蛋
日期:2011-05-10 13:07:01灰彻蛋
日期:2012-12-10 11:47:16鲜花蛋
日期:2013-07-07 10:07:20
393#
发表于 2008-5-26 13:08 | 只看该作者

使用道具 举报

回复
论坛徽章:
18
生肖徽章2007版:虎
日期:2008-04-11 18:37:24奥运会纪念徽章:击剑
日期:2008-07-03 11:38:17迷宫蛋
日期:2011-05-10 13:03:40茶鸡蛋
日期:2011-05-10 13:05:16蜘蛛蛋
日期:2011-05-10 13:07:01灰彻蛋
日期:2012-12-10 11:47:16鲜花蛋
日期:2013-07-07 10:07:20
394#
发表于 2008-5-26 13:09 | 只看该作者
我觉得现在优化的目标应该在于用什么代替那个11位数, 以及SUBSTR函数

使用道具 举报

回复
论坛徽章:
69
生肖徽章2007版:羊
日期:2008-11-14 14:42:19复活蛋
日期:2011-08-06 08:59:05ITPUB十周年纪念徽章
日期:2011-11-01 16:19:412012新春纪念徽章
日期:2012-01-04 11:49:542012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20版主4段
日期:2012-05-15 15:24:11
395#
 楼主| 发表于 2008-5-26 13:26 | 只看该作者
原帖由 DragonBill 于 2008-5-26 13:09 发表
我觉得现在优化的目标应该在于用什么代替那个11位数, 以及SUBSTR函数

倘若有一个函数比如 ln(2) 结果中正好有这个11位数序列那就太妙了, 可惜不太可能找到.

使用道具 举报

回复
论坛徽章:
18
生肖徽章2007版:虎
日期:2008-04-11 18:37:24奥运会纪念徽章:击剑
日期:2008-07-03 11:38:17迷宫蛋
日期:2011-05-10 13:03:40茶鸡蛋
日期:2011-05-10 13:05:16蜘蛛蛋
日期:2011-05-10 13:07:01灰彻蛋
日期:2012-12-10 11:47:16鲜花蛋
日期:2013-07-07 10:07:20
396#
发表于 2008-5-26 13:35 | 只看该作者

回复 #397 nyfor 的帖子

没有的, LN和EXP我都试过了

使用道具 举报

回复
论坛徽章:
3
奥运会纪念徽章:射箭
日期:2008-04-25 10:30:10奥运会纪念徽章:拳击
日期:2008-05-27 21:28:57奥运会纪念徽章:跳水
日期:2008-06-02 09:49:10
397#
发表于 2008-5-26 14:00 | 只看该作者
hotiice的代码中有一行比较有意思

原帖由 hotiice 于 2008-5-26 08:31 发表
SQL> CREATE OR REPLACE FUNCTION MY_ADD_MONTHS(P_DATE_STRING VARCHAR2, P_MONTHS NUMBER)
  2  RETURN VARCHAR2 AS
  3  SUBTYPE I IS INT;
  4  N I:=P_DATE_STRING;
  5  C I:=100;
  6  D I:=MOD(N,C);
  7  Y I:=N/C/C;
  8  M I:=MOD(N/C,C);
  9  Z I:=M+P_MONTHS;
10  FUNCTION F(Y I,M I) RETURN I
11  AS
12  BEGIN
13  RETURN 31-CASE
14  WHEN M!=2 THEN mod(floor(330/power(2,12-m)),2)
15  WHEN MOD(Y,16)=0 OR MOD(Y,4)=0 AND MOD(Y,C)>0 THEN 2
16  ELSE 3
17  END;
18  END;
19  BEGIN
20  N:=mod(y*12+z-1,12)+1;
21  Z:=Y+(Z-N)/12;
22  IF D=F(Y,M) OR D>F(Z,N) THEN
23  D:=F(Z,N);
24  END IF;
25  RETURN Z*C*C+N*C+D;
26  END;
27  /

函数已创建。

SQL> exec test_add
Congratulation ... Code Length: 415 Bytes. Times: 00:00:08

使用道具 举报

回复
论坛徽章:
18
生肖徽章2007版:虎
日期:2008-04-11 18:37:24奥运会纪念徽章:击剑
日期:2008-07-03 11:38:17迷宫蛋
日期:2011-05-10 13:03:40茶鸡蛋
日期:2011-05-10 13:05:16蜘蛛蛋
日期:2011-05-10 13:07:01灰彻蛋
日期:2012-12-10 11:47:16鲜花蛋
日期:2013-07-07 10:07:20
398#
发表于 2008-5-26 14:11 | 只看该作者
向前进
--Congratulation ... Code Length: 319 Bytes. Times: 00:00:09
create or replace function my_add_months(p_date_string varchar2,
                                         p_months      number)
  return varchar2
AS
   C INT := p_date_string;
   H INT := 100;
   Y INT := C/H/H;
   M INT := C/H - Y * H;
   D INT := C MOD H;
   Z INT := Y * 12 + M + p_months;

   PROCEDURE P
   AS
   BEGIN
      C := 27 + SUBSTR(43434434341 + 0 ** (Y MOD (4 + 12 * 0 ** (Y MOD H))), 1 - M, 1);
   END;

BEGIN

   P;

   Y := (Z - 7) / 12;
   M := Z - Y * 12;
   Z := D/C/2;

   P;

   RETURN Y * H * H + M * H + LEAST(C, Z || D);
END;
/

使用道具 举报

回复
论坛徽章:
18
生肖徽章2007版:虎
日期:2008-04-11 18:37:24奥运会纪念徽章:击剑
日期:2008-07-03 11:38:17迷宫蛋
日期:2011-05-10 13:03:40茶鸡蛋
日期:2011-05-10 13:05:16蜘蛛蛋
日期:2011-05-10 13:07:01灰彻蛋
日期:2012-12-10 11:47:16鲜花蛋
日期:2013-07-07 10:07:20
399#
发表于 2008-5-26 14:13 | 只看该作者

回复 #399 sdxiong 的帖子

请他解释一下

[ 本帖最后由 DragonBill 于 2008-5-27 00:06 编辑 ]

使用道具 举报

回复
论坛徽章:
18
生肖徽章2007版:虎
日期:2008-04-11 18:37:24奥运会纪念徽章:击剑
日期:2008-07-03 11:38:17迷宫蛋
日期:2011-05-10 13:03:40茶鸡蛋
日期:2011-05-10 13:05:16蜘蛛蛋
日期:2011-05-10 13:07:01灰彻蛋
日期:2012-12-10 11:47:16鲜花蛋
日期:2013-07-07 10:07:20
400#
发表于 2008-5-26 14:16 | 只看该作者
目前已更新至 319Byte, 请看 400楼

400楼, 真有意义

使用道具 举报

回复

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

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表