导入什么时候成为正确的解决方案?

Zac*_*erg 3 python import

本周末我正在研究一个项目,我需要使用二项分布来测试事件的概率(y字符的x将是随机字节的字母数字的概率).我的第一个解决方案是自己编写测试,因为它很简单.

def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n-1)

def binomial_prob(n,k,p):
    bin_coeff = (factorial(n))/(factorial(k)*factorial(n-k))
    return = bin_coeff * pow(p,k) * pow((1 - p),(n-k))
Run Code Online (Sandbox Code Playgroud)

我用过它.但是,SciPy包含了一个binom_test方法.但是,对于分发,这可能会显着增加尺寸(需要SciPy和NumPy),这是一个相对简单的测试.我想一个辅助问题是py2exe的智能程度.它只是导入我使用的模块,从SciPy和NumPy,或整个库.我只期待我参考的模块,但我想下一个问题是SciPy.stats所依赖的模块数量.但是我离题了...所以我的问题是,我应该何时使用已经编写的代码,其代价远远超出我的需要,何时我应该编写自己的实现?

(我把它标记为python,但我想这可能是一个更普遍的问题)

S.L*_*ott 5

"我应该何时使用已经编写的代码,其代价远远超出我的需要 "

总是.

我什么时候应该编写自己的实现?

决不.

"包括远远超过我需要的"问题通常是非常愚蠢的.你关心"包括"多少钱?

唯一重要的是当你编写嵌入式软件并严重受内存限制时.

对于所有其他编程 - 所有其他编程 - 不要三思而后行.尽早并经常包含预先编写的代码.少写.更快地解决问题.操作系统将未使用的页面交换内存.你可以放心地忽略它们.

编程是关于解决问题,而不是生成代码.更少的代码更好.没有代码是最好的.