duangsuse Throws
视频压制算法是很复杂的,其中往往涉及到难懂的人工智能 人工神经网络、Fourier 傅里叶变换、线性规划、动态规划算法(臆测) 实际上,我一直以为「数学性复杂」的算法和「逻辑复杂」「简单」的算法之间最大的区别就是「数学性复杂」的算法往往先在纸上模拟和设计比较简单 逻辑复杂的往往是写伪代码、debug printf 和使用调试器调试起来比较简单 简单的算法往往不需要写伪代码、不需要在纸上演练即可使用,有 bug 最多一个 debug print 即可找到问题所在,而且单看看也不难
数学上一些复杂的东西即便是尽可能使用简单具体而不是简洁短篇幅的语言描述,也是要花些功夫才能学会理解的
举个例子(orz 跑题了)
这是 foldl(fold aka. reduce) 在 ES6 的实现方式
上面说的那个 foldl 呢,在 Haskell 这样面向篇理论派的语言里实现起来是非常简洁的,不过使用递归比较「自然」但是对小白来说不易懂就是了
举个例子(orz 跑题了)
这是 foldl(fold aka. reduce) 在 ES6 的实现方式
function foldl(op, init, list) {
let accumlator = init;
for (let i of list)
accumlator = op(accumlator, i);
return accumlator;
}
foldl((a, b) => a + b, 0, [1, 2, 3]) //=> 6
虽然逻辑也很简单嘛,但是少说理解起来会比这个容易:['2', '2.5', '3.0'].map(Number.parseFloat) //=> [2, 2.5, 3.0]一个“惊人”的实事是,貌似偏向小白的工业界(因为他们还是有 JavaEE 这种偏向理论化抽象的东西)写的代码大部分都不会比这个复杂多少... ABC(Assignment、Branch、Conditions)值不会超过 10 的东西...
上面说的那个 foldl 呢,在 Haskell 这样面向篇理论派的语言里实现起来是非常简洁的,不过使用递归比较「自然」但是对小白来说不易懂就是了
myFoldl [] = init好吧,上面那个我第一次写的是错的,类型推导失败
myFoldl op init (x : xs) = op(myFoldl xs x)
foldl f z [] = z约等于
foldl f z (x:xs) = foldl f (f z x) xs
myFoldl op init [] = init往递归的无限嵌套倒影里望去,看到的就是... 看不到 emmm
myFoldl op init (x : xs) = myFoldl op (op init x) xs
Forwarded from KK 的键盘侠日常
明天就是双十一了。你在万达买一堆东西,王健林不会记住你,你在腾讯充一堆点券,马化腾不会记住你,你在淘宝大肆购物,马云不会记住你。但是你转我100,我一定会记住你,还会回复你,还会说谢谢大哥。
duangsuse Throws
#Haha #acg hhhhhh 昏睡可乐 笑死我了 不过有点尬膜的意思了🤣:cola:
2333 晚上没啥玩的我去搞个迫真证明玩
Forwarded from Rachel 碎碎念 (IFTTT)
Twitter
Rachel (ノД`)シクシク
期中考试 数学 80/150 物理 55/90 ( 这波玩儿完( 好奇明天成绩单下来之后我妈的表情(