设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 4549|回复: 12
打印 上一主题 下一主题

[胡扯] 【XP提问区活动】R考场活动结果

[复制链接]

Lv4.逐梦者 (版主)

梦石
0
星屑
9532
在线时间
5073 小时
注册时间
2013-6-21
帖子
3580

开拓者贵宾剧作品鉴家

跳转到指定楼层
1
发表于 2014-7-21 17:09:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 RyanBern 于 2014-7-21 23:07 编辑

R考场的阅卷已经完成,成绩也已经公布。

这次的活动参与者为10人(比M考场少了一半呢,桑心),根据设定,将取前两名发放额外好人卡+1,下面的表格是得分情况,顺序按照交卷顺序。
姓名 第一大题得分 第二大题得分 第三大题得分 附加题得分 获得奖励
@丰聪耳神子  30+15+15+30+40 50+50+93 0(未做) 0(未做) 323EXP
@myownroc 30+15+15+20+55 50+30+100 75+75+95 98(2) 658EXP+2好人卡
@恐惧剑刃 30+15+15+25+50 50+40+30 75+75+90 50(1) 545EXP
@kuerlulu 0(未做) 0(未做) 75+40+100 50(1) 265EXP
@satgo1546 30+15+15+25+60 50+50+100 75+75+90 0(未做) 585EXP
@芯☆淡茹水 27+15+15+30+57 50+45+100 75+75+100 50(1) 639EXP+1好人卡
@无脑之人 0(未做) 0(未做) 0(未做) 100(2) 100EXP+1好人卡
@冰水金刚 30+15+15+25+58 50+50+100 65+75+60 50(3) 593EXP
@atom0520 25+15+15+30+58 50+50+100 75+75+100 0(1) 593EXP
@无忧谷主幻 30+15+15+30+55 50+50+90 75+60+100 0(未做) 570EXP


根据规则,前两名追加好人卡1张,他们分别是myownroc 和 芯☆淡茹水。当然参加的人都很努力,在这里谢谢大家了。
注:附加题后面的括号中代表选做的题目号。具体的扣分细则我点评到R考场原帖里面了,有疑问就尽情找我吧。

接下来RB君就很不要脸地对这次考试题进行胡扯了。

首先是先进行一下自我批评。这次出的考卷,题目有的就出的不是特别好。
1.5那个画阴影的题,描述得一点也不清楚,后来在版主双子人的指导下,更改了题干,但是还是不清楚。交上来的答卷的绘画方式跟我想的不太一样。不过satgo1546做得最接近,当然,这个题目大家看到我给出的分数都很高,也算是给大家的补偿吧。
关于3.2题技能消耗物品,依旧没有说清楚。现在想想,这个技能只能是主角技能,敌人是无法使用的。可如果按照参考答案的标准,敌人使用这个技能也会消耗主角的物品。因此这个题目应该加上说明:这是一个主角技能,敌人不可使用。
最后三个附加题,本人是慎重选出的三个难度和复杂度依次增加的题目,可是还是很多考生没有做。是我下手太狠了么?

然后说一下出现的问题:
1.4题那个秒杀敌人的设置,不要考虑脚本了。因为第一大题是数据库操作题,这就提示你仅仅利用数据库即可完成。正确的方法是附加【战斗不能】状态即可。刚开始判卷的时候大家都做对了,可是后面的答卷却不是这样。
2.2题说“调查4次获得2个物品”,这里应该理解为空格四次后就拿到了物品,而不是空格五次。这个我想多数人应该像前一种方式理解吧。
2.3题,水晶小游戏题。这我认为是个比较好的题目。因为大家的做法每个人都不一样。如果用事件的话,比较麻烦,但是也可做到。用脚本的话可以减小编者的工作量,但是需要思考一番。在这里用脚本的话,要注意开关改变的问题。很多人都这样写:
  1. if $game_self_switches[[1,7,'A']] == true
  2.   $game_self_switches[[1,7,'A']] = false
  3. else
  4.   $game_self_switches[[1,7,'A']] = true
  5. end
