Tag: 语言无关的

为什么编译器如此愚蠢?

我总是想知道为什么编译器无法弄清楚人眼所见的简单的事情。 他们做了很多简单的优化,但从来没有一点点复杂。 例如,这段代码在我的电脑上需要大约6秒的时间来打印零值(使用java 1.6): int x = 0; for (int i = 0; i < 100 * 1000 * 1000 * 1000; ++i) { x += x + x + x + x + x; } System.out.println(x); 这是完全明显的,x从来没有改变,所以不pipe你多久添加0自己它保持为零。 所以编译器理论上可以用System.out.println(0)来代替它。 甚至更好,这需要23秒: public int slow() { String s = "x"; for (int i = 0; i < […]

理解封装和抽象的简单方法

学习面向对象的概念特别有兴趣深入理解抽象和封装。 已经检查了下面 抽象VS信息隐藏VS封装 抽象和封装之间的区别? 我发现很难用真正简单的示例类/代码段来理解这些概念。 我的一位同事说,抽象只不过是创build抽象类和保护其成员variables的普通类,其范围称为封装(Encapsulation)。 有一个简单的方法,我可以理解,并帮助他人了解到底是什么,而不是重复下面? 抽象和封装是相辅相成的概念:抽象的重点在于一个对象的可观察的行为…封装着重于引起这种行为的实现…封装通常是通过信息隐藏实现的,这是隐藏所有对其本质特征没有贡献的对象的秘密。

哈希表vs平衡二叉树

当我需要在哈希表或平衡二叉树之间进行select以实现集合或关联数组时,应考虑哪些因素?

最难追踪的错误types?

什么是一些最难处理,最难处理的错误,为什么? 在我们发言的过程中,我都非常好奇和深深地陷入困境。 正如他们所说 – 痛苦喜欢公司。

是否有一种颜色混合algorithm,像混合真实颜色一样工作?

RGB颜色的常见混合与绘画的混合颜色是非常不同的,它是光的混合而不是颜料的混合。 例如: Blue (0,0,255) + Yellow (255,255,0) = Grey (128,128,128) (它应该是蓝色+黄色=绿色) 是否有任何已知的颜色混合algorithm,就像混合真实的颜色一样工作? 我的方法 我已经尝试过了 将两种颜色转换为HSV和混合色调(乘以饱和度计算的系数),以及饱和度和通道值的简单平均值。 然后我从两种颜色计算平均亮度,并调整结果颜色以匹配这个亮度。 这工作得很好,但色调混合有时是错误的,例如: Red (Hue 0°) + Blue (Hue 240°) = Green (Hue 120°) 我发现有时我需要将色调值改变360°(当色相之间的差值大于180°时)。 Red (Hue 360°) + Blue (Hue 240°) = Magenta/fuchsia (Hue 300°) 但是这种转变也不是很好,例如: Cyan (Hue 179°) + Red (Hue 0°) = Hue 89.5° Cyan (Hue 181°) + […]

用强化学习训练neural network

我知道前馈neural network的基础知识,以及如何使用反向传播algorithm来训练它们,但是我正在寻找一种algorithm,比我可以用来在线训练ANN强化学习。 例如, 推车杆摆动问题是我想用ANN解决的问题。 在这种情况下,我不知道应该怎样控制钟摆,我只知道我离理想位置有多近。 我需要根据奖励和惩罚来学习。 因此,监督式学习不是一种select。 另一种情况就像蛇游戏 ,反馈延迟,只限于目标和反目标,而不是奖励。 对于第一种情况,我可以考虑一些algorithm,比如爬山或者遗传algorithm,但是我猜测它们都会很慢。 他们也可能适用于第二种情况,但速度非常慢,不利于在线学习。 我的问题很简单: 是否有一个简单的algorithm来训练强化学习的人工neural network? 我主要对实时奖励情况感兴趣,但是如果有基于目标的情况的algorithm可用,甚至更好。

任何人推荐一个有条件的随机领域的好教程

我一直在试图find一个有条件的随机场的好教程,还没有find一个没有开始把我的大脑陷入崩溃。 我对HMM有很好的把握,并且我区分了区分性和生成性模型……但是到目前为止,我还没有find一个可以对HMM和CRF进行比较的资源,这对我来说是有意义的。 任何援助将不胜感激。

你如何重现零星发生的错误?

我们的应用程序中有一个错误,每次都不会发生,因此我们不知道它的“逻辑”。 我今天甚至没有得到它的转载。 免责声明:这个错误存在,我已经看到了。 这不是一个pebkac或类似的东西。 什么是常见的提示来重现这种错误?

查找表示行sortingmatrix中的最小整数的行

在最近的Java电话采访中,我被问到了这个问题: 给你一个NxN二进制(0-1)matrix,它具有以下属性: 每一行都被sorting(0的序列后跟1的序列) 每行代表一个无符号整数(通过读取位) 每一行都是唯一的 例: 0 1 1 1 1 1 0 0 1 每行中的位值被sorting,行代表整数3,7和1。 find表示最小整数的行。 在上面的例子中,答案是第3行,代表整数1。 我开始用二次复杂的蛮力。 面试官回答说,我不是在利用已分类的财产。 想了很多,我在每一行使用二进制search,它来到O(nlogn)。 他问我能不能进一步改进。 我想了很多,但未能改善。 如果有任何人可以给予任何指示,我将不胜感激。 另一个例子: 0 1 1 1 0 0 0 1 0 0 0 0 1 1 1 1 答案将是第3行,代表整数0。

为什么人们不使用base128?

为什么每个人都使用base 64在networking上传输二进制数据? 我问,因为ASCII字符集有128个字符,理论上可以代表基地128 …