Number of partitions of -k different kinds! (k>0)

Michele Dondi blazar at pcteor1.mi.infn.it
Wed Jun 16 16:52:50 CEST 2004


Although of course there can't be such a thing as a "partition of n of -1, 
-2, etc. different kinds", for all k>=1 each partition of n contributes to 
the number of partitions of k different kinds

  prod_i P_k(m(i)),

where the product is extended to all i in the partition, m(i) is the 
number of times i appears in the partition itself, and

  P_1(n)=1 for all n>=0,
  P_k(n)=sum_{j=0}^n P_{k-1}(j) for all k>=1, n>=0

is the number of different ways to assign k labels to n identical objects. 
(Consistently P_k(0)=1 for all k.)

But the functions P_k can be generalized to all k in Z, precisely

  p_{-k}(n)=(-1)^n C(k,n) for all k>=0,

where C(k,n) is the binomial coefficient. Thus we can use the same 
algorithm as above, summing over all partitions of n, with P_(-k), k>=1. 
(k=0 yields the "trivial" sequence 1,0,0,...). The resulting sequences are 
tabulated hereafter for k=1,2,3 and 0<=n<=50.


k=1

0:	1
1:	-1
2:	-1
3:	0
4:	0
5:	1
6:	0
7:	1
8:	0
9:	0
10:	0
11:	0
12:	-1
13:	0
14:	0
15:	-1
16:	0
17:	0
18:	0
19:	0
20:	0
21:	0
22:	1
23:	0
24:	0
25:	0
26:	1
27:	0
28:	0
29:	0
30:	0
31:	0
32:	0
33:	0
34:	0
35:	-1
36:	0
37:	0
38:	0
39:	0
40:	-1
41:	0
42:	0
43:	0
44:	0
45:	0
46:	0
47:	0
48:	0
49:	0
50:	0

k=2

0:	1
1:	-2
2:	-1
3:	2
4:	1
5:	2
6:	-2
7:	0
8:	-2
9:	-2
10:	1
11:	0
12:	0
13:	2
14:	3
15:	-2
16:	2
17:	0
18:	0
19:	-2
20:	-2
21:	0
22:	0
23:	-2
24:	-1
25:	0
26:	2
27:	2
28:	-2
29:	2
30:	1
31:	2
32:	0
33:	2
34:	-2
35:	-2
36:	2
37:	0
38:	-2
39:	0
40:	-4
41:	0
42:	0
43:	0
44:	1
45:	-2
46:	0
47:	0
48:	2
49:	0
50:	2

k=3

0:	1
1:	-3
2:	0
3:	5
4:	0
5:	0
6:	-7
7:	0
8:	0
9:	0
10:	9
11:	0
12:	0
13:	0
14:	0
15:	-11
16:	0
17:	0
18:	0
19:	0
20:	0
21:	13
22:	0
23:	0
24:	0
25:	0
26:	0
27:	0
28:	-15
29:	0
30:	0
31:	0
32:	0
33:	0
34:	0
35:	0
36:	17
37:	0
38:	0
39:	0
40:	0
41:	0
42:	0
43:	0
44:	0
45:	-19
46:	0
47:	0
48:	0
49:	0
50:	0


The sequences were generated by brute force with the following Perl 
program (not particularly smart, only slightly optimized):


#!/usr/bin/perl -l

use strict;
use warnings;

sub part;
sub adjoin;
sub wkpart;
sub wkind;
sub kfunc;

{
    my @mem = [[]];
    
    sub part {
	my $n=shift;
	my %seen;
	@{ $mem[$n] ||= [grep !$seen{"@$_"}++,
	   map { adjoin $_, part $n-$_ } 1..$n] };
    }
    
    sub wkind {
	my ($n,$t)=shift;
	my @ok=grep $_->[1],
	  map [$_, wkpart $_], part $n;
	$mem[$n]=[ map $_->[0], @ok ];
	$t+=$_->[1] for @ok;
	$t;
    }

}

sub adjoin {
    my $n=shift;
    map [ sort {$a <=> $b} @$_, $n], @_;
}

sub wkpart {
    my ($k,%b)=1;
    $b{$_}++ for @{shift()};
    $k*=kfunc $b{$_} ||
      return 0 for keys %b;
    $k;
}

sub kfunc {
    (1,-1)[shift] || 0;
}

print $_, ":\t", wkind $_ for 0..50;

__END__


This program generates the sequence for k=1; substituting the line

    (1,-1)[shift] || 0;

with

    (1,-2,1)[shift] || 0;

and

    (1,-3,3,-1)[shift] || 0;

will give the programs to generate the sequence for k=2 and 3 
respectively.

I wanted to contribute these sequences to OEIS, but I was uncertain about 
the exact phrasing of some fields. Any comment?!?


TIA,
Michele
-- 
MANIOS MED FHEFHAKED NUMASIOI
- "Fibula Praenestina"





More information about the SeqFan mailing list