duangsuse::Echo
0.999...≠1 (实数域
https://zhuanlan.zhihu.com/p/79394127 的科普笑话大家可以关注🌝
数学的精度是无限的,所以才需要d这个1/无穷小数来求曲线面积这样。 对整数1~2间不存在数,而实数里0~1和0~100间能取同样多的数-好比矢量图放大。🌚
理论上相等、是严格的,基于lim或循环小数的定义 -找不到 1-0.(9) 的值「具体」是啥,没法在有限时间内写出相差,那么就相等。 *数值上的相等即差为0* 尽管小数最开始是基于除余,整数是实数子集。
0.9循环=1 ,就像 1/3 再*3=1,而它本身=0.3循环,从+-*/到幂,模意义运算、几何、求和微积分,稠密的实数域没有方法损失其循环小数"精度",也没有比它靠近1的数(Lim[n=inf]0.9*(1/10)^n)。
为什么.9和.3的循环不一样?🤷♂️
.3循环不是0.3也不是0.4,因为能找到.3~.4间的数,但对.9不行
为什么0^0=1? 0^(1-1)=0^1*0^-1 ,0/0是不行的,在数位计数法上0位权=1, 1=10,这才有意义
1-(1/10^n) <ep,即 1/10^n >1/ep = n>lg 1/ep ,这肯定成立,若(>)左更大,就有更小n=ep取值。(...
或许你觉得它不文本等同,但站在≠和=的非此即彼,十进制循环.3就是三进制.1
数学对编程的主要贡献是整数正负0,以及浮点小数 1e-10=0.1,从加减到乘除的多项式(polynomial),还有base64一些常数log次数计算。不过这都是菜市场级的算式复用。
然后是2D几何与帮助物理完善向量
帮助信号处理“简化”(泛化)公式,任何与物理采样相关的都需要,这些关系更大。
科学是对哲学里无法复现的避而不谈,工程是对理论里没有用处的完全抛弃🌑比如P=NP判断,你不可能对不存在的「路线爆炸图」提问题
x==0?a():b() “NP同时计算问题”实际就是 a&x |b 的关系式求解,放 dfs 上当然是可以的,哪里有非确定计算机呢
https://zhuanlan.zhihu.com/p/380558841
数学的精度是无限的,所以才需要d这个1/无穷小数来求曲线面积这样。 对整数1~2间不存在数,而实数里0~1和0~100间能取同样多的数-好比矢量图放大。🌚
理论上相等、是严格的,基于lim或循环小数的定义 -找不到 1-0.(9) 的值「具体」是啥,没法在有限时间内写出相差,那么就相等。 *数值上的相等即差为0* 尽管小数最开始是基于除余,整数是实数子集。
0.9循环=1 ,就像 1/3 再*3=1,而它本身=0.3循环,从+-*/到幂,模意义运算、几何、求和微积分,稠密的实数域没有方法损失其循环小数"精度",也没有比它靠近1的数(Lim[n=inf]0.9*(1/10)^n)。
为什么.9和.3的循环不一样?🤷♂️
.3循环不是0.3也不是0.4,因为能找到.3~.4间的数,但对.9不行
为什么0^0=1? 0^(1-1)=0^1*0^-1 ,0/0是不行的,在数位计数法上0位权=1, 1=10,这才有意义
1-(1/10^n) <ep,即 1/10^n >1/ep = n>lg 1/ep ,这肯定成立,若(>)左更大,就有更小n=ep取值。(...
或许你觉得它不文本等同,但站在≠和=的非此即彼,十进制循环.3就是三进制.1
数学对编程的主要贡献是整数正负0,以及浮点小数 1e-10=0.1,从加减到乘除的多项式(polynomial),还有base64一些常数log次数计算。不过这都是菜市场级的算式复用。
然后是2D几何与帮助物理完善向量
帮助信号处理“简化”(泛化)公式,任何与物理采样相关的都需要,这些关系更大。
科学是对哲学里无法复现的避而不谈,工程是对理论里没有用处的完全抛弃🌑比如P=NP判断,你不可能对不存在的「路线爆炸图」提问题
x==0?a():b() “NP同时计算问题”实际就是 a&x |b 的关系式求解,放 dfs 上当然是可以的,哪里有非确定计算机呢
https://zhuanlan.zhihu.com/p/380558841
知乎专栏
民科吧见闻录目录页
征稿启事[手动滑稽]:《民科吧见闻录》是以收集民科的日常、趣事、奇葩言论、相关“理论”等为主的综合性专栏,重点目标是向全社会揭露民科团体对社会的危害性。欢迎各位知友和吧友踊跃投稿。民科危害性分级:目录…
duangsuse::Echo
#statement 很多时候我不爱看自己的代码,但它之外只有量大后更难读的东西,一些问题想描述都是复杂的,何谈定义“解法”,我一直在努力简化 我就相信不管多难、多牛的人写的代码,都有更通俗的表达法——唉,大佬们总让我失望 如果连《算法》这种英美计科教科书都是不可相信的,我能信任谁呢,所以才说 #Kotlin 是好语言吧,至少它选择相信表达而非智商。 我遇到过天才,但天才尽管悟性好也曾有做得不好的时候;如果说最后他们写出来的东西还是10行能讲明白,如果他们的实践也只是6,7种方法中的一种,而每种方法各都有优劣…
#statement #读后感 https://t.me/dsuset/9981 #bilibili
>你没资格对别人的努力评头论足,不甘是当然的
<可是,方向不同,努力仍有意义吗?
<以独一自居,当出现和自己同道的人,因自私地想傲立整个领域,分不清主观和利害因果,自然会想他很碍事吧。既生瑜何生亮,这不是一种幼稚吗 。亮会怎么想?他才不想,所以他是『亮』。
<即便失败的是『亮』,也会问问瑜比自己哪儿强多少,而不是哪里不通点哪里,活活被气死,最后怨天尤人怨自己笨怨对手强,为比赛而非目的比赛;长期如此的傲慢就能带来瑜亮间胜败的差距
>你没有这种情感吗
<我欣赏他们,也欣赏自己。 对环境要有正确且和谐的预估,愤怒或崇拜不能让人聪明,说到底还是要懂得并善用自身能力。 不懂自己,也轻视他人。
主动问自己有多强,或者把自己和某人作比,我没有傻到那种程度。我最多想知道别人以为我有多强,而对我有啥益处
我不想断言自己比人厉害,或许我对程序理解更深,但我的实践经验和成品数仍要向他们学习,我不如人,这并不是客套。往上看茫茫一片,往下看同样,但我看到的不是计数或分布,而是一条条的线-创意,思想,语言,功名,潜力…… 一个散点图(scatter)能看到与知识深度和广度相关的这些信息
就像乐谱里高高低低的音符,连成平滑平直或陡峭的线,每个人都是乐谱里的音符,没有音符是理所应当被抛弃的。
则其善者从之,其不善者改之;就像均衡器,把“最终成果”拆成几片叠加,强化你喜欢频率的震幅,剔除无聊的,它依旧能用。
现实不是数学世界,如果你不会下棋,可以把棋盘掀了,只要你能—信息差为啥能隔开大脑相似的人呢。
人的精力是有限的,如果你能解决A问题,既不必为衍生的B而心烦,也更好顾全大体,也不耽误你看B。
某动漫有句话说的好,技术之外都是不纯之物。许多问题本来好解决,人心和技术圈的掺合制造许多非直接问题。 测试只是既定条件,由人设计的它能标签很多能力,但真把非此即彼的 floor(x) 当最自然的指标,相差0.1就是天壤,只能发现输赢得很累。 对一些人卷是被迫的,但我们不要在所有层面上学习卷的精神,人生苦短,技术从简。
聪明的人从历史来就不少,什么时代都有状元探花秀才,每年都有,春风得意人上人-但非得如此才春风得意?也不见得吧。但无论奠基者或登峰造极者,不完全是“卷”训练出来的。 一个数学家再厉害再天才,也不能解决生物问题,如果真存在一个无所不知的人,还要研究什么?小明=0.87 小红=0.69 加权求和,某人算算就够了,把这当自己的能力,是因为你也不懂你能力的历史和目的,以及通过后又该干什么,只是被定向培养。
为啥有阶越函数呢?因为人们的衡量方式很难太细,阶层绑定的许多就是真假值,而非浮点数。然,许多真假是自身内心的假象。 没有研究者为“打倒人”而求索,打怪进级之外,也有人只是为追求真理和最优解,P!=NP 问题不可分,以同样的运气对同类的问题,这种宠辱不惊的情感同样高贵。
与其确信数学家>臭皮匠,不如把相差列出来,这样他们 才知道各自需学习什么向量“分量”,>号只知一个结果,连过程原因和参考系都没有,0分。
位置是相对的,运动是绝对的。 动起来,停止瞎想,自然知道自己方向上的斤两。
或许你以为我想说强弱是相对的,说读书不普适,但这篇文字只是说——能量和过度自信没有干系、优缺点和名字没有干系,因为分不清,才成为止于某处的自己。
rdf数学竞赛队俯视全队,万众仰慕的第一,到了冬令营,遇到了湖南浙江的各路大神,也不过芸芸众生。他会不甘,会愤怒,会想「要是我是冬令营的第一就好了。」<这不就是所谓的「无能狂怒」吗,为什么「众生皆下品」?
冬令营俯视全营,万众仰慕的第一,到了国家队,遇到了前几届国家队的各路大神,也不过芸芸众生。他会不甘,会愤怒,会想「要是我是这几届里最强的就好了。」
>你没资格对别人的努力评头论足,不甘是当然的
<可是,方向不同,努力仍有意义吗?
<以独一自居,当出现和自己同道的人,因自私地想傲立整个领域,分不清主观和利害因果,自然会想他很碍事吧。既生瑜何生亮,这不是一种幼稚吗 。亮会怎么想?他才不想,所以他是『亮』。
<即便失败的是『亮』,也会问问瑜比自己哪儿强多少,而不是哪里不通点哪里,活活被气死,最后怨天尤人怨自己笨怨对手强,为比赛而非目的比赛;长期如此的傲慢就能带来瑜亮间胜败的差距
>你没有这种情感吗
<我欣赏他们,也欣赏自己。 对环境要有正确且和谐的预估,愤怒或崇拜不能让人聪明,说到底还是要懂得并善用自身能力。 不懂自己,也轻视他人。
主动问自己有多强,或者把自己和某人作比,我没有傻到那种程度。我最多想知道别人以为我有多强,而对我有啥益处
我不想断言自己比人厉害,或许我对程序理解更深,但我的实践经验和成品数仍要向他们学习,我不如人,这并不是客套。往上看茫茫一片,往下看同样,但我看到的不是计数或分布,而是一条条的线-创意,思想,语言,功名,潜力…… 一个散点图(scatter)能看到与知识深度和广度相关的这些信息
就像乐谱里高高低低的音符,连成平滑平直或陡峭的线,每个人都是乐谱里的音符,没有音符是理所应当被抛弃的。
则其善者从之,其不善者改之;就像均衡器,把“最终成果”拆成几片叠加,强化你喜欢频率的震幅,剔除无聊的,它依旧能用。
现实不是数学世界,如果你不会下棋,可以把棋盘掀了,只要你能—信息差为啥能隔开大脑相似的人呢。
人的精力是有限的,如果你能解决A问题,既不必为衍生的B而心烦,也更好顾全大体,也不耽误你看B。
某动漫有句话说的好,技术之外都是不纯之物。许多问题本来好解决,人心和技术圈的掺合制造许多非直接问题。 测试只是既定条件,由人设计的它能标签很多能力,但真把非此即彼的 floor(x) 当最自然的指标,相差0.1就是天壤,只能发现输赢得很累。 对一些人卷是被迫的,但我们不要在所有层面上学习卷的精神,人生苦短,技术从简。
聪明的人从历史来就不少,什么时代都有状元探花秀才,每年都有,春风得意人上人-但非得如此才春风得意?也不见得吧。但无论奠基者或登峰造极者,不完全是“卷”训练出来的。 一个数学家再厉害再天才,也不能解决生物问题,如果真存在一个无所不知的人,还要研究什么?小明=0.87 小红=0.69 加权求和,某人算算就够了,把这当自己的能力,是因为你也不懂你能力的历史和目的,以及通过后又该干什么,只是被定向培养。
为啥有阶越函数呢?因为人们的衡量方式很难太细,阶层绑定的许多就是真假值,而非浮点数。然,许多真假是自身内心的假象。 没有研究者为“打倒人”而求索,打怪进级之外,也有人只是为追求真理和最优解,P!=NP 问题不可分,以同样的运气对同类的问题,这种宠辱不惊的情感同样高贵。
与其确信数学家>臭皮匠,不如把相差列出来,这样他们 才知道各自需学习什么向量“分量”,>号只知一个结果,连过程原因和参考系都没有,0分。
位置是相对的,运动是绝对的。 动起来,停止瞎想,自然知道自己方向上的斤两。
或许你以为我想说强弱是相对的,说读书不普适,但这篇文字只是说——能量和过度自信没有干系、优缺点和名字没有干系,因为分不清,才成为止于某处的自己。
Telegram
duangsuse Throws
【“我考上了,然后呢。”-哔哩哔哩】 https://b23.tv/ahtFf9R
同为做题家,有太多类似的心路,曾经停下了脚步,在某乎看到一段,给迷茫的人。
我发现国集大神的圈子和196中,35中之流的圈子没什么不同。
196中俯视全校,万众仰慕的年级第一,到了171中也不过芸芸众生。他会不甘,会愤怒,会想「要是我是年级第一就好了。」
171中俯视全校,万众仰慕的年级第一,到了实验中学也不过芸芸众生。他会不甘,会愤怒,会想「要是我是年级第一就好了。」
实验中学俯视全校,万众仰慕的年级第一,到了r…
同为做题家,有太多类似的心路,曾经停下了脚步,在某乎看到一段,给迷茫的人。
我发现国集大神的圈子和196中,35中之流的圈子没什么不同。
196中俯视全校,万众仰慕的年级第一,到了171中也不过芸芸众生。他会不甘,会愤怒,会想「要是我是年级第一就好了。」
171中俯视全校,万众仰慕的年级第一,到了实验中学也不过芸芸众生。他会不甘,会愤怒,会想「要是我是年级第一就好了。」
实验中学俯视全校,万众仰慕的年级第一,到了r…
duangsuse::Echo
#statement #读后感 https://t.me/dsuset/9981 #bilibili rdf数学竞赛队俯视全队,万众仰慕的第一,到了冬令营,遇到了湖南浙江的各路大神,也不过芸芸众生。他会不甘,会愤怒,会想「要是我是冬令营的第一就好了。」 冬令营俯视全营,万众仰慕的第一,到了国家队,遇到了前几届国家队的各路大神,也不过芸芸众生。他会不甘,会愤怒,会想「要是我是这几届里最强的就好了。」 <这不就是所谓的「无能狂怒」吗,为什么「众生皆下品」? >你没资格对别人的努力评头论足,不甘是当然的 <可是,方向不同,努力仍有意义吗?…
😅动苏也说过膜拜大佬的话,但它不会干扰我做手头的事,失去信心什么的。 看看就好。大佬即便大佬,也无法帮你做成所有东西。你只有你自己
同样地,我也会因应用好看而感到崇敬,但不会因为崇敬就能接受烂代码,或者拒绝改良。 不把不同动机的同能力混为一谈
在学习中我发现了,非口头上朴素的事物里也有胜过「高级」的优点,为何要非此即彼地选择,就像(<)的结果不是数,只是另一个范畴的标杆
我学编程是为了更好的写应用,学语言是为了学会设计和复用更多类型的代码,然而语言真是在研究各种不同的语言和转化吗? 在解决问题后,也发现了问题背后的问题,如此问题才能彻底被击败,得到更完善的解,所以一个解不是结局;从解释/编译工具到普适的框架、到必不可少的动作顺序 何尝不是如此
如果停在 It works ,我早是「编译器专家」了,然而语言的问题远比一种做法更大,也并非从小处看不出 #plt
编程要点是让所有重点显眼。而语言学……正是能让所有概念不特殊,所有语言统一的东西啊。表达一切的语言,就是代码复用的最高峰,尽管每个人都会说话,语言却不是人能穷尽的。它采样了自然赋予人的「智能」而非统计,谁知道大脑如何工作? 勿傲视自然。 尽管语言什么也不包含,它的改变也能带来做法的变化,从语言工具到应用层无不如此,流水线上所有程序都没能有它自以为的那样“与众不同”,这才像语言和「基础」啊。 这也是语言应当带给实际的福利
同样地,我也会因应用好看而感到崇敬,但不会因为崇敬就能接受烂代码,或者拒绝改良。 不把不同动机的同能力混为一谈
在学习中我发现了,非口头上朴素的事物里也有胜过「高级」的优点,为何要非此即彼地选择,就像(<)的结果不是数,只是另一个范畴的标杆
我学编程是为了更好的写应用,学语言是为了学会设计和复用更多类型的代码,然而语言真是在研究各种不同的语言和转化吗? 在解决问题后,也发现了问题背后的问题,如此问题才能彻底被击败,得到更完善的解,所以一个解不是结局;从解释/编译工具到普适的框架、到必不可少的动作顺序 何尝不是如此
如果停在 It works ,我早是「编译器专家」了,然而语言的问题远比一种做法更大,也并非从小处看不出 #plt
编程要点是让所有重点显眼。而语言学……正是能让所有概念不特殊,所有语言统一的东西啊。表达一切的语言,就是代码复用的最高峰,尽管每个人都会说话,语言却不是人能穷尽的。它采样了自然赋予人的「智能」而非统计,谁知道大脑如何工作? 勿傲视自然。 尽管语言什么也不包含,它的改变也能带来做法的变化,从语言工具到应用层无不如此,流水线上所有程序都没能有它自以为的那样“与众不同”,这才像语言和「基础」啊。 这也是语言应当带给实际的福利
Telegram
duangsuse::Echo
人和人间的差距>人和🐒间的差距…
唉 / 嘛 / 如果一个人比你小又比你牛,你就永远也赶不上他了
唉 / 嘛 / 如果一个人比你小又比你牛,你就永远也赶不上他了
https://t.me/kotlin_cn/25220 #kotlin #go 面向job/task计算称 #concurrent ,和完全平行(如滤镜图片)不同
线程切换 >> 函数调用(没有线程切换下的协程切换) > batch之后的函数调用
>分别对应于代码实现的Dispatchers.Default + 无buffer (如果你写对了的话), coroutineScope + 无buffer , coroutineScope + buffer
Exectors singleThread asCoroutineDispatcher
>wait是指blocking的wait么?没看到channel的代码,但是可以断言里面不可能线程停住等待
>不, 是指协程底层在无可调度时的wait;能看到一半是无锁链表,一半是LockSupport.park
之前和他的差这么多,估计是被调度到一个线程上去了,不知道Default里边的策略是什么样的
bench=repeat(10_000);o=Any()Channel 和调度器 Dispatcher ,在浏览器有 worker.postMessage 和 onmessage
c=Channel<Any>()
runBlocking {withContext(Default){
launch{bench{ c.send(o) }}
launch{bench{ c.receive() }}
}}
//c.close(); launch.join()
var wg sync.WaitGroup;wg.Add(2)defer WaitGroup 在凑齐2项时传输(循环看错位)?其实是用计数看是否有job存活,都Done掉退出时再继续主线程
var token struct{}
c:=make(chan struct{})
go func(){
defer wg.Done()
bench{c<-token}
}
go func(){
defer wg.Done()
bench{<-c}
}
wg.Wait()
runBlocking{//limitedParallelism,newFixedThreadPool,single..
val produce=produce(Default){
bench{launch{send(1)}}
}
var n=0
produce.consumeEach{n+=it}
}
也有把 Channel 异步序列变得友好的做法线程切换 >> 函数调用(没有线程切换下的协程切换) > batch之后的函数调用
>分别对应于代码实现的Dispatchers.Default + 无buffer (如果你写对了的话), coroutineScope + 无buffer , coroutineScope + buffer
Exectors singleThread asCoroutineDispatcher
>wait是指blocking的wait么?没看到channel的代码,但是可以断言里面不可能线程停住等待
>不, 是指协程底层在无可调度时的wait;能看到一半是无锁链表,一半是LockSupport.park
之前和他的差这么多,估计是被调度到一个线程上去了,不知道Default里边的策略是什么样的
Telegram
Michael Corleon in Kotlin CN
其实我也见到 stackoverflow 上有人发现 kotlin coroutine 是轻量,但是并不快…尽管通常来说轻意味着快
#cg #python
要展示100个人头像的最好方法是瓷块式拼合,再在上面盖层mask,像"Meta","Google"大字样,使部分头像变黑,但一些人的头像就比较黑,如果能让它们处在mask更黑的地方,岂不更好?
mask 里w=h=1 ,只要提供宽度切出每像素,以与下者对应
*.png 里只用返(),需要视每张wh来布局,因此网应是返()的参数
如此就能按 mask 组合能补满其w*h的 png 们,sortMerge(a,b,f):把b按f序对应到a索引
sort(保留a索引号,f) 再把 sort(b,f) 以a位置填充即可
以此顺序调用返(),输出里mask高亮(f=lum)位置就是较白头像
#js
漩涡扭曲位图里半径l的区间,需在xy建立圆心座标系,从 xy-l 迭到 xy+l 算与xy差的 sqrt,atan2 确定距离分组再以在圆弧度 排序像素不难,然后 push(shift(扭力)) 取圈重排再画回去
其实直接支持 xy=2l 的2D数组,靠与其索引 i-l 的角距,即得 xy和旋转后的 ai=a[ti] 映射关系,不必每次创建许多分组和数组只为旋转圆内圈;直接生成 t[y*w+x] 存储旧位 如此利用 getImageData.data 更方便
要展示100个人头像的最好方法是瓷块式拼合,再在上面盖层mask,像"Meta","Google"大字样,使部分头像变黑,但一些人的头像就比较黑,如果能让它们处在mask更黑的地方,岂不更好?
imwall.py mask.png *.png 首项宽高很低,其后图宽高统一,试以lum(img)为目标将其后图像瓷砖排列。class 砖图:如此我们就能以网格座标来处理一张图,比如滤镜五颜六色。但 网(ims,m=columns) 有两个版本
def 入(im,网)#以网格项(x,y,w,h) im.crop 出列表,记下i-xy对应
def 返(a)#paste 回旧图原位
mask 里w=h=1 ,只要提供宽度切出每像素,以与下者对应
*.png 里只用返(),需要视每张wh来布局,因此网应是返()的参数
如此就能按 mask 组合能补满其w*h的 png 们,sortMerge(a,b,f):把b按f序对应到a索引
sort(保留a索引号,f) 再把 sort(b,f) 以a位置填充即可
以此顺序调用返(),输出里mask高亮(f=lum)位置就是较白头像
#js
漩涡扭曲位图里半径l的区间,需在xy建立圆心座标系,从 xy-l 迭到 xy+l 算与xy差的 sqrt,atan2 确定距离分组再以在圆弧度 排序像素不难,然后 push(shift(扭力)) 取圈重排再画回去
其实直接支持 xy=2l 的2D数组,靠与其索引 i-l 的角距,即得 xy和旋转后的 ai=a[ti] 映射关系,不必每次创建许多分组和数组只为旋转圆内圈;直接生成 t[y*w+x] 存储旧位 如此利用 getImageData.data 更方便
Telegram
duangsuse::Echo
谈谈命名问题。圆座标系(POLar)上,角度和距离一般称 theta-rho , angle/arc-radius 即a-r,这是物理采用较少的几个希腊字
我的物理命名法则用 rl:rotation-length 表示这个,因为编程上a理应代表数组..而一些人也会用r标记角度a记面积 真混乱
对同一个像素图,可用直角(xy)和圆座标(rl)自00点等效描述其上每点位置(座标系的意义就是编码位置),这样就容易进行变换,例如圆翘曲和拧转
->rl=(atan2(x,y), sqrt(xx+yy))
<-rl=(lsinr…
我的物理命名法则用 rl:rotation-length 表示这个,因为编程上a理应代表数组..而一些人也会用r标记角度a记面积 真混乱
对同一个像素图,可用直角(xy)和圆座标(rl)自00点等效描述其上每点位置(座标系的意义就是编码位置),这样就容易进行变换,例如圆翘曲和拧转
->rl=(atan2(x,y), sqrt(xx+yy))
<-rl=(lsinr…
#api #web 波形可视化 https://collab-project.github.io/videojs-record/demo/audio-only.html
#oi #math 这个就不是信号处理的FT了,它是针对多项式 各项系数/x-y联立 表示 ,一个分治法,一般用来加速高精度乘法
系数转点值的算法叫DFT(离散傅里叶变换)
https://blog.csdn.net/Flag_z/article/details/99163939 }
FFT 令原
先把 e^-i2pik*(i/N) =cos,sin缓存为Wi=Wn ..
算法的核心是ωn矩阵和fn数组(列矩阵)做矩阵乘法运算,因为ωn是复数,所以运算出结果也是个复数rval + i * ival,最终频域的值其实上是其模值,但为什么模值需要乘以个bSi 是为平滑
频谱的信号只需要分析N/2就可以了,另一半是共轭的。 总之是算一个频时把exp(kt)缓存(把圆N等分 就不迭t0~1) 且同频宽的计算量/2
https://www.cnblogs.com/RabbitHu/p/FFT.html
https://zhuanlan.zhihu.com/p/197450738 JS fft
高精度乘法是 10e6 以上位,longlong 都能溢出的整数乘法,可用 a[i-1]+a[i]/10,a[i]%=10 手动进位法。i in"1",j in "2" a[i+j]=parse(i+j) 后迭 i+1-2 次(倒位相乘处理进位,再倒回来)
也可做<10e6常量优化,不致溢出就机器乘;溢出6位数才竖式计算
FFT蝶形系数换位 0~7 到 04261537 打表偶奇数|分割 实际是个 a[i]=a[~i] 的置换,向上还原
多项式每层(+)都要分为等长2部分,最高次项一定2幂
conj是自带求共轭复数。当复数模长为1时,共轭复数等于倒数
https://blog.csdn.net/zccz14/article/details/51592893 这里还有个咱方法的
(抱怨一句,同时我也感到数学的闲散了, 你说=xy点=向量还图示,不如直接说复数=向量,什么加减法则啊abcd废话都莫说了,直接说乘法咋用;还什么膜长,幅角,余数非得说是模数 还不挑明,还 modular math(转钟计算) ,还共轭复数(相反向量),好像数学能模块化 还co-sine 余弦.. 叫竖弦咋样?噢带横竖就不可配不严谨。文绉绉的,好像只有数学家会看函数图一样,a+bi 哪有Pxy易读,非得入侵人家的领域表达法,带来不少无聊问题,起个名词 Complex(real,imag) ,复杂呵呵,一点语义都莫得,无意义的“运算符重载”,计算机没有real数,要SP却仍要拜数学为师了;它一装逼,下游应用名词全乱起来
一些废话说它何用,好像最后阅文的是机器,然鹅数学代码高亮都没得,记法和作用域混乱到机器用不了,还得人来翻译,可真两边不是人了,难怪被”憨蛋“们抱怨,啥事都插足包装,太爱整无意义担心了
复数给C引入了“向量计算”,我是不是还得谢谢数学啊 🌚 这么多文章天书一样重复的符号,看烂代码已经够累,还要看草记版公式上下标,数学的招牌。请问我的阅读顺序是 lr-tb 还是 tl-br 啊?我不是天才 真没精力了!
http://watmough.github.io/jsFFT/Example.html http://www.storiesinflight.com/jsfft/visualizer/index.html 那个 dsp.js 1.6k star
c=player.wavesurfer().surfer //play , handlers.audioprocess (所有播放器都在tick时重绘进度条, finishb=c.backend.buffer, c.drawBuffer() //展示所录制的音频波形b.length, b.getChannelData(0) //一般 %44100 pps, float 格式#oi #math 这个就不是信号处理的FT了,它是针对多项式 各项系数/x-y联立 表示 ,一个分治法,一般用来加速高精度乘法
系数转点值的算法叫DFT(离散傅里叶变换)
https://blog.csdn.net/Flag_z/article/details/99163939 }
FFT 令原
Pk=f(t)*e^-i2pik dt ,P=震幅相位,k=频率。用sum写是 Pk=Sum[i=1~N]f(i)*e^-i2pik *(1/N) #math #algorithm 先把 e^-i2pik*(i/N) =cos,sin缓存为Wi=Wn ..
算法的核心是ωn矩阵和fn数组(列矩阵)做矩阵乘法运算,因为ωn是复数,所以运算出结果也是个复数rval + i * ival,最终频域的值其实上是其模值,但为什么模值需要乘以个bSi 是为平滑
e^{ix} = cos x + isin x; ωn = e^{-2πik/n} = cos(2πk/n) - i * sin(2πk/n)
然后for(k N/2)for(i nBuf)x+=cos*buf,y sinbuf频谱的信号只需要分析N/2就可以了,另一半是共轭的。 总之是算一个频时把exp(kt)缓存(把圆N等分 就不迭t0~1) 且同频宽的计算量/2
https://www.cnblogs.com/RabbitHu/p/FFT.html
https://zhuanlan.zhihu.com/p/197450738 JS fft
高精度乘法是 10e6 以上位,longlong 都能溢出的整数乘法,可用 a[i-1]+a[i]/10,a[i]%=10 手动进位法。i in"1",j in "2" a[i+j]=parse(i+j) 后迭 i+1-2 次(倒位相乘处理进位,再倒回来)
也可做<10e6常量优化,不致溢出就机器乘;溢出6位数才竖式计算
FFT蝶形系数换位 0~7 到 04261537 打表偶奇数|分割 实际是个 a[i]=a[~i] 的置换,向上还原
多项式每层(+)都要分为等长2部分,最高次项一定2幂
conj是自带求共轭复数。当复数模长为1时,共轭复数等于倒数
https://blog.csdn.net/zccz14/article/details/51592893 这里还有个咱方法的
(抱怨一句,同时我也感到数学的闲散了, 你说=xy点=向量还图示,不如直接说复数=向量,什么加减法则啊abcd废话都莫说了,直接说乘法咋用;还什么膜长,幅角,余数非得说是模数 还不挑明,还 modular math(转钟计算) ,还共轭复数(相反向量),好像数学能模块化 还co-sine 余弦.. 叫竖弦咋样?噢带横竖就不可配不严谨。文绉绉的,好像只有数学家会看函数图一样,a+bi 哪有Pxy易读,非得入侵人家的领域表达法,带来不少无聊问题,起个名词 Complex(real,imag) ,复杂呵呵,一点语义都莫得,无意义的“运算符重载”,计算机没有real数,要SP却仍要拜数学为师了;它一装逼,下游应用名词全乱起来
一些废话说它何用,好像最后阅文的是机器,然鹅数学代码高亮都没得,记法和作用域混乱到机器用不了,还得人来翻译,可真两边不是人了,难怪被”憨蛋“们抱怨,啥事都插足包装,太爱整无意义担心了
复数给C引入了“向量计算”,我是不是还得谢谢数学啊 🌚 这么多文章天书一样重复的符号,看烂代码已经够累,还要看草记版公式上下标,数学的招牌。请问我的阅读顺序是 lr-tb 还是 tl-br 啊?我不是天才 真没精力了!
http://watmough.github.io/jsFFT/Example.html http://www.storiesinflight.com/jsfft/visualizer/index.html 那个 dsp.js 1.6k star
blog.csdn.net
超详细易懂FFT(快速傅里叶变换)及代码实现_傅立叶变换编程-CSDN博客
文章浏览阅读10w+次,点赞820次,收藏2.5k次。前言昨天学了一晚上,终于搞懂了FFT。希望能写一篇清楚易懂的题解分享给大家,也进一步加深自己的理解。FFT算是数论中比较重要的东西,听起来就很高深的亚子。但其实学会了(哪怕并不能完全理解),会实现代码,并知道怎么灵活运用 (背板子) 就行。接下来进入正题。定义FFT(Fast Fourier Transformation),中文名快速傅里叶变换,是离散傅氏变换的快速算法,它是根据离散傅氏变..._傅立叶变换编程
口意,好,我用相同公式完成1D 频谱转波形了,虽然又懂正常该用离散 FFT 缓存多项式系数(弄得我都不知道 f(t) 的到底是连续还是离散 😌 是时候支持滤波录音和生成吉他了
C=player.wavesurfer().surfer; b=C.backend.buffer;u=b.getChannelData(0); let N=1000
fn=()=>{
谱=newA(2*N,i=>律(-i+N,t=>[u[t*n(b)>>0] ,0] ))
B=newA(n(b), i=>谱.map((p,k)=>律(-(i/n(b))*(k-N), p)).reduce((a,x)=>a+x[0],0) )
B=new Float32Array(B);b.copyToChannel(B,0);C.drawBuffer() }😂谜题:基于微积分Int[+-Inf]的FT叫连续傅里叶,基于N分圆数组*输入 Sum[0~n]的叫DFT离散傅里叶,如果有dt步长采样 但限于1/dt (倒数.即输入buf.N)次分圆
Anonymous Poll
33%
叫连续
0%
叫离散
33%
离散但不完全
0%
连续但不完全
33%
🤪
duangsuse::Echo
😂谜题:基于微积分Int[+-Inf]的FT叫连续傅里叶,基于N分圆数组*输入 Sum[0~n]的叫DFT离散傅里叶,如果有dt步长采样 但限于1/dt (倒数.即输入buf.N)次分圆
对程序员的直觉,数学连续意味着不可做有穷计算,就像空中楼阁,但基于 t=0~1step dt 却是“连续”的,因为dt可无限取精,即便计算有穷 🤪这也叫连续?直接用编程概念定义反而更严谨,你直接税把 dt 改 Array(1/dt) 且 t 变 i/N 不就行了,这不同样的事么?
这就叫缓存fn(t=0~1)计算就变离散了,公式都不需要,甚至通过
吐槽:数学公式带点左标大括你都看不懂 。 其实我是懒得看他们的迭代记法nNmnjn和矩阵下标的比我更魔怔
大写单字我都不敢乱用,一定要有易变性区别,而nN在我这都是计数 i才是迭代,碰到这种公式我可无法代入语义,索性没看他们给计算机准备的公式……😶反正无前提的符号都是一团乱麻。
也不能怪数学,Sum[i=0~n]a[i] 虽然i是整数,但数学家眼里那么多斜体花体拉丁希腊的古文了,非要拿单1命名代表类型,碰到整数下标又成nm了,这一定是数学语言的超强多态常用+严谨性造成的(草
不过一会pq一会ab nm 又ijk的真的就无语,线是ft矩阵是xi.. Xk,单独是a,结对是pq…还真挺睿智,它知道符号语义有重叠,那么为啥n能同时是整数和小数?除了 100^-1 ,数组下标也支持n=1.1 代表 a[1]+.1*a[2] 🤪? 它懂规避重叠,但不懂如何拥抱多义性,以及数学分支的符集冲突,于是规避着规避着就一边乱眼一边妥协。但按ABCs里连续分配变量真的傻逼,英文不配有姓名吗
数学界《我知道不严谨,所以θρλ有特定区间性质,但是fxXFnNnmabAB这些经常混用,为了严谨抛弃拉丁字母好了😱🙄》
《我想整成古风白月光,结果因为传达能力太差,严谨多义混着来,变成胡风了》
其实连续和离散在这里只是针对 圈C=2pi*频k*t 和f(t)采样,要么f可分,要么C可分。 连续就分f,离散就分C,而 谱k=Vec2(l=振幅,r=相位)
然而,API的f连续与否,对电脑不重要,f肯定是要先采样[]的,还不如直接把C采样了,两个数据都是[],处理窗口(时延)=1024采样点,于是算频谱的也从JS表达式变为“多项式”
在我不知道这回事时,就定义好了函数
并且标明了e^-2pi*k 可以视律(k,f)用量缓存,但只处理1个路径,没注意到有积分多k🙈
那时没建立k=钢琴键 的理解,因为Xe的版本是 Cn(i,fn) i in 1~gen ,gen是世代的意思……难道不是神经网络专有的 C应是圆圈的缩写,转速=频率,然而Xe当时没给注释🌑 只有几个C前缀和frame(t)->动量,振幅降序
不过这次在20行内融合声音和路径的FT,解释了3b1b的解释,我还是初次讲数学…以前都是冷门知识🌕
不管过程多曲折,只要最终我的文章优雅,就无所谓啦
这就叫缓存fn(t=0~1)计算就变离散了,公式都不需要,甚至通过
a[n(a)*t>>0] 能一边连续一边离散,就API是数值函数还是buffer,但不像公式"非此即彼”。 我甚至不需要改博文,给这个等价关系贴上大家就知道咋重构了,何须独立代码,比分出N个公式或不同时给[正逆FT式]好。 那么多*FT 我刚以为是完全不同的呢 😓我看不懂大Sigma(Sum)。DFT就能兼容f(t=0~1)的曲线不过一会pq一会ab nm 又ijk的真的就无语,线是ft矩阵是xi.. Xk,单独是a,结对是pq…还真挺睿智,它知道符号语义有重叠,那么为啥n能同时是整数和小数?除了 100^-1 ,数组下标也支持n=1.1 代表 a[1]+.1*a[2] 🤪? 它懂规避重叠,但不懂如何拥抱多义性,以及数学分支的符集冲突,于是规避着规避着就一边乱眼一边妥协。但按ABCs里连续分配变量真的傻逼,英文不配有姓名吗
数学界《我知道不严谨,所以θρλ有特定区间性质,但是fxXFnNnmabAB这些经常混用,为了严谨抛弃拉丁字母好了😱🙄》
《我想整成古风白月光,结果因为传达能力太差,严谨多义混着来,变成胡风了》
其实连续和离散在这里只是针对 圈C=2pi*频k*t 和f(t)采样,要么f可分,要么C可分。 连续就分f,离散就分C,而 谱k=Vec2(l=振幅,r=相位)
然而,API的f连续与否,对电脑不重要,f肯定是要先采样[]的,还不如直接把C采样了,两个数据都是[],处理窗口(时延)=1024采样点,于是算频谱的也从JS表达式变为“多项式”
在我不知道这回事时,就定义好了函数
(nK个频,1/dt次割圆)*/切分=(f, N=1/c.dt>>0)=>newA(N, i=>f(i/N)) 并且标明了e^-2pi*k 可以视律(k,f)用量缓存,但只处理1个路径,没注意到有积分多k🙈
那时没建立k=钢琴键 的理解,因为Xe的版本是 Cn(i,fn) i in 1~gen ,gen是世代的意思……难道不是神经网络专有的 C应是圆圈的缩写,转速=频率,然而Xe当时没给注释🌑 只有几个C前缀和frame(t)->动量,振幅降序
不过这次在20行内融合声音和路径的FT,解释了3b1b的解释,我还是初次讲数学…以前都是冷门知识🌕
不管过程多曲折,只要最终我的文章优雅,就无所谓啦
duangsuse::Echo
对程序员的直觉,数学连续意味着不可做有穷计算,就像空中楼阁,但基于 t=0~1step dt 却是“连续”的,因为dt可无限取精,即便计算有穷 🤪这也叫连续?直接用编程概念定义反而更严谨,你直接税把 dt 改 Array(1/dt) 且 t 变 i/N 不就行了,这不同样的事么? 这就叫缓存fn(t=0~1)计算就变离散了,公式都不需要,甚至通过 a[n(a)*t>>0] 能一边连续一边离散,就API是数值函数还是buffer,但不像公式"非此即彼”。 我甚至不需要改博文,给这个等价关系贴上大家就知道咋…
找到公式的许多版本还是一个讲物理?的最准确,百科上面那是啥啊
就没有一个能完美符合我预期的数学式, Xk=Sum[n]xn e^-i2pi*t*k *(n/N) 算是较好的,其它有人ijkfF瞎混用,然而Xk-xn是什么?输入输出?
像Freq,Fn 都是提取了一部分语义,但它忽视冲突了。 F作为freq(=k)的简写和信号处理的f(t)就不能乱出现了,它已经因遮盖“死”掉了,写公式的人只看到侧面就在用,不会回看写好了的公式,不发现问题。🤷♂️
要我怎么写呢,我才不用希腊字母和FWX这些, Frq[k]=Sum[t=1~n](t/n)xt C^-2pi*kt
C=(cos,sin)*√-1 .. 好吧数学里e是"上标函数",不是次数🌚或Math.E或科学计数法 《e多义性》
用的少名字就多写点🌝,啥都单字,碰到“操作符”pi cos又多字,好像你会在公式里引用Frq[k]一样! 恕我直言,数学没那个资格。ipy尽管强大,不支持跑Latex,Matlab不开放web
平时手算几个采样点就够无聊,真在纸上“正推”用算法🤪,那既然不用单字干嘛? 如果要用,你想优化什么边界情况?
我只是想知道算法怎么写,凭什么听数学名词概念? 那些博文也没给比FT更优的公式(拉普拉斯这些要另看),甚至连续离散的关系也没说清,有的只给了正分析,没给反还原…… 这种数学看它真是给工作增添负担,1D输入不用虚数y ,我还以为是怎样,早想到这个🌑
一些名词意义就less,“任何数乘倒数=1” 表示成 1/n*n=n*1/n=1 ,倒数表示成
数学混乱就是因为他们只想「规律」,没认识规律的多模式重复和嵌套与真正的“类型-操作”多义,它只推一遍,只看一个值,当然认识不到作用域和子式的重要,认识不到冲突和多义是不可怕的;数学下标内标方括号看起来很丑,然而一些人也不懂多def几个式子,因为“定义新运算”可是伟大的数学家才能做,你只配援引的事!他们嘴上没说,但风格处处如此, 因为数学语言和变常量/算符集包容万物,上下标多义严重 左内标风格混乱,它是稍稍「不规范」就整体崩盘的脆弱仅一行式语言,而作者们既不懂中文也不懂英文,无法在式外填补其空缺。
你看工程,他们照本宣科爱乱改符号 有的只知其一。 你看理论,他们公式简洁但只有公式,别的啥都不提。
你怎么用?只能用各种既有算法库,动辄几千行,他们不懂新语法和元编程,有人甚至vec这些算式复用基础都莫得,好比数学没有正负号🌚
都不能直观看出公式和现实的联系,一个滤波器能压缩图片、分析结果传别算法,在他们的文章只有包涵万物但鬼用没有的公式,让人“移植”到JS都费劲。
我编程是基于脑中模拟边界情况的(比如y=fx, 我假设y是纵向升降来支持+-,用区间理解x缩=放),如果不能合理解释就只能做数学等式的那种重构,也背不住,就很无趣(电脑也能干,譬如删所有'\n')
人家提供的公式n/N Xx有问题吗?从数学的约定俗成当然OK,但我不接受大写X不是另一个函数输入的情况(?这就是所谓的大写不易变 或有物理性
当执行其反函数,就不懂xX是啥了(X=FrqX,x=TimeY )..在几个符号编码坐标系信息,大可不必,plot波形(tx轴)和频谱(kl)够了
那我不能灵活一点兼容这个写法? 前提:我不需要看那么多文章就能搞懂,然而我读这20多篇时概念就开始混乱了,他们没一个人确信地告诉我"公式的结果是什么,和频谱何干,能做频通滤波-咋反变换" “k,t f(t)区间是啥” "xn输入怎么对应到 sinT+sin1.2T" 这种细节,也没
https://pythonnumericalmethods.berkeley.edu/notebooks/chapter24.02-Discrete-Fourier-Transform.html 这么好的图示和符号表,这样我至少能对一下模型 不会误解频幅次序
当你需要遍历1至N遍才能搞懂符号有何区间和物理意义,通过其重复出现位置;公式就没有字面意义了
无公式用不了,那你直接贴公式,好比按钮全空白的程序,谁会啊。 #statement
看的许多文章贴的式和图完全是鸡同鸭讲,图例也莫得 代码也不plot,就一个“优美的图形”和“简洁的代码”“严谨的公式”,你是艺术还是科学?真希望我能懂,来好好纠正下他们的错误表达。
其实这也就是个AB问题-能修复知识传达的误差,理解能力强,能解决自己。能不带误差统一高效传递,整理能力强,也能解决自己,此外还有感点兴趣的人、被认为愚钝的人🤷♂️ 如果app收发慢,八成是怪服务端和表示层,两成是用户真不配。工程创意哪来阶层,
如果你能把易误点的"思考结果"marshal封送给人,低IQ也能写出好东西,他不会想也能load结果。很多工程师的智商根本不低,就是害怕白象。
要是这些都好懂,还害怕没有免费音频工具用?一个个文档写得挺精致,API连信号处理最开始就是函数加减乘除都忘了,整Gain,H/L/Band-PF 这些“可配置”.. 还是太理论保守
就没有一个能完美符合我预期的数学式, Xk=Sum[n]xn e^-i2pi*t*k *(n/N) 算是较好的,其它有人ijkfF瞎混用,然而Xk-xn是什么?输入输出?
像Freq,Fn 都是提取了一部分语义,但它忽视冲突了。 F作为freq(=k)的简写和信号处理的f(t)就不能乱出现了,它已经因遮盖“死”掉了,写公式的人只看到侧面就在用,不会回看写好了的公式,不发现问题。🤷♂️
要我怎么写呢,我才不用希腊字母和FWX这些, Frq[k]=Sum[t=1~n](t/n)xt C^-2pi*kt
C=(cos,sin)*√-1 .. 好吧数学里e是"上标函数",不是次数🌚或Math.E或科学计数法 《e多义性》
用的少名字就多写点🌝,啥都单字,碰到“操作符”pi cos又多字,好像你会在公式里引用Frq[k]一样! 恕我直言,数学没那个资格。ipy尽管强大,不支持跑Latex,Matlab不开放web
平时手算几个采样点就够无聊,真在纸上“正推”用算法🤪,那既然不用单字干嘛? 如果要用,你想优化什么边界情况?
我只是想知道算法怎么写,凭什么听数学名词概念? 那些博文也没给比FT更优的公式(拉普拉斯这些要另看),甚至连续离散的关系也没说清,有的只给了正分析,没给反还原…… 这种数学看它真是给工作增添负担,1D输入不用虚数y ,我还以为是怎样,早想到这个🌑
一些名词意义就less,“任何数乘倒数=1” 表示成 1/n*n=n*1/n=1 ,倒数表示成
/n *n 不就方便了,还多项式,算法还多项式时间,概念模型没有 尽是小定义废话,直接说第一层(+)第二层(*)形如1a+2b^N+... N固定,非”联系“变量系数,那不就向量/矩阵点乘来算吗,线性代数。 基础不过关,一句话能引入的写几百篇文造一大堆词,抽象空泛实践贫弱,凑页数呢。数学家居然依靠Matlab独家,社会上数学出去做程序员50w的成见哪来的呢,我是受不了什么下标,list.get 就是取,方括号就不一样,不是上下标。记法语义分不清、嵌套不会抽提不善。计算机代数可不需要草稿纸和“简写法”数学混乱就是因为他们只想「规律」,没认识规律的多模式重复和嵌套与真正的“类型-操作”多义,它只推一遍,只看一个值,当然认识不到作用域和子式的重要,认识不到冲突和多义是不可怕的;数学下标内标方括号看起来很丑,然而一些人也不懂多def几个式子,因为“定义新运算”可是伟大的数学家才能做,你只配援引的事!他们嘴上没说,但风格处处如此, 因为数学语言和变常量/算符集包容万物,上下标多义严重 左内标风格混乱,它是稍稍「不规范」就整体崩盘的脆弱仅一行式语言,而作者们既不懂中文也不懂英文,无法在式外填补其空缺。
你看工程,他们照本宣科爱乱改符号 有的只知其一。 你看理论,他们公式简洁但只有公式,别的啥都不提。
你怎么用?只能用各种既有算法库,动辄几千行,他们不懂新语法和元编程,有人甚至vec这些算式复用基础都莫得,好比数学没有正负号🌚
都不能直观看出公式和现实的联系,一个滤波器能压缩图片、分析结果传别算法,在他们的文章只有包涵万物但鬼用没有的公式,让人“移植”到JS都费劲。
我编程是基于脑中模拟边界情况的(比如y=fx, 我假设y是纵向升降来支持+-,用区间理解x缩=放),如果不能合理解释就只能做数学等式的那种重构,也背不住,就很无趣(电脑也能干,譬如删所有'\n')
人家提供的公式n/N Xx有问题吗?从数学的约定俗成当然OK,但我不接受大写X不是另一个函数输入的情况(?这就是所谓的大写不易变 或有物理性
当执行其反函数,就不懂xX是啥了(X=FrqX,x=TimeY )..在几个符号编码坐标系信息,大可不必,plot波形(tx轴)和频谱(kl)够了
那我不能灵活一点兼容这个写法? 前提:我不需要看那么多文章就能搞懂,然而我读这20多篇时概念就开始混乱了,他们没一个人确信地告诉我"公式的结果是什么,和频谱何干,能做频通滤波-咋反变换" “k,t f(t)区间是啥” "xn输入怎么对应到 sinT+sin1.2T" 这种细节,也没
https://pythonnumericalmethods.berkeley.edu/notebooks/chapter24.02-Discrete-Fourier-Transform.html 这么好的图示和符号表,这样我至少能对一下模型 不会误解频幅次序
当你需要遍历1至N遍才能搞懂符号有何区间和物理意义,通过其重复出现位置;公式就没有字面意义了
无公式用不了,那你直接贴公式,好比按钮全空白的程序,谁会啊。 #statement
看的许多文章贴的式和图完全是鸡同鸭讲,图例也莫得 代码也不plot,就一个“优美的图形”和“简洁的代码”“严谨的公式”,你是艺术还是科学?真希望我能懂,来好好纠正下他们的错误表达。
其实这也就是个AB问题-能修复知识传达的误差,理解能力强,能解决自己。能不带误差统一高效传递,整理能力强,也能解决自己,此外还有感点兴趣的人、被认为愚钝的人🤷♂️ 如果app收发慢,八成是怪服务端和表示层,两成是用户真不配。工程创意哪来阶层,
如果你能把易误点的"思考结果"marshal封送给人,低IQ也能写出好东西,他不会想也能load结果。很多工程师的智商根本不低,就是害怕白象。
要是这些都好懂,还害怕没有免费音频工具用?一个个文档写得挺精致,API连信号处理最开始就是函数加减乘除都忘了,整Gain,H/L/Band-PF 这些“可配置”.. 还是太理论保守
Forwarded from Hacker News
Is it safe to use __secret_internals_do_not_use_or_you_will_be_fired? (🔥 Score: 158+ in 1 hour)
Link: https://readhacker.news/s/55WiK
Comments: https://readhacker.news/c/55WiK
Link: https://readhacker.news/s/55WiK
Comments: https://readhacker.news/c/55WiK
GitHub
is it safe to use __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED ? · Issue #3896 · reactjs/reactjs.org
I want to use the undocumented property React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED which holds some interesting insights and can be useful in some cases. I'm developing React ...
#bilibili #security #china #net #Android 跟踪链接真的太烦了,不要相信任何“客户端”
https://b23.tv/aht___R 这种短链接带有追踪参数的,访问会302转到
包括ip、账号(如果已经登录)、设备(浏览器指纹、设备型号等)、实名信息了。
https://b23.tv/BV1HP4y1A7cp 这样的才行
除非b23.tv后面跟的是av或者BV或者cv(文章),这些链接都是会被追踪的
通过微信公众号的复制链接功能也会带一些这种东西
而且微信的还是有用的和无用的夹杂在一起,没有经验的人就特别难处理
<现在客户端真是太狡猾了,都不知道有啥插件能拦,尤其是这种302后的
EDIT: Clean Share 能帮助清理剪贴板,但不支持短链接展平,魔还是魔
https://b23.tv/aht___R 这种短链接带有追踪参数的,访问会302转到
&share_medium=androidb站员工应该能在后台看到你的b站账号是谁,和通过这个链接点进去的有哪些人——
&share_plat=android
&share_session_id=xxx-xx..
&share_source=COPY
&share_tag=s_i
×tamp=1643807827
&unique_k=___
包括ip、账号(如果已经登录)、设备(浏览器指纹、设备型号等)、实名信息了。
https://b23.tv/BV1HP4y1A7cp 这样的才行
除非b23.tv后面跟的是av或者BV或者cv(文章),这些链接都是会被追踪的
通过微信公众号的复制链接功能也会带一些这种东西
而且微信的还是有用的和无用的夹杂在一起,没有经验的人就特别难处理
<现在客户端真是太狡猾了,都不知道有啥插件能拦,尤其是这种302后的
EDIT: Clean Share 能帮助清理剪贴板,但不支持短链接展平,魔还是魔
Bilibili
“我考上了,然后呢。”_哔哩哔哩_bilibili
网易云Liar Lubbers , 已上传音频在“采访”一些比较交心的C9名校兄弟的时候,了解到他们的感触。共情了他们的痛苦与挣扎之后,写下了这首歌。如果你硬觉得那就是矫情的为赋新词强说愁。那就啊对对对。毕竟,冷暖自知。, 视频播放量 852820、弹幕量 563、点赞数 60918、投硬币枚数 31015、收藏人数 35015、转发人数 5308, 视频作者 叫我卢伯斯, 作者简介 【Liar Lubbers】我不得不创作,就像溺水的人不得不挣扎,相关视频:“抱歉,我没考上”,给六月的,迷茫的你《你终…
https://t.me/Ralphonograph/4415 #bytedance 火山引擎自带"Vulkan" 浏览器
https://www.zhihu.com/question/514473758/answer/2334029041 #embedded #bilibili 全站第一 #zhihu
>什么叫用树莓派GPIO控制传感器容易烧掉,间接控制arduino就不容易烧掉? 不敢相信这是北邮电信的本科毕业生说的话。
“ 我解释一下吧:不同的单片机/MCU的IO脚,有的内置了上拉电阻,有的没有内置上拉电阻,这时候你需要外置一个上拉电阻。
你没有外接上拉电阻,所以你的树莓派会是被烧掉。不是传感器的质量问题,不是树莓派的质量问题,是北邮教学的质量问题。 这也不是什么高深的知识,是数字电路/微机原理/单片机原理/嵌入式编程/FPGA/物联网…任一课程的最基础知识。 不是说你烧了几个单片机之后你才发现这个单片机能用,那个单片机不能用。而是你应该在用它之前就看他的datasheet,再去画电路,再去编程。 这个感觉就是copy几个同学的
什么?南北邮电大学不专业?! 在南邮电见过一个rust大佬 🌚 这种层次也会有问题
(补充:不能只看统计,要讲理论。
https://www.zhihu.com/question/514473758/answer/2334029041 #embedded #bilibili 全站第一 #zhihu
>什么叫用树莓派GPIO控制传感器容易烧掉,间接控制arduino就不容易烧掉? 不敢相信这是北邮电信的本科毕业生说的话。
“ 我解释一下吧:不同的单片机/MCU的IO脚,有的内置了上拉电阻,有的没有内置上拉电阻,这时候你需要外置一个上拉电阻。
你没有外接上拉电阻,所以你的树莓派会是被烧掉。不是传感器的质量问题,不是树莓派的质量问题,是北邮教学的质量问题。 这也不是什么高深的知识,是数字电路/微机原理/单片机原理/嵌入式编程/FPGA/物联网…任一课程的最基础知识。 不是说你烧了几个单片机之后你才发现这个单片机能用,那个单片机不能用。而是你应该在用它之前就看他的datasheet,再去画电路,再去编程。 这个感觉就是copy几个同学的
什么?南北邮电大学不专业?! 在南邮电见过一个rust大佬 🌚 这种层次也会有问题
(补充:不能只看统计,要讲理论。
Telegram
Phonograph
不好意思我想复杂了,vulcan 是个浏览器
直接运行它就能带起来这么一个图形界面...
直接运行它就能带起来这么一个图形界面...
duangsuse::Echo
#ce #plt 带步骤的四则计算器。递归逆波兰。22行代码 浅先=`;=;+ -;* / %` 流=(a, _s=[...a].values())=>()=>_s.next().value 切2D=(s,sp0,sp1)=>s.split(sp0).map(s=>s.split(sp1) ) {let t={},k; 切2D(浅先,';',' ').forEach((x,i)=>{for(k of x)t[k]=i}); 符深大=t} 符链=(s,l)=>{let a=[],add=x=>a.push(x)…
#plt #typing #kotlin #java 常见类型系统
从变量/参数的赋值兼容力(即子类成员量)升序:
对函数
而检查期 1,"str" 和
类型的强弱看隐式转换,动静即语法有无分出“编译期已知项”如class结构,类型推导能让静态类型更智能。
现在你已经知道「类型标记」只是仅编译可知,用来
类型的交集&(有
+*类型即分支组合类型,与其配对的是不兼容子类型的系统,那些系统里元组/具名数据类型也算”类型“,但有些奇技(如typeclass函数重载)来解决OOP里有或没有的问题。
A&B 成员集小,兼容力比A或B大,但在严谨的OOP子类派生里,只有 A|B 被用于多态(函数覆盖:多义, Any null?),而交集参数仅混合接口。
感觉有点好笑,我一个看编程语言的,话却越来越少了。 以前很喜欢技术,但感觉越学知识越少了。
从变量/参数的赋值兼容力(即子类成员量)升序:
Any<任何类型<Nothing ,类型 T 比T?兼容力强,因其不含null,error():Nothing 可容任何类型,因后续计算中断。对函数
(Any)->R 连Any都能收,当然是 (Int)->R ,也即 Fun<in T, out R>,型参值 T=Int 反接受小的 T=Any。是消费-生产 in=?super,out=?extends "通配符",但可直接在写<T> 时指定仅在 in/out 位置,及 Array<out Int>
变量R在两个函数类型里唯一,都来自<T,R>型参列表,对R的每位置归一可推导出R再检查。可以发现,(T)->R 和 Fun<T,R> 都是从类型组合出类型的语法,而检查期 1,"str" 和
Int,String 型变量都是类型(Type.can haveSubtype),a[0]=1 时问 Array<Any>.set(Int,Int) 是否 params.all{it,i-> it.can(arg[i].type) } ,像在执行一般检查每条算式,能提早报错并加速内存分配。类型的强弱看隐式转换,动静即语法有无分出“编译期已知项”如class结构,类型推导能让静态类型更智能。
现在你已经知道「类型标记」只是仅编译可知,用来
chk(AST.FCall): i=0~nArg; scope["print"].arg[i].can(call.arg[i].type ) 的 Type.can(Type):Bool 实例,正如 Python 的 from typing import TypeVar 。Map<K,V> 也是编译期调用,只是class 里创建型参<A,B,..>写法和函数前不同,不是”特殊语法“。类型的交集&(有
where T:A,T:B "交集上限" )并集|(兼容操作支持俩类型,如 Any? vs Any,AST vs Call If For):子类&父类=子类, A&B=Nothing 、A|B=最近共同超类+*类型即分支组合类型,与其配对的是不兼容子类型的系统,那些系统里元组/具名数据类型也算”类型“,但有些奇技(如typeclass函数重载)来解决OOP里有或没有的问题。
A&B 成员集小,兼容力比A或B大,但在严谨的OOP子类派生里,只有 A|B 被用于多态(函数覆盖:多义, Any null?),而交集参数仅混合接口。
感觉有点好笑,我一个看编程语言的,话却越来越少了。 以前很喜欢技术,但感觉越学知识越少了。
duangsuse::Echo
#WIP 作者正在学习傅里叶变换 😓 感谢xecades大佬的博客。 实在不好在tg打太长的草稿。 语言有问题请大家积极报告 今天本来说还得写篇文评知乎民科的,以及提纲2月的动画礼物(草 话说xecades大佬居然真的是用 offset-path 来获取SVG折线点……天哪,我还以为不能呢,offsetLeft 好像确实变了,当时我以为不能(忘记为啥了)就找到了 SVGPath 的 TotalLen/PointAtLen (这里Xe顺带 -W/2 居中了一下,style里0点也加上了。transferSVG…
知乎专栏
傅里叶变换40行
你画过直方图吗? a.groupBy(key={it.色}) 里a是3个色球,按颜色每个投入x轴上不同的桶里。 想象你握着这3球,每个瞄一眼,再用不同速度抛向桶的列,它们便摞成一竖,仍等效原集合。 Map<K,List<V>> …
duangsuse::Echo
#zhihu #blog #math 傅里叶变换40行 - duangsuse的文章 - 知乎 https://zhuanlan.zhihu.com/p/464203132
同时兼容2D,波形的 总结应用我想好了.. 是一个可 Ctrl+Enter 改波形或 DownArrow 换SVG的“代码input”+重绘textarea code ,利用Proxy {}get 添加支持onchange的滑条,调整 N,nK,dK, wImg 这些参数为DFT变换和区间滤波
通过ab 波形+c(采样时长,音高) 这样也支持合成拨弦声;我也想到 Hachi-bapu 扒谱工具的UI怎么写了 #web
然而人脸识别扭曲的 newA(2N, i=> i-N 圆心滤镜还是要写…… 临门一脚了 😭
好像我讲的都不如做的高性能( DFT vs. dt=.001 FT ,重绘换像素序 vs. get/put ImageData 矩阵换序
然而啊,完成后还是没几个人看。都成常态了。 而且我20号之前要做一个纯代码音乐动画,虽然大体都想好了,.. 但很重要啊
通过ab 波形+c(采样时长,音高) 这样也支持合成拨弦声;我也想到 Hachi-bapu 扒谱工具的UI怎么写了 #web
然而人脸识别扭曲的 newA(2N, i=> i-N 圆心滤镜还是要写…… 临门一脚了 😭
好像我讲的都不如做的高性能( DFT vs. dt=.001 FT ,重绘换像素序 vs. get/put ImageData 矩阵换序
然而啊,完成后还是没几个人看。都成常态了。 而且我20号之前要做一个纯代码音乐动画,虽然大体都想好了,.. 但很重要啊