示例#1
0
文件: fff_gen_stats.c 项目: Lx37/nipy
extern void fff_combination(unsigned int* x, unsigned int k, unsigned int n, unsigned long magic)
{ 
  unsigned long int kk, nn, i; 
  unsigned long int m = magic; 
  unsigned int *bx = x; 
  unsigned long int c; 

  /* Ensure 0 <= magic < Cn,k */ 
  c = _combinations(k, n); 
  m = magic % c; 

  /* Loop. At the beginning of each iteration, c == Cn-(i+1),k-(i+1). */
  i = 0; 
  kk = k; 
  nn = n; 
  kk = k; 
  while( kk > 0 ) {

    nn --;
    c = _combinations(kk-1, nn); 
 
    /* If i is accepted, then store it and do: kk-- */
    if ( m < c ) {
      *bx = i; 
      bx ++; 
      kk --; 
    }
    else
      m = m - c; 

     /* Next candidate */ 
    i ++; 
    
  }

  return; 
}
示例#2
0
double Pascal::_combinations(double row, double index)
{
	if (index < 1) return 1;
	return (row / index) * _combinations(row - 1, index - 1);
}
示例#3
0
int Pascal::Combinations(int row, int index)
{
	return _combinations(row, index);
}