当您object.__repr__()在Python中调用该方法时,您会得到类似这样的内容:
Run Code Online (Sandbox Code Playgroud)<__main__.Test object at 0x2aba1c0cf890>
如果你超载__repr__(),有没有办法得到一个内存地址,除了调用super(Class, obj).__repr__()和重新出现之外?
简单的想法:我有两个想要合并的图像,一个是500x500,中间是透明的,另一个是150x150.
基本思路是:创建一个500x500的空白画布,将150x150图像放在空白画布的中间,然后将500x500图像复制到其上,使透明的中间部分允许150x150闪耀.
我知道如何在Java,PHP和Python中实现它......我只是不知道在C#中使用哪些对象/类,将图像复制到另一个中的快速示例就足够了.
我知道性能永远不会是黑白的,通常一个实现在X情况下更快,在Y情况下更慢等等,但一般来说 - B树比AVL或RedBlack-Trees快吗?它们比AVL树(甚至可能是RedBlack-trees?)要复杂得多,但它们更快(它们的复杂性是否得到回报)?
编辑:我还想补充一点,如果它们比等效的AVL/RedBlack树更快(就节点/内容而言) - 为什么它们更快?
我一直在搞乱ECMA-262标准(ECMAScript语言规范,第3版,如果它对此很重要 - 我没有发现第3版和第5版字符串类型/字符串对象之间有任何区别).
有一件事令我感到困惑:String Type和String Object之间的区别.是的,我知道String Type是一个16位UTF-16单元序列,而String对象是一个内置对象,其内部Class属性设置为"String",其内部Value属性设置为字符串类型的值.
但是阅读规范,字符串类型似乎没有暴露任何方法; 也就是说,它只是一个没有任何附加属性的值.拿这个代码,一切都完全符合预期:
document.writeln(typeof "foo"); // 'string'
document.writeln(typeof new String("foo")); // 'object'
Run Code Online (Sandbox Code Playgroud)
第一种类型是实际的String Type,第二种是Object Type(它是String类的对象,但它的数据类型是object).但是,看看这个:
"foo".charAt(0);
fooStrObj = new String("Foo");
fooStrObj.charAt(0);
Run Code Online (Sandbox Code Playgroud)
它们似乎都暴露了相同的功能,但ECMA-262标准中定义的字符串类型没有任何功能; 它公开的所有函数都来自String.prototype对象(我看不到对String Type的神奇地暴露了ECMA-262标准中String.prototype对象的所有属性和函数这一事实的引用).那么String Type类型的值是否会自动提升为String对象,并将原始String Type值作为其内部Value属性?
如果他们被完全相同(这似乎是他们所有的意图和目的),为什么有两种不同的方式来表示一个字符串?
我正在寻找计算AVL树中节点平衡的最佳方法.我以为我有它工作,但经过一些繁重的插入/更新,我可以看到它的工作正常(根本没有).
这是一个由两部分组成的问题,第一部分是如何计算子树的高度,我知道定义"节点的高度是从该节点到叶子的最长向下路径的长度".而我理解它,但我没有实现它.并且为了进一步混淆我这个引用可以在维基百科的树高上找到"传统上,值-1对应于没有节点的子树,而零对应于具有一个节点的子树."
而第二部分是得到一个子树的平衡因素,AVL树,我没有问题理解概念,"让你的高度L和R子树和减去R从L".这被定义为这样的事情:BALANCE = NODE[L][HEIGHT] - NODE[R][HEIGT]
在维基百科上阅读在描述插入到AVL树中的前几行中说:"如果平衡因子变为-1,0或1,那么树仍然是AVL形式,并且不需要旋转."
然后继续说,"如果平衡因子变为2或-2,那么植根于此节点的树是不平衡的,并且需要树旋转.最多需要单次或双次旋转来平衡树." - 我没有抓麻烦.
但是(是的,总有一个但是).
这是令人困惑的地方,文本说明"如果R的平衡因子为1,则意味着插入发生在该节点的(外部)右侧,需要左旋转".但是从理解的角度来看,正如我所引用的那样,如果平衡因素在[-1, 1]那之内,那么就没有必要进行平衡了吗?
我觉得我是如此接近抓概念,我已经得到了树旋转下来,实现正常的二叉搜索树,抓AVL树的边缘,但只是似乎缺少必要的顿悟.
编辑:代码示例比学术公式更受欢迎,因为我总是更容易在代码中掌握一些东西,但是非常感谢任何帮助.
编辑:我希望我能将所有答案都标记为"已接受",但对我而言,NIck的答案是第一个让我走"aha"的答案.
algorithm binary-tree avl-tree data-structures tree-balancing
除了java.nio之外,java中有哪些async io(基于套接字)的选项?java.nio也使用backround中的线程(因为我认为.NET的async-socket-library确实如此,可能它已经被更改了)或者使用正确的select调用它是"真正的"async io吗?
那么,寻找一个与py3k/py3.0/py3000兼容的mysql-db-lib,有什么想法吗?谷歌没有任何结果.
这是我将UUID()生成的MySQL GUID/UUID转换为二进制(16)的最佳方法:
UNHEX(REPLACE(UUID(),'-',''))
Run Code Online (Sandbox Code Playgroud)
然后将其存储在BINARY(16)
以我应该知道的方式做这件事是否有任何影响?
所以,我正在玩Stackless Python并且脑子里出现了一个问题,也许这是"假设的"或"常见的"知识,但我发现它实际上写在无堆栈网站上的任何地方.
Stackless Python是否利用多核CPU?在普通的Python中,你有GIL不断出现并且(使用多个核心)需要使用多个进程,这对Stackless来说也是如此吗?
python concurrency multithreading multicore python-stackless
python ×3
algorithm ×2
binary-tree ×2
mysql ×2
.net ×1
asynchronous ×1
avl-tree ×1
binary ×1
c# ×1
concurrency ×1
guid ×1
image ×1
java ×1
javascript ×1
licensing ×1
math ×1
multicore ×1
networking ×1
object ×1
python-3.x ×1
repr ×1
sockets ×1
uuid ×1