#! /usr/bin/perl use strict; my @my_array; my $n=0; my $pin_num=10; my $io_num=5; sub array_check{ if ($my_array[0]<$my_array[1]) {return 0;}; my ($i,$i1,$j,$k); my @test_array; for ($i=0;$i<=$pin_num-2;$i++){ if ($my_array[$i]==$my_array[$i+1]){ return 0; } } for ($i=0;$i<=$pin_num-2;$i++){ for ($j=$i+1;$j<=$pin_num-1;$j++){ $k=$j+1; $k=0 if ($k==$pin_num); return 0 if ($my_array[$i]==$my_array[$j] && $my_array[$i+1]==$my_array[$k]); return 0 if ($my_array[$i+1]==$my_array[$j] && $my_array[$i]==$my_array[$k]); } } return 1; } sub array_gen{ my $i; my $array_element; if ($_[0]==0){ for ($i=1;$i<=$_[1];$i++){ $my_array[$_[0]]=$i<=5?$i:5-$i; if (&array_check==1){ for $array_element(@my_array){ print "$array_element,"; } print "\n"; $n++; } } }else{ if ($_[0]==$pin_num-1) { $my_array[$_[0]]=5; &array_gen($_[0]-1,$_[1]); }else{ for ($i=1;$i<=$_[1];$i++){ $my_array[$_[0]]=$i<=5?$i:5-$i; &array_gen($_[0]-1,$_[1]); } } } } &array_gen($pin_num-1,$io_num); print "$n\n";