复制代码
说实话用事件的可以这样,但是用脚本的话就没必要这样了吧。(虽然我也是这么写的,打脸)
  1. $game_self_switches[[1,7,'A']] = !$game_self_switches[[1,7,'A']]
复制代码
这样一行就可以了,有一个考生就是这样写的,很好。
3.2题,特技消耗物品的话只需要连一个公共事件就可以了,没必要再动脚本了。
3.3题,图片标题,做出来的都很好,但是有的有小BUG。
另外,大家不要把外挂脚本放上去,我想做个3.1题也没必要放上去FUKI脚本吧,仅仅就是加个正则表达式gsub而已吧,考虑到这是第一次,我就不管了,就这样吧。

最后的最后,放上参考答案和大家期待的(what?)附加题脚本,希望高手能够不吝赐教:

R考场.rar (250.4 KB, 下载次数: 121)

附加题原题及参考源码:
  1. =begin

  2. 下面是附加题,多少和算法有点关系,大家可以选择作答。

  3. 一共有三道题目,答题的时候可以任选一道作答。三个题目的难度不同,因此各自的满分
  4. 也不一样,请慎重选择。

  5. 注意,只允许选择一道题作答,如果多答,则按照题号最小的题目进行评判,不考虑其他
  6. 的题目。因此回答之前要注明所选题号。

  7. =end

  8. #=============================================================================
  9. # 附加题1(猴王问题):本小题满分50分
  10. #-----------------------------------------------------------------------------
  11. # 现在考虑 n 只猴子围成一圈,编号 ID 为1,2,3,...,n,顺序为逆时针。现在从ID为1的
  12. # 猴子开始报数 1 ,按照逆时针顺序,下面的猴子报数2,3,4,...,现在指定一
  13. # 个数 m,每当有猴子报出数 m 时,它就被淘汰,而它的下一个猴子(仍是按照逆时针
  14. # 次序)继续从 1 开始报数,如此反复。当最后剩下一只猴子时,这只猴子就被选中当做
  15. # 猴群的猴王。问题:请写出一个算法,在给定猴子数目 n 和指定的正整数 m 的条件下
  16. # 求出最后剩下的猴子(猴王)的ID。
  17. #=============================================================================
  18. #=============================================================================
  19. # 本题思路:考虑到猴子们围成一圈,因此可以设计成“循环链表”的模式。定义出猴子
  20. # 类 Monkey,这个类的属性只有两个,一个是猴子的 ID,另一个是它的下一只猴子。
  21. # 为了处理问题方便,还定义出“猴子队列”类 Monkey_Queue。制作队列完毕后,开始
  22. # 循环,逐个剔出被淘汰的猴子。直到队列的长度为1即可。
  23. #=============================================================================

  24. module Ex1
  25.   N = 6
  26.   M = 1
  27.   class Monkey
  28.     attr_reader   :id          # 猴子 ID
  29.     attr_accessor :next_monkey # 下一只猴子
  30.     def initialize(id)
  31.       @id = id
  32.       @next_monkey = nil
  33.     end
  34.   end
  35.   class Monkey_Queue
  36.     attr_reader   :size        # 当前队列长度
  37.     attr_reader   :data        # 保存着所有猴子的信息,注意,是所有,而不是当前队列中的
  38.     attr_accessor :current     # 当前被操作的猴子
  39.     def initialize(num)
  40.       @size = num
  41.       @data = Array.new(num){|i| Monkey.new(i+1)}
  42.       @data.each_with_index{|monkey, i| monkey.next_monkey = @data[(i+1) % @data.size]}
  43.       @current= @data[0]
  44.     end
  45.     #-------------------------------------------------------------------------
  46.     # 删除一个猴子
  47.     #-------------------------------------------------------------------------
  48.     def delete(monkey)
  49.       # 确保队列长度超过1
  50.       return if @size == 1
  51.       # 找到前驱结点
  52.       pre = @data.find{|member| member.next_monkey == monkey}
  53.       # 重新设置次序(下面那个设置为nil的必要)
  54.       @current= pre.next_monkey = monkey.next_monkey
  55.       monkey.next_monkey = nil
  56.       # 队列长度-1
  57.       @size -= 1
  58.     end
  59.   end
  60.   #---------------------------------------------------------------------------
  61.   # 主函数
  62.   #---------------------------------------------------------------------------
  63.   def self.solve
  64.     # 生成 N 个猴子的环列
  65.     queue = Monkey_Queue.new(N)
  66.     # 循环,直到剩下一只猴子为止
  67.     until queue.size == 1
  68.       # 找到下一只被淘汰的猴子
  69.       (M-1).times do
  70.         queue.current = queue.current.next_monkey
  71.       end
  72.       # 剔除
  73.       queue.delete(queue.current)
  74.     end
  75.     # 显示结果
  76.     p queue.current.id
  77.   end
  78. end


  79. #=============================================================================
  80. # 附加题2(括号匹配问题):本小题满分100分
  81. #-----------------------------------------------------------------------------
  82. # 这是一个很经典的问题,写脚本的同学都知道,括号'()'在脚本中起到了很关键的作用
  83. # ,比如说改变运算顺序,包含方法参数等等。但是,有些书写错误的括号不能通过编译
  84. # 会发生 Syntax Error,比如说(1 + 2)) + 3,它就多了一个右括号。现在的问题是,
  85. # 给定一个字符串,能否确定其中所有不能匹配的括号的位置?
  86. # 为了使得问题更加简单,我们假定字符串中出现的括号只有圆括号'()'一种,方括号
  87. # 和花括号等其他类别的括号不作考虑。当然,除了括号以外,其它字符(比方说字母
  88. # 、数字、空格)会出现在表达式中。请设计一个算法,为其中所有不能匹配的括号作
  89. # 出特殊标记,如果一个左括号没有对应的右括号,则在相应位置输出',如果一个右
  90. # 括号没有对应的左括号,则在相应位置输出'?'。
  91. # 例(两边的引号代表字符串,不算内容):
  92. # Input1: "())"
  93. # Output1:"  ?"
  94. # Input2: "))(()((((xy))))"
  95. # Output2:"??$            "
  96. #=============================================================================

  97. #=============================================================================
  98. # 本题思路:考虑现实中我们从左到右的阅读顺序,这里的括号匹配也是同样的道理。
  99. # 在这里我们只考虑括号的出现时机。从左到右阅读时,如果发现了一个左括号,那么
  100. # 我们一定要找到与之对应的右括号。如果一开始就发现了个右括号,那么这个括号肯定
  101. # 是有问题的。如果我们读到左括号,继续向右搜寻,读到了一个右括号,那么这两个
  102. # 括号就会自然配对,从而消去这两个括号,不作考虑。如果仍然读到左括号,那么我们
  103. # 就把手头已有的这个括号放弃,暂不考虑,而去为最近的一个左括号寻找右括号。
  104. # 因此我们可以定义一个栈模型,从左到右依次处理每个字符,处理方式如下:
  105. # 1.读到一个左括号,入栈。
  106. # 2.读到一个右括号,观察栈顶部是不是左括号,如果是,则把左括号弹出栈。如果不是
  107. #   则将此右括号入栈。
  108. # 3.读到其他字符,跳过。
  109. # 这样一来,处理完毕后,栈中剩下的所有字符就是无法进行配对的字符,全部弹出,然
  110. # 后按照索引做标记即可(索引可能需要进行预处理)。
  111. #=============================================================================

  112. module Ex2
  113.   INPUT = "))(()((((xy))))"
  114.   class Char_With_Index
  115.     attr_accessor :char          # 字符内容
  116.     attr_accessor :index         # 索引
  117.     def initialize(char, index)
  118.       @char= char
  119.       @index = index
  120.     end
  121.   end
  122.   def self.solve
  123.     # 预处理,实际上就是为每个字符标上索引,以便于查找
  124.     input = Array.new(INPUT.size){|i| Char_With_Index.new(INPUT[i], i)}
  125.     # 初始化栈
  126.     stack = []
  127.     # 循环,直到所有字符都被处理到
  128.     until input.empty?
  129.       # 拿出一个字符
  130.       ch = input.shift
  131.       # 如果是左括号
  132.       if ch.char.chr == "("
  133.         # 入栈
  134.         stack.push(ch)
  135.       end
  136.       # 如果是右括号
  137.       if ch.char.chr == ")"
  138.         # 栈为空或者栈顶不是左括号
  139.         if stack.empty? || stack[-1].char.chr != "("
  140.           # 入栈
  141.           stack.push(ch)
  142.         else
  143.           # 栈顶元素(一定是左括号)出栈
  144.           stack.pop
  145.         end
  146.       end
  147.     end
  148.     # 输出结果
  149.     output = " " * INPUT.size
  150.     # 替换
  151.     stack.each do |ch|
  152.       ch.char.chr == "(" ? output[ch.index] = "$" : output[ch.index] = "?"
  153.     end
  154.     p output
  155.   end
  156. end


  157. #=============================================================================
  158. # 附加题3(DNA序列比对问题):本小题满分150分
  159. #-----------------------------------------------------------------------------
  160. # DNA序列分析现在的应用价值比较大,有了它就可以为生物的同源性提供有力的证据。
  161. # 这里的DNA序列比对,特指给定两串基因X和Y,我们来比较它们的相似性。但是由于
  162. # 时间久远,两段DNA可能不完全相同,因此我们要设计一个匹配方式,来将这两个DNA
  163. # 进行配对。
  164. # 其中,我们考虑下面两种配对方式
  165. # 这里,设基因X:AGCCT
  166. #       设基因Y:ACCG
  167. #(1)字母——字母:即两个字母相互匹配
  168. #(2)字母——空位:如果X和Y不等长,那么则要在短的那个基因处插入空格,插入的
  169. #     空格位置可以任意,但是基因Y的相对次序不可以变。注,也可以在基因X的地方
  170. #     插入空格,但是也不可以改变基因X的相对次序,若这样做,基因Y就必须插入更
  171. #     多的空格。
  172. # 例(下划线_代表空位):
  173. # 基因X:AGCCT
  174. # 基因Y:A_CCG
  175. # 另外一种可能的配对方式为:
  176. # 基因X:AGCC_T
  177. # 基因Y:A_CCG_
  178. # 注:此时Y的最后一位要用空位补齐。
  179. # 自然,对于一组基因X和Y,配对的方式多种多样,现在我们利用一个打分原则对所有
  180. # 的配对方式进行评价,现在这个评价方式如下:
  181. #(1)如果字母和字母进行配对,进行配对的两个字母相同,分数+1
  182. #                             进行配对的两个字母不同,分数-1
  183. #(2)如果字母和空位进行配对,无论怎么匹配,分数均-1
  184. # 例如,上面两个例子的配对方式:
  185. # 基因X:AGCCT
  186. # 基因Y:A_CCG
  187. # 五个位置分数为+1,-1,+1,+1,-1,总分为1分
  188. # 另一种匹配方式:
  189. # 基因X:AGCC_T
  190. # 基因Y:A_CCG_
  191. # 六个位置分数为+1,-1,+1,+1,-1,-1,总分为0分
  192. # 显然前一种配对方式要好于后一个。
  193. # 那么,我们的问题自然是,在给定基因X和基因Y,并且在这个打分原则的条件下,
  194. # 找出得分最高的匹配方式。
  195. # 在这里,基因X:ATGCCTGA
  196. #         基因Y:AGCTAA
  197. #=============================================================================

  198. #=============================================================================
  199. # 本题思路:配对的方式多种多样,通过计算(利用斯特林公式)我们可以大概估计出
  200. # 需要列出的配对方式大概是指数量级。因此穷举定然会十分麻烦。因此我们考虑动态
  201. # 规划算法。在这里列出一个二维表格F(可以看作二维数组),其中F[i][j]就表示序
  202. # 列 X 的前 i 个和序列 Y 的前 j 个进行匹配,所能达到的最高得分。因此假设序列
  203. # X和Y的长度分别为m和n,那么F[m][n]就是我们要求的最高得分。
  204. # 那么如何计算F[m][n]?这就要用到递推式子。
  205. # 假设我们要求F[i][j],那么我们应该怎么看呢?
  206. # 我们看匹配的最后一位(注意,匹配结束后,X和Y可以看作是等长的,不足的位置已
  207. # 经用空格替代了),它无非有三种情况:
  208. # (1)序列X的最后一位真正的字母和序列Y添加的空格配对
  209. # (2)序列X添加的空格和序列Y的左后一位真正的字母配对
  210. # (3)序列X和序列Y的最后一位真正的字母配对
  211. # 注意不存在空格和空格配对的情况,因为可以同时删去空格,这样做毫无意义。
  212. # 我们很容易能找到下面的递推关系:
  213. # 情况(1):F[i][j] = F[i-1][j] - 1
  214. # 情况(2):F[i][j] = F[i][j-1] - 1
  215. # 情况(3):F[i][j] = F[i-1][j-1] + d(i,j)
  216. #            其中,d(i,j) = 1 when X[i-1] = Y[j-1]
  217. #                  d(i,j) = -1 when X[i-1] != Y[j-1]
  218. # 注意,这里d(i,j)只与i和j有关,而与F无关,这点是非常重要的。
  219. # 因此我们得到重要的递推公式如下:
  220. # F[i][j] = [F[i-1][j] - 1,F[i][j-1] - 1, F[i-1][j-1] + d(i,j)].max
  221. # 初始值的话很容易算,这里就不说了。
  222. # 当然,要想知道具体匹配方式的话,还需要进行回溯,这是个细节问题,懂的人应该会
  223. # 处理的。
  224. #=============================================================================
  225. module Ex3
  226.   X = "ATGCCTGA"
  227.   Y = "AGCTAA"
  228.   def self.solve
  229.     # 建立最优值表格
  230.     value_table = Table.new(X.size+1, Y.size+1)
  231.     # 建立回溯表格
  232.     # 其中,第三个分量表示沿着X和Y的位移量,可以为-1或0
  233.     # 例如trace_table[i,j,0] = -1,trace_table[i,j,1] = 0表示F[i][j]在
  234.     # F[i-1][j] - 1处达到最大值
  235.     trace_table = Table.new(X.size+1, Y.size+1, 2)
  236.     # 初始化
  237.     (0..X.size).each do |i|
  238.       value_table[i,0] = -i
  239.       trace_table[i,0,0] = -1
  240.       trace_table[i,0,1] = 0
  241.     end
  242.     (0..Y.size).each do |j|
  243.       value_table[0,j] = -j
  244.       trace_table[0,j,0] = 0
  245.       trace_table[0,j,1] = -1
  246.     end
  247.     # 迭代
  248.     (1..X.size).each do |i|
  249.       (1..Y.size).each do |j|
  250.         dij = X[i-1] == Y[j-1] ? 1 : -1
  251.         val1 = value_table[i-1,j] - 1
  252.         val2 = value_table[i,j-1] - 1
  253.         val3 = value_table[i-1,j-1] + dij
  254.         if val1 >= val2 && val1 >= val3
  255.           value_table[i,j] = val1
  256.           trace_table[i,j,0] = -1
  257.           trace_table[i,j,1] = 0
  258.         end
  259.         if val2 >= val1 && val2 >= val3
  260.           value_table[i,j] = val2
  261.           trace_table[i,j,0] = 0
  262.           trace_table[i,j,1] = -1
  263.         end
  264.         if val3 >= val1 && val3 >= val2
  265.           value_table[i,j] = val3
  266.           trace_table[i,j,0] = -1
  267.           trace_table[i,j,1] = -1
  268.         end
  269.       end
  270.     end
  271.     # 回溯
  272.     i = X.size
  273.     j = Y.size
  274.     result_x = ""
  275.     result_y = ""
  276.     until i == 0 && j == 0
  277.       cx = trace_table[i,j,0]
  278.       cy = trace_table[i,j,1]
  279.       if cx == -1
  280.         result_x = X[i-1].chr + result_x
  281.       else
  282.         result_x = "_" + result_x
  283.       end
  284.       if cy == -1
  285.         result_y = Y[j-1].chr + result_y
  286.       else
  287.         result_y = "_" + result_y
  288.       end
  289.       i += cx
  290.       j += cy
  291.     end
  292.     p value_table[X.size,Y.size],result_x,result_y
  293.   end
  294. end
