boules

Sujet: Un sac contient des bonbons de différentes couleurs.

Afficher toutes les combinaisons possibles.

Le sac contient des bonbons (V)erts , (R)ouges , (B)leus et (J)aunes.

Ma solution.

#!/usr/bin/env perl
use strict;
use warnings;

my $sac = 'VRRBBBJ'; // ici: 1 Vert , 2 Rouges , 3 Bleus , 1 Jaune

my @lsac = split( // , $sac );
my $solution="";

sub tirer {
  my ($dejatire , @listechoix) = @_;
  if ( !@listechoix ) {
    print "${dejatire}\n";
    return;
  }
  my %seen = ();
  my @uniqu = grep { ! $seen{$_} ++ } @listechoix;
  @uniqu = sort { $a cmp $b } @uniqu;


  foreach my $boule ( @uniqu ) {  
    my $lsolution = $dejatire . $boule;
    my @listerestant = @listechoix;
    my $index = 0;
    $index++ until $listerestant[$index] eq $boule;
    splice(@listerestant, $index, 1);
    tirer( $lsolution , @listerestant );
  }
}

&tirer( $solution , @lsac);

Related Posts


Published

Category

software

Tags

Contact