#algorithm (感觉自己转发的可能有点奇怪了 🤔)
#cplusplus
不过代码质量真的可以🍎(注: name shadowing 有点不好,我习惯的是同层次相关可以同名...),反观引的等价算法1千行就……
尾调用版亦可写
#cplusplus
std::vector<bitset<N>> rec;
int gcd(int x, int y); void dfs(int o=0, int lst=0); 不过代码质量真的可以🍎(注: name shadowing 有点不好,我习惯的是同层次相关可以同名...),反观引的等价算法1千行就……
gcd(x,y) { while (x %= y/*x取商 若有余数*/) std::swap(x, y); return y; } 这个求公约写法够简洁了 🌝尾调用版亦可写
gcd(x,y) = if (x%y==0) y else gcd(y, x/y)Forwarded from mivik::channels::tech
#gist #string #combinatorics_of_strings #project
计算所有长度为 n 的字符串的自相关位向量(Autocorrelation)
https://gist.github.com/Mivik/6e0459afe6691bce2659e1eaa5141390
没有注释的话只有短短 60 行,并且没有刻意压行,比 某些人 写的 1000 多行版本好多了(写那个的貌似是个学院派,代码里充斥着完全没法编译的怪异头文件以及鬼畜的码风...)
灵感来自于 这篇论文
计算所有长度为 n 的字符串的自相关位向量(Autocorrelation)
https://gist.github.com/Mivik/6e0459afe6691bce2659e1eaa5141390
没有注释的话只有短短 60 行,并且没有刻意压行,比 某些人 写的 1000 多行版本好多了(写那个的貌似是个学院派,代码里充斥着完全没法编译的怪异头文件以及鬼畜的码风...)
灵感来自于 这篇论文
Gist
Enumeration of autocorrelations of length n
Enumeration of autocorrelations of length n. GitHub Gist: instantly share code, notes, and snippets.
duangsuse::Echo
作为开发者,你对「学院派」持什么态度?
#zhihu #plt #china 🤔别看了
[王垠,请别再欺负我们读书少 - 开发者头条](https://toutiao.io/posts/33acp5/preview)
[PLT零基础的人,要看懂王垠和彭飞在《王垠,请别再欺负我们读书少》里讨论的内容,需要掌握哪些知识? - 知乎](https://www.zhihu.com/question/42315543)
[如何评价王垠的新文章《回应CFA传人对我的攻击》? - 知乎](https://www.zhihu.com/question/42333233)
[王垠,请别再欺负我们读书少 - 开发者头条](https://toutiao.io/posts/33acp5/preview)
[PLT零基础的人,要看懂王垠和彭飞在《王垠,请别再欺负我们读书少》里讨论的内容,需要掌握哪些知识? - 知乎](https://www.zhihu.com/question/42315543)
[如何评价王垠的新文章《回应CFA传人对我的攻击》? - 知乎](https://www.zhihu.com/question/42333233)
toutiao.io
王垠,请别再欺负我们读书少 - 开发者头条
开发者头条,程序员分享平台。toutiao.io
duangsuse::Echo
#Python #code 妈耶,看来还是 lambda op_append: 的方法好,虽然带副作用。 总结:新写法省了 gavSplit 和 from itertools import chain ,多了 3*lambda ,优雅性持平。
新写法加了仨 trivial(可省) def ,总觉得不该以行数为全部的... 总行数18 -3 -1(proj 的 for in) = 14 ,最小了吗 🤪
可这个程序以
可这个程序以
a:b:c org.h:a,-w,--w1:1.0 示例输入生成了 35 行输出, 14/35==0.4
duangsuse::Echo
https://github.com/CASC-Lang/CASC 我会一如往常在频道里进行项目结构分析,然后用与 C# 相对的 Java (竟然不是 Kotlin... )进行一些并行的重写工作。 之所以用 #Java 写这样富于技巧的 #CE 编译器 程序,是因为我想常常新口味了…… 一些原来 Kotlin 里有的我也用 TypeScript 重写过 原项目是一个“能编译繁简体中文、甚至英语”的编译器,目标是对简体程序员可用。 ChAoS_UnItY (Chaos Unity) 开发,由 C# minisk…
md.py
594 B
#Python #code 😭 暂时没有找到 Markdown export 的 bot ,就只好基于 @ShowUpdateJsonBot 这个全文 BotUpdate Event JSON dump 机器人,转换下 span
参见依云大佬的 snippet (不对... 这个还带 line_number 的)
参见依云大佬的 snippet (不对... 这个还带 line_number 的)
def applySpans(d, op, coding="utf-8"):这个 range 可以表示成 (pos+length) (iBeg,iEnd) (iBeg,iStop) 很多种方法,其实还是第一种最常见
bs = d["text"]; i0 = 0
addSpan = lambda e: (e["offset"], e["length"], e)
for (i, n, e) in map(addSpan, d["entities"]):
iStop = i+n
yield bs[i0:i]
yield op(e["type"], e.get("url"), bs[i:iStop])
i0 = iStop
def mdify(type, data, text, fmts={"text_link": "[{0}]({1})","hashtag":"{0}"}):
return fmts[type].format(text, data)
#Python #tools #Telegram 这下就有经验了,不会倒大霉!
def join(op): return lambda *args: "".join(op(*args))结果:
@join
def applySpans(d, op, kP="offset", kN="length"):
s = d["text"]; i0 = 0
span = lambda e: (e[kP], e[kP]+e[kN], e)
for (iBeg, iStop, e) in map(span, d["entities"]):
yield s[i0:iBeg]; yield op(e["type"], e.get("url"), s[iBeg:iStop])
i0 = iStop
def transTable(deft="{0}", **d): return lambda tag, data, text: (d.get(tag) or deft).format(text, data)
from json import loads; from sys import stdin
def readJson(): s=stdin.read(); return loads(s[s.index('{'):])
print(applySpans(readJson(), transTable(text_link="[{0}]({1})", code="```{0}```")) )
这个没啥,相关知识: 算符链 [InfixPattern](https://github.com/ParserKt/ParserKt/blob/master/src/commonMain/kotlin/org/parserkt/pat/complex/InfixPattern.kt)/«Lua设计与实现» 相关章节; 中文数值 [NumUnit](https://github.com/ParserKt/ParserKt/blob/37599098dc9aafef7b509536e6d17ceca370d6cf/parserkt-ext/src/commonMain/kotlin/org/parserkt/pat/ext/NumUnitPattern.kt)/[han()](https://github.com/duangsuse-valid-projects/Share/blob/master/Others/CN_constitution.md) #learnGist
Reformat Telegram @ShowUpdateJsonBot Message update json to markdown
Reformat Telegram @ShowUpdateJsonBot Message update json to markdown - tg_md.py
不 excited ,非常不 excited 。
本来是不打算弄这个的,现在弄了,发现效率不知为什么变得很低,大概就是想择机写点小工具而已
可是这个重构真的会很麻烦吧,说好了要休息的
本来是不打算弄这个的,现在弄了,发现效率不知为什么变得很低,大概就是想择机写点小工具而已
可是这个重构真的会很麻烦吧,说好了要休息的
#Python 草生了.... 什么时候能不要挂羊头卖狗肉了,搞得我很怀疑自己能力啊,连个重写都做不到?那么简单的分词器都不会?!
python mvng.py a:b:c org.h:a,-w,--w1:1.0 -dependencyManagement org.junit:--bom,:5.7.0 -plug :wtf -parent org.my:base -module hello -fat -xi 0 -x 'parent=text:a:v' -x '.=eval:listE("contributor",opOnEach(opSetsChild("name"),["a"]) )'GitHub
duangsuse/CASC-Java
A handwritten compiler which can transform English or Manderin, even mixed codes! - duangsuse/CASC-Java
不过以后写普通 JVM 应用也可以选择 Maven 了,因为辣鸡 POM 可以让 Python 自动生成的
出于简化项目,同时符合规矩的考虑,这么做是有意义的, Gradle 那玩意太耗了,看起来 Maven 对常规项目相当合适
出于简化项目,同时符合规矩的考虑,这么做是有意义的, Gradle 那玩意太耗了,看起来 Maven 对常规项目相当合适
Forwarded from Qv2ray Development Tracker
GitHub
ramips: drop support for Phicomm K2P by 1715173329 · Pull Request #6241 · coolsnowwolf/lede
让我们来看看我们在这个电子垃圾上花了多少心思:
https://github.com/coolsnowwolf/lede/issues?q=k2p
甚至是:
https://github.com/vernesong/OpenClash/issues?q=k2p
这个电子垃圾改了又改,这个 commit 是开发者无法继续容忍的直接标志: 5d51ba1
里面的 MT7621 系列完全遭其无妄之...
https://github.com/coolsnowwolf/lede/issues?q=k2p
甚至是:
https://github.com/vernesong/OpenClash/issues?q=k2p
这个电子垃圾改了又改,这个 commit 是开发者无法继续容忍的直接标志: 5d51ba1
里面的 MT7621 系列完全遭其无妄之...