Forwarded from dnaugsuz
我想到一个有趣的问题:
传说有一个神奇的小镇里有 10 位哲学家,有一天他们在一起聚餐,讨论抽象的哲学问题(比如现在这个)
现在,他们都坐在一个圆形的餐桌旁。
他们每个人都会等待一段时间,饿了就拿起(左手的叉子和右手的叉子)开始吃意面。
这些哲学家都比较死脑筋,如果叉子已经被占用则会死等到占用者吃完。
请描述一下他们最后大概有几种不同的结局。
如果你想清楚了,再想想有 11 个、9 个哲学家就餐时会怎么样。
传说有一个神奇的小镇里有 10 位哲学家,有一天他们在一起聚餐,讨论抽象的哲学问题
现在,他们都坐在一个圆形的餐桌旁。
他们每个人都会等待一段时间,饿了就拿起(左手的叉子和右手的叉子)开始吃意面。
这些哲学家都比较死脑筋,如果叉子已经被占用则会死等到占用者吃完。
请描述一下他们最后大概有几种不同的结局。
如果你想清楚了,再想想有 11 个、9 个哲学家就餐时会怎么样。
Forwarded from dnaugsuz
比较困难,想不出也别自闭
呃…… 还有个条件:10 个人,可只有座位中间有叉子,换句话说 10 人只有 (10-1) 个叉子,不是一人一副。
呃…… 还有个条件:10 个人,可只有座位中间有叉子,换句话说 10 人只有 (10-1) 个叉子,不是一人一副。
Forwarded from dnaugsuz
ES6 的 Promise 很优雅,有 Promise.all 和 Promise.race,Vertx 也一样有 CompositeFuture
dnaugsuz
a=1; c=1; { a=b; b=c; c=a+b; } ?
稍微有点常识的人会想想为什么开始 b=1; a=1 而不是 a=1; b=1
不怕死的人会试着推理一下 loop count=n 时 c 是由何种表达式构成的
假设 (+) 是 "call-by-name" (传 sub expression)的话
不怕死的人会试着推理一下 loop count=n 时 c 是由何种表达式构成的
假设 (+) 是 "call-by-name" (传 sub expression)的话
https://play.kotlinlang.org/hands-on/The%20State%20of%20Kotlin%20JS/04_Using_APIs
我们可以那么画许多方块,这个其实也可以提出绘制逻辑的。
只是 Kotlin 的例子,所以没抽提。
with (canvasCtx) {
beginPath();
fillStyle(randomColor.sample())
rect(randAxis(), randAxis(), 20.0, 20.0); fill();
closePath();
}
fun randAxis() = Random.nextDouble(0, 20.0) 我们可以那么画许多方块,这个其实也可以提出绘制逻辑的。
只是 Kotlin 的例子,所以没抽提。
duangsuse::Echo
在更新自家 Fedora OS installation 的时候顺便说一下。 之前的模型是一个 Literate 对 N 个 language-kotlin 的代码块,然后显示代码的时候拼起来创建 <code> tag 交给 KotlinPlayground 做后续工作。 现在可以一个 Literate 对 N 个靠“可配置”的 Map<LanguageId, [ElementConfig, Consumer<Element>]> 来(之前那个 ElementConfg 是 DOM ElementAttribute…
我最后没有用
function hist<K, V>(iter: Iterable<V>, key: (V) => K): Map<K, V> {
let histogram = new Map();
for (let item of iter) {
let k = key(item);
if (!histogram.has(k)) histogram.set(k, []);
histogram.get(k).add(item);
}
return histogram;
} fun <K, V> histogram(iter: Iterable<V>, key: (V) -> K): Make<K, List<V>> {
val histogram: MutableMap<K, MutableList<V>> = mutableMapOf()
for (item in iter) { histogram.getOrPut(key(item), ::mutableListOf).add(item) }
return histogram
}
fun <K, V> histogram(iter: Iterable<V>, key: (V) -> K): Make<K, List<V>> {
val histogram: MutableMap<K, MutableList<V>> = mutableMapOf()
for (item in iter) {
val k = key(item)
val self = if (k in histogram) histogram[k] else { histogram[k] = mutableListOf(); histogram[k] }
self.add(item)
}
return histogram
}