小编Nik*_* B.的帖子

更优雅地处理未定义的参数

处理可变默认参数的公认范式是:

def func(self, a = None):
    if a is None:
        a = <some_initialisation>
    self.a = a
Run Code Online (Sandbox Code Playgroud)

由于我可能不得不为几个参数做这个,我需要一遍又一遍地编写非常相似的3行.在初始化类对象或函数时,我发现很多文本都是非常标准的事情.

是不是有一个优雅的单行代替那些处理可能未定义的参数和标准需要复制到类实例变量的3行?

python

6
推荐指数
1
解决办法
5029
查看次数

Ruby全球范围

在回答另一个问题时,我意识到以下程序并没有完全符合我的想法.

puts "test"
self.puts "test"  # => private method `puts' called for main:Object (NoMethodError)
Run Code Online (Sandbox Code Playgroud)

这个例外让我感到惊讶,因为我一直认为顶级方法调用会被main对象实例解析,但事实并非如此.

谁是第一个电话的实际接收者,它是如何解决的?这是一个特殊规则,仅适用于顶级范围的方法调用吗?

ruby scope

6
推荐指数
1
解决办法
1330
查看次数

如何解码quotedprintable编码的字符串?

我正在编写一个webmail应用程序,需要在电子邮件标题字段中解码Quotedprintable值.

我已经在haskell的各种软件包中尝试了几种解码功能,到目前为止还没有运气.

我怎样才能解码这个字符串:

"freelancermap Newsletter:  Erfolgreich =?ISO-8859-1?Q?selbstst=E4ndig?= mit Sicherheit"
Run Code Online (Sandbox Code Playgroud)

haskell decode

6
推荐指数
0
解决办法
225
查看次数

最大流算法的修改

我试图解决有关最大流量问题的问题.我有一个源和两个接收器.我需要在这个网络中找到最大流量.这部分是一般的最大流量.但是,这两个目标必须在此特殊版本的最大流量问题中获得相同的流量.

是否有人可以帮助我,我该怎么做呢?

algorithm network-flow max-flow

6
推荐指数
1
解决办法
793
查看次数

给出一个数字,检查数字是否形成一个带加法的方程?

如果给定字符串小号,我想找出是否有非重叠子,Ç小号,使得方程A + B = C时的子串被解释为十进制数成立.

示例:对于S = 17512,答案是肯定的,因为12 + 5 = 17成立.

这不是一个功课问题,我试图建立一个后缀数组来解决这个问题

17512

7512

512

12

2

但后来我意识到,给定132,1 + 2 = 3在选择时需要其他形式的排列吗?

你如何以有效的方式解决这个问题?

c++ java algorithm math

6
推荐指数
1
解决办法
364
查看次数

Ruby方法调用层次结构

本文的启发下,我正在使用Ruby方法调用层次结构并注意到一些奇怪的东西.

鉴于:

class B
  def foo  
    "- Instance method defined by B"
  end  

  def method_missing(method)
    puts "- method_missing (#{method}) on b. Redirecting to b.foo\n"
    foo
  end
end

b = B.new

def b.foo  
  "- Method defined directly on an instance of B\n" + super  
end

def b.method_missing(method)
  "- method_missing (#{method}) on b. Calling super\n" + super
end

puts "Calling 'bar' on b of type #{b.class}:"
puts b.bar
Run Code Online (Sandbox Code Playgroud)

运行它给出:

Calling 'bar' on b of type B:
- method_missing (bar) on …
Run Code Online (Sandbox Code Playgroud)

ruby

5
推荐指数
1
解决办法
713
查看次数

使用函数a→b作为"monadic"函数a→mb

我目前正在玩Haskell基础知识并偶然发现以下"用例":

ghci> let divideTenBy x | x == 0 = Nothing | otherwise = Just (10 / x)
ghci> let composed = divideTenBy <=< return . (*10) <=< divideTenBy <=< return . (-)5
ghci> Just 5 >>= composed
Nothing
ghci> Just 10 >>= composed
Just (-0.5)
Run Code Online (Sandbox Code Playgroud)

所以我基本上将monadic和pure函数混合在一起,并将它们组合成一个monadic函数.这很有效,但在return . (*10)我看来,这似乎是一个常用的东西,所以我很想为它定义一个速记,比如说monadify = (return.).

不过,在我这样做之前,我想问一下是否有帮助者来处理这种情况.当然,我也可能对整个事情感到困惑,并且有理由不应该这样做.如果是的话,请告诉我.

monads haskell pointfree function-composition

5
推荐指数
1
解决办法
219
查看次数

减慢for循环的速度

for(;;) {
    int rand_number = rand() % 2;
    cout << rand_number;
}
Run Code Online (Sandbox Code Playgroud)

这些循环在屏幕上生成1和0,就像矩阵电影(LOL)一样,但代码执行得非常快,有没有什么方法可以使数字显得缓慢?

c++ for-loop

5
推荐指数
1
解决办法
185
查看次数

如何评估以模数为模的指数塔

我想找到一个快速算法来评估如下的表达式,其中P是素数.

A ^ B ^ C ^ D ^ E mod P
Run Code Online (Sandbox Code Playgroud)

例:

(9 ^ (3 ^ (15 ^ (3 ^ 15)))) mod 65537 = 16134
Run Code Online (Sandbox Code Playgroud)

问题是中间结果可能会变得太大而无法处理.

language-agnostic algorithm math

5
推荐指数
1
解决办法
2345
查看次数

非恒定大小的数组:为什么这甚至可以工作?

#include <iostream>
using namespace std;

int main(){
    int n;
    cout<<"Enter the size :";
    cin>>n;
    int array[n];  // I've worked some outputs and it works 
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这是某种动态分配吗?
为什么它甚至没有给'n'作为"const"的错误?

此外,写入cout << array[n+5];不会导致编译时或运行时错误.

我正在使用Dev-C++.

c++ memory arrays compiler-errors dynamic

5
推荐指数
1
解决办法
194
查看次数