相关疑难解决方法(0)

在Python中装饰实例方法

这是我要做的事情的要点.我有一个对象列表,我知道他们有一个实例方法,如下所示:

def render(self, name, value, attrs)
   # Renders a widget...
Run Code Online (Sandbox Code Playgroud)

我想(essentialy)在运行时装饰这些函数,因为我正在迭代对象列表.这样他们的渲染函数就变成了:

def render(self, name, value, attrs)
   self.attrs=attrs
   # Renders a widget...
Run Code Online (Sandbox Code Playgroud)

两个警告:

  1. 渲染函数是django的一部分.我不能把装饰器放在他们的库中(我可以,但是我必须维护和迁移这个改变).
  2. 这是一个实例方法.

这里有一个例子:http: //wiki.python.org/moin/PythonDecoratorLibrary

演示如何向类添加新的实例方法.这里的区别是我想记住那个attrs参数后我想要落到原来的方法.

python django class decorator instance

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

生成数字组合而不重复的算法

我在这里检查了几乎每一个类似的帖子,但我无法弄清楚我怎么能做我想要的.我正在尝试的是在C程序中输入一个输入,比如说4号,程序在数组中返回以下数字:

1
2
3
4
12
13
14
23
24
34
123
134
124
1234
Run Code Online (Sandbox Code Playgroud)

更清楚:如果输入数字是4,那么我想使用数字1-4并生成所有可能的数字组合(从1位组合到4位组合)而不重复数字.

我尝试了以下代码:

#include <stdio.h>

/* Prints out a combination like {1, 2} */
void printc(int comb[], int k) {
    printf("{");
    int i;
    for (i = 0; i < k; ++i)
        printf("%d, ", comb[i] + 1);
    printf("\\b\\b}\\n");
}


    int next_comb(int comb[], int k, int n) {
    int i = k - 1;
    ++comb[i];
    while ((i >= 0) && (comb[i] >= n - k + 1 + …
Run Code Online (Sandbox Code Playgroud)

c algorithm combinations permutation

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

n个对象的排列(具有重复的排列)

我正在寻找"排列"算法的快速实现(具有重复的排列).给定N个对象(数量a中的A,数量b中的B,......),生成所有可能的组合.
例:

Arrangement("AAA", "B", "CC") would return :   
"AAABCC" "AABACC" "AABCAC" "AABCCA" "ABAACC" "ABACAC" "ABACCA" "ABCAAC"   
"ABCACA" "ABCCAA" "BAAACC" "BAACAC" "BAACCA" "BACAAC" "BACACA" "BACCAA"   
"BCAAAC" "BCAACA" "BCACAA" "BCCAAA" "AAACBC" "AACABC" "AACBAC" "AACBCA"   
"ACAABC" "ACABAC" "ACABCA" "ACBAAC" "ACBACA" "ACBCAA" "CAAABC" "CAABAC"   
"CAABCA" "CABAAC" "CABACA" "CABCAA" "CBAAAC" "CBAACA" "CBACAA" "CBCAAA"   
"AAACCB" "AACACB" "AACCAB" "AACCBA" "ACAACB" "ACACAB" "ACACBA" "ACCAAB"   
"ACCABA" "ACCBAA" "CAAACB" "CAACAB" "CAACBA" "CACAAB" "CACABA" "CACBAA"   
"CCAAAB" "CCAABA" "CCABAA" "CCBAAA"  
Run Code Online (Sandbox Code Playgroud)

(如果可能,用C,C#或Pascal编码)

在此先感谢
Philippe

algorithm math combinatorics

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