partition.cc

来自「the FXT library: fast transforms and low」· CC 代码 · 共 62 行

CC
62
字号
#include "partition.h"partition::partition(int nn){    n = ( nn<1 ? 1 : nn );    x = new int[n+1];    init();}//---------------------partition::~partition(){    delete [] x;}//---------------------voidpartition::init(){    x[0] = n;    k = 0;    i = 0;    idx = 0;}//---------------------voidpartition::make_next()// based on code by Helmut Herold{    ++idx;    n1 = k-i;    k = i;    x[i]--;    while ( x[k]<=n1 )    {        n1 -= x[k];        k++;        x[k] = x[k-1];    }    k++;    x[k] = n1 + 1;    if ( x[i]!=1 )  i = k;   if ( x[i]==1 )  i--;//   if ( i<0 )  return 0;//   return 1;   // here: n1 == number of ones in partition}//---------------------

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?