小编use*_*887的帖子

为什么有些漂浮物是**2!= a*a?

$ python --version
Python 2.7.15

$ type test.py
import random

while True:
    a = random.uniform(0, 1)
    b = a ** 2
    c = a * a
    if b != c:
        print "a = {}".format(a)
        print "a ** 2 = {}".format(b)
        print "a * a = {}".format(c)
        break

$ python test.py
a = 0.145376687586
a ** 2 = 0.0211343812936
a * a = 0.0211343812936
Run Code Online (Sandbox Code Playgroud)

我只能在Windows的Python版本上重现这一点 - 确切地说:Python 2.7.15 (v2.7.15:ca079a3ea3, Apr 30 2018, 16:30:26) [MSC v.1500 64 bit (AMD64)] on win32 …

python floating-point ieee

13
推荐指数
2
解决办法
924
查看次数

设计模式以减少冗余

我目前正在设计一个通过操纵声明的字段来大量利用反射的类.因此,很多方法在它们的身体方面都有一些共同点,这有希望用这个java代码来说明:

import java.lang.reflect.Field;

public class foo {
    public void foo1(/* arguments1 */) {
        for (Field f : getClass().getDeclaredFields()) {
            // do some stuff using arguments1
        }
    }

    public void foo2(/* arguments2 */) {
        for (Field f : getClass().getDeclaredFields()) {
            // do some stuff using arguments2
        }
    }

    public void foo3(/* arguments3 */) {
        for (Field f : getClass().getDeclaredFields()) {
            // do some stuff using arguments3
        }
    }

    //and so on...
}
Run Code Online (Sandbox Code Playgroud)

根据这个类最终包含的方法数量,这可能被视为设计缺陷吗?如果我想使用getFields()而不是getDeclaredFields()例如,我将需要替换每一次出现getDeclaredFields().这对我来说听起来不是一个好的编程习惯.在我的情况下,这可能不是一个非常现实的情况,但为了感兴趣,我想知道是否存在解决此问题的设计模式或概念.

[编辑]

为了避免额外的误解:循环中的操作取决于foo1,foo2等给出的参数.并且这些参数对于每个方法并不总是相同.我很难说明这个事实,sry.我改进了给定的代码以更好地演示它.

java

4
推荐指数
1
解决办法
1110
查看次数

PE 文件格式 - 节表和第一节之间是什么?

在十六进制编辑器中查看 PE 文件时,我经常遇到节表和第一节之间的一些字节,这对我来说没有意义。就我而言,应该有一个 00 字节的填充以适应对齐。但是,这是一个屏幕截图,它演示了相反的情况:

事实证明,突出显示的块几乎是绑定导入表。但我仍然很困惑。为什么这个表不在一个节中?这是总是如此还是只是某个编译器/链接器的规范?我没有找到有关此特定问题的任何文档。关于这个主题的所有内容基本上都说:

  1. DOS MZ 标头
  2. DOS存根
  3. PE头
  4. 节表
  5. 第 1 节
  6. 第 2 节
  7. 第 3 节

... 等等

在我遇到这个问题之前,我什至不知道这些部分之外可能还有其他东西(当然,除了我上面列出的那些)。

[编辑]

概念证明(因为 Mox 不相信我):

洛德PE

windows executable coff portable-executable

3
推荐指数
1
解决办法
2616
查看次数