sub my_gdc1 { use POSIX 'ceil'; my $n = shift; my $discrete = ceil($n ** (1/3)); my @colors = ([1,1,1]); for my $i (1..$n-1) { push @colors, [map {1-($_%$discrete)/$discrete} $i/($discrete**2), $i/$discrete, $i]; } \@colors; }