Discuz! 官方站

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: sw08

[求助] 给各位插件作者出点编程小题目……

[复制链接]
 楼主| 发表于 2011-7-10 12:18:48 | 显示全部楼层
只做商业 发表于 2011-7-10 12:12
问题1:当然,我个人建议不要采用这种方式,而是提取出数据后通过PHP来进行数据处理

问题2无视,太没有挑 ...

本身都不是什么难题,没有说非要难倒人的意思,只是说有些问题需要注意下。

问题2说实话看着简单,做起来还是需要思考下的。
问题3我目前是联合查询,不知道效率如何。

问题5的确是要考虑时差,因为默认从time()得到的服务器时间都是没有考虑时差的,所以必须要手动加上。
回复

使用道具 举报

发表于 2011-7-10 12:35:09 | 显示全部楼层
sw08 发表于 2011-7-10 12:18
本身都不是什么难题,没有说非要难倒人的意思,只是说有些问题需要注意下。

问题2说实话看着简单,做起 ...

连接查询的话一般来说效率都很低,要创建临时表。你可以explain看一下。

问题5我说的用时间戳并非time()而是TIMESTAMP,因为这是在DZ中统一的时间。
回复

使用道具 举报

 楼主| 发表于 2011-7-10 13:31:30 | 显示全部楼层
只做商业 发表于 2011-7-10 12:35
连接查询的话一般来说效率都很低,要创建临时表。你可以explain看一下。

问题5我说的用时间戳并非time ...

timestamp的确省事,不过读取时间的时候还是要加时区的,dz的时区变量是timeoffset

查询的问题我看看再优化下吧
回复

使用道具 举报

发表于 2011-7-11 04:31:20 | 显示全部楼层
没看懂 呵呵

看来 我还得抓紧学习啊

恩 决定了 闲暇的时候就学学 编程 之类的

向你学习
回复

使用道具 举报

发表于 2011-7-13 22:55:01 | 显示全部楼层
给出我第四题的答案(莫喷):
先将两个字串拆分成数组,然后array_diff计算漏/错项(记为Array_1),接着把Array_1与标准答案数组array_merge后再与标准答案进行一次array_diff检测是否有错误答案(记为Array_2),如果Array_2非空,则返回0分,如果Array_2为空,则得分=总分-count($Array_1)

评分

2

查看全部评分

回复

使用道具 举报

发表于 2011-7-13 23:00:04 | 显示全部楼层
都是高手,不过感觉第四题有点故意找麻烦的感觉
我遇到绝大部分的考试,漏选错选都是不得分的,呵呵
都是好题目
看看各位高手的解答,受益匪浅
回复

使用道具 举报

发表于 2011-7-13 23:15:39 | 显示全部楼层
回答第五个
时间戳问题我想了很久,DZ这东西,把用户更改的时区给锁死在他给的一系列函数中,例如dgmdate之类的,当然,上面说的是用户级别的
系统级别的话-8就是了吧?
如果是在用户级别下的时间处理更麻烦,签到更新了好几次,就为了用户钻时区的洞子刷分,唉...

第四个,这个不是高中物理考试惯用的做法么。。
恩,KK上面那个array_diff取差集的方法不错.看了一下

第三个,每个分表肯定有一个起始的AID对应的时间和终止的AID以及对应时间,那么呢,处理前先缓存下每个表最后一个AID编号以及时间,然后根据指定天的时间戳起止按需查询所需要的表就OK了吧

评分

2

查看全部评分

回复

使用道具 举报

发表于 2011-7-13 23:23:38 | 显示全部楼层
第二个,等等,我先换一台电脑先,待会儿再给答案,可以取余数,当余数等于0的时候切换下字符就是了...
两个for够用了....
第一个回头再看,先闪人先
回复

使用道具 举报

发表于 2011-7-13 23:25:15 | 显示全部楼层
我发现我愚昧了,应该一个for就能够搞定的事情...
回复

使用道具 举报

发表于 2011-7-14 08:57:06 | 显示全部楼层
花了半个小时想出来的很垃圾的递归,见笑了
  1. <?php
  2. function martix($n){
  3.         $n4=$n*$n*$n*$n;
  4.         $cube=$n*$n*$n;
  5.         $square=$n*$n;
  6.         $s=1;
  7.         $l=0;
  8.         for($i=1;$i<=$n4;$i++){
  9.                 if($s==1){
  10.                         echo "X";
  11.                 }else{
  12.                         echo "O";
  13.                 }
  14.                 if($i % $n == 0){
  15.                         $s *= -1;
  16.                 }
  17.                 if($i % $square == 0){
  18.                         echo "<br>";
  19.                         $l += 1;
  20.                         if($l % $n !== 0){
  21.                                 $s *= -1;
  22.                         }
  23.                         if($n % 2 == 0){
  24.                                 $s *= -1;
  25.                         }
  26.                 }
  27.         }
  28. }
  29. $martix = martix(2);
  30. echo "<br>";
  31. $martix2 = martix(3);
  32. echo "<br>";
  33. $martix3 = martix(4);
  34. ?>
复制代码

评分

1

查看全部评分

回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Comsenz ( 粤B2-20090059-165 )star

GMT+8, 2019-9-21 16:54

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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