#!/usr/bin/perl use strict; use warnings; my $maximum = 100; # Die Summe, die am Ende herauskommen muss my $n = int(rand 9) + 2; # Gewuenschte Anzahl der Summanden, hier mal zufaellig zwischen 2 und 10 print "$n Summanden\n"; my @summanden; my $summe = 0; # Bisher erreichte Summe for my $summand (0 .. $n-1) { if ($summand < $n-1) { # Maximum fuer $summand'tes Glied ist $maximum-$summe, # minus Anzahl der noch uebrigen Summanden! push @summanden, int(rand ($maximum - $summe - ($n-$summand)) + 1); } else { # Letztes Glied ist der Rest push @summanden, ($maximum - $summe); } $summe += $summanden[-1]; } { $, = ' + '; print "@summanden = $summe\n"; }