复制代码

点评

↓喂喂,亦或就不要用了,大家都不熟悉诶  发表于 2014-7-21 20:26
$game_self_switches[[1,7,'A']] ^= true  发表于 2014-7-21 20:14
↓也可以啦,总比那个三行的好  发表于 2014-7-21 18:23
俺用的这:$game_self_switches[[1,7,'A']] = $game_self_switches[[1,7,'A']] ? false : true  发表于 2014-7-21 18:21

Lv1.梦旅人

史莱姆的信徒
12-B

梦石
0
星屑
53
在线时间
368 小时
注册时间
2013-8-14
帖子
1011
2
发表于 2014-7-21 17:13:51 手机端发表。 | 只看该作者
支持                 
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2749
在线时间
2630 小时
注册时间
2013-1-16
帖子
5657

贵宾

3
发表于 2014-7-21 17:18:50 | 只看该作者
附加题第二题思路怎么那么奇怪啊...
以下是本人的,感觉更好(?):
从左往右检索右括号,每发现一个右括号就调头检索左括号,匹配则替换掉,没有匹配则给当前右括号做标记...
检索一次之后,所有与右括号匹配得上的左括号,剩余的必然是不能匹配的左括号...


另外,给M考场加个链接呗

点评

↓知道了,排名奖励已发。加上链接吧。  发表于 2014-7-21 17:39
↓那个stack数组完全可以不要~主楼第二行提到了M考场...ps:说好的前两名发卡呢...  发表于 2014-7-21 17:36
咱俩这思路是一样的,另外无脑之人的那个代码比我这个更好,思路跟我的差不多。 以及,给M考场加链接?  发表于 2014-7-21 17:28
(Created by @喵kano)


