当开始可以发现韩国女团,每个人长得都不一样时,就代表你长大了...
不养羊或兔子之後,开始爬楼梯....
很多语言都会用到斐波那契数,不认识没关系,我们等等用观察法来解。
学程序语言,数学不用好,但学程序後,数学可能会进步...
有一天主持人抽奖,喊了:[第5排那位红色衣服的阿宅,你得奖了]。
我刚好是穿红衣也是阿宅,但我不知道我第几排,所以我向我前面的正妹问,请问她是第几排,她也不知道,所以她向他前面比我还肥宅的肥宅问他是第几排,一直问到了第一排。
{我: "不知道", 正妹: "不知道", 比我肥宅: "不知道", 路人一: "不知道", 路人二: "第一排"}
到了第一排的路人二号,终於知道自己是第一排的观众,但他很酷的的回答路人一,我只知道我在第一排。
好险路人二到我没笨到不会加法,於是从路人二开始回头看。
{
路人二: "我是第一排,那你是我下一位",
路人一: "前面一,所以我是二,後面的我是二",
比我肥宅: "前面是二,所以我是三,後面的我是三",
正妹: "前面是三,所以我是四,後面的我是四",
我: "前面是四,所以我是五,後面的我是五",
}
#找到自己位置的方法,就是知道前面的人的位置。
以上便是递回最简单的想法。
方法只有两种,一步或两步。
#一阶时 method一种
n = 1
1. 1 step
#二阶时 method二种
n = 2
#爬法
1. 1 step + 1 step
2. 2 steps
#三阶时 method三种
n = 3
1. 1 step + 1 step + 1 step
2. 2 steps + 1 step
3. 1 step + 2 steps
#四阶时 method五种
n = 4
1. 1 step + 1 step + 1 step + 1 step
2. 2 seep + 1 step + 1 step
3. 1 setp + 2 setp + 1 step
4. 1 step + 1 step + 2 setp
5. 2 setp + 2 setp
# 这边不是观察算式,而是发现到最後方法只有最後一步是1的方法,加上最後一步是2的方法,等於总方法数。
# 最後一步是1时 == n - 1 , 最後一步是2时 == n - 2。
# 另外整理答案 hash = {"1": 1, "2": 2, "3": 3, "4": 5}
hash[1] = 1
hash[2] = 2
hash[3] = 4
hash[4] = 5 #从三四阶时开始符合 n = (n - 1) + (n - 2)
# 养动物达人公式就出现了 f(x) = f(x-1) + f(x-2)
def climb_stairs(n)
methods = {}
methods[1] = 1
methods[2] = 2
3.upto(n) do |n|
methods[n] = methods[n - 2] + methods[n - 1]
end
methods[n]
end
def climb_stairs(n)
fibona_hash = { 0 => 0, 1 => 1, 2 => 2, 3 => 3 }
fibona_hash.default_proc = ->(hash, n) {hash[n] = hash[n-1] + hash[n-2]}
fibona_hash[n]
end
# "->", lambda。
# 嗯,我没分享过block,proc及lambda....
请先看https://ruby-doc.org/core-3.0.2/Hash.html#method-i-default_proc
def climb_stairs(n)
return 0 if n == 0
a, b = 0, 1
n.times { a, b = b, b + a }
b
end
补充:
2.7.3 :013 > arr = [1, 2, 3]
=> [1, 2, 3]
2.7.3 :014 > arr[0] = arr[1]
=> 2
2.7.3 :015 > arr
=> [2, 2, 3]
2.7.3 :016 > arr = [1, 2, 3]
=> [1, 2, 3]
2.7.3 :017 > arr[0] ,arr[1] = arr[1], arr[0]
=> [2, 1]
2.7.3 :018 > arr
=> [2, 1, 3]
虽然就是费波纳,但是观察爬楼梯爬高点就会发现了。
<<: 在 Clear Linux 上安装 VirtualBox 6.1.26
接下来我们要针对基本变数型态做一些简单的介绍,以及超级重要的阵列!那这篇先以variables为主。...
今日目标 载入图片,画出第一张图 stb_image.h 第三天-驱动OpenGL这篇有稍稍提到这个...
哇哇哇,挑战第一天我就没准备好,只能很赶的生出一篇文章。 不负责任预告一下:我中文不是很好所以要是文...
Thread tags: IT铁人 虽然前面说CPU在执行程序时,都用process来叙述,不过其实...
算是检验自己对JavaScript理解一个很好的方法: 范例 : const cat1 = { na...