如果你查看如何将整个磁盘克隆到网络上的另一个磁盘,你会发现类似的东西:
dd if=/dev/sda of=/dev/sdb conv=notrunc,noerror
Run Code Online (Sandbox Code Playgroud)
虽然我理解了这一点noerror,但我很难理解为什么人们认为这notrunc是"数据完整性"所必需的(例如ArchLinux的Wiki声明).
实际上,如果您将分区复制到另一个磁盘上的另一个分区,并且您不想覆盖整个磁盘,我只是同意一个分区.在这种情况下notrunc,根据dd的手册页,是你想要的.
但是如果你要克隆整个磁盘,那notrunc对你有什么改变?只是时间优化?
看一下网上的一些算法练习,我发现了一个有趣的:
如何使用LIFO实现FIFO?
我试过自己,但我最终只得到了一个解决方案:每次我们想要FIFO 的前面元素,将lifo复制到另一个lifo(不包括最后一个元素,即前面),获取前面元素并将其删除,然后复制将第二个LIFO带回第一个LIFO.
但这当然非常慢,它就是这样一个简单的循环:
for(!myfifo.empty()) {
myfifo.pop();
}
Run Code Online (Sandbox Code Playgroud)
去O(N²) ,而不是为O(n)上的标准实现FIFO的.
当然,LIFO不会做FIFO,我们通过使用"原生"FIFO和基于LIFO的假FIFO不一定具有相同的复杂性,但我认为肯定有一种比O更好的方法. (N²).有没有人对此有所了解?
提前致谢.
我目前正在使用Box2d,更准确地说是Java端口jBox2d.
我有一个圆圈在掉落时与其他圆圈相撞(所有圆圈形成一种曲柄,见下图).

在性质上,圆圈在下降时开始旋转.但我想阻止它旋转,以便摩擦力更高.