施工现场:hotege.github.io
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
560
在线时间
1286 小时
注册时间
2011-6-14
帖子
4086
4
发表于 2014-7-21 17:30:47 | 只看该作者
1.4秒杀敌人我是根本不会做(战斗渣
3.3我没看懂题目的意思,因为默认脚本中存档禁止时也可以被选中,且看得出来是选中的。

点评

↓看不出来是选中的,确实,那应该再弄个无效被选中的图。不过我印象中的那个图片标题也没考虑这个。  发表于 2014-7-21 17:36
只是,选中后还是暗的也看不出来啊……  发表于 2014-7-21 17:33
可以被选中但是不能变成亮的,否则的话区别不开啊  发表于 2014-7-21 17:32
回复 支持 反对

使用道具 举报

Lv4.逐梦者

素材区好人

梦石
3
星屑
7507
在线时间
3541 小时
注册时间
2011-7-21
帖子
2284

极短24参与极短23参与极短22参与极短21参与

5
发表于 2014-7-21 17:44:48 | 只看该作者
本帖最后由 无忧谷主幻 于 2014-7-21 22:57 编辑
我想做个3.1题也没必要放上去FUKI脚本吧,仅仅就是加个正则表达式gsub而已吧

貌似说的是我?其实我是懒得找了,才把现在游戏中用的对话框脚本放上去的

关于水晶小游戏这个题的确很有趣,当初想了一大堆变量,后来才发觉根本就是在画蛇添足,明明只用几个开关就能解决了。
PS:我以为不发光的水晶就是不亮的

不会做附加题的我注定与好人卡无缘了

点评

的确,我看到FUKI脚本的时候吓了一跳  发表于 2014-7-21 17:48
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
49
在线时间
200 小时
注册时间
2014-7-17
帖子
410
6
发表于 2014-7-21 17:48:31 | 只看该作者
本帖最后由 羁绊的守望者 于 2014-7-21 18:02 编辑

话说附加题第一题是约瑟夫问题吧?还有第二题是不是用数组模拟栈?

@RyanBern
扫了一眼答案后:第二题用栈,遇见(就压栈,遇见)就和上一个元素一起出栈?
话说要不要介绍一下栈?

点评

是这个意思,不过我不想介绍栈了,这毕竟是水区胡扯贴,不用栈的方法参考M君的答案即可。  发表于 2014-7-21 18:06

评分

参与人数 1星屑 +20 收起 理由
RyanBern + 20 说得对

查看全部评分


知其然,而不欲知其所以然,耻也!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
76
在线时间
1379 小时
注册时间
2012-7-5
帖子
1698

开拓者

7
发表于 2014-7-21 18:10:47 | 只看该作者
  1. # 递归公式 (约瑟夫斯问题)
  2. def mk(n, m)
  3.   n == 1 ? 0 : (mk(n-1, m) + m) % n
  4. end
复制代码
↑比如说约瑟夫斯问题, 上面这个方法得到结果后还要+1才是"第几"
话说BZ介绍一下栈吧, 一定能骗走很多膝盖的【咦

点评

约瑟夫斯问题有很多变种的说……  发表于 2014-7-21 19:57
水区胡扯贴还是不要那么严肃认真了,另外我找约瑟夫问题,好处就是知不知道这个结论的人都可以做出来233  发表于 2014-7-21 18:20
栈?VA的场景控制不就用到了嘛233  发表于 2014-7-21 18:16

  -fk: -azogi:
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33444
在线时间
5108 小时
注册时间
2012-11-19
帖子
4878

开拓者

8
发表于 2014-7-21 18:19:12 | 只看该作者
本人纯属捧场,混XP提问区,看到活动,哪有不插一脚的道理,也没什么可以说的。<=一开始就该闭嘴。

点评

以后还要多多捧场啊,thx  发表于 2014-7-21 18:28
xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

Lv2.观梦者

故九江太守

梦石
0
星屑
612
在线时间
2167 小时
注册时间
2012-12-5
帖子
4464
9
发表于 2014-7-21 19:47:32 | 只看该作者
今天才刚刚看到这个考场,就已经结束了……

点评

R考场第二期已经开启,有没有兴趣参加一下?http://rm.66rpg.com/thread-372107-1-1.html  发表于 2014-10-2 12:04
下期求@  发表于 2014-7-21 21:12
还有下一期呢,别桑心(其实桑心的应该是我)  发表于 2014-7-21 20:39
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
117
在线时间
552 小时
注册时间
2012-8-18
帖子
1429
10
发表于 2014-7-21 20:18:49 | 只看该作者
啊哈第三题果然是动规么= =不过实在是懒得想了
第一题真心去一趟C语言吧都能看见满地约瑟夫环
附加题还是留一道算法题吧,这样咱还是有东西可以做的【泥垢【要是不会做就喜闻乐见了

点评

什么是约瑟夫?可以吃?  发表于 2014-7-21 20:30
其实附加第一题是送分的【喂  发表于 2014-7-21 20:27
我要填坑!我要背单词!我要学日语!我要每天锻炼!
好吧呵呵= =
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-19 06:21

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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