# SPUG: Stick Riddle

Michael R. Wolf MichaelRunningWolf at att.net
Thu Jan 2 01:33:50 CST 2003

```Damian Conway <damian at conway.org> writes:

[code elided...]

Using Damain's code as a base, I changed two assumptions.

* I always break the left-most (not longest) piece on the second break.

* The second break point is independent of the first break point.

Here's the modified code, which yeilds legal triangles 49.592% of the
time.

================================================================

#! /usr/bin/perl -w

sub norm_rand {
my \$norm = 0;
for (1..8) { \$norm += rand() }
return \$norm / 8;
}

foreach (0 .. 100_000) {

# Break stick in two...
my \$first_break_at = norm_rand();
my @piece = (\$first_break_at, 1-\$first_break_at);

# Break next piece in two...
my \$second_break_at = norm_rand();
@piece[1,2] = (\$piece[1]*\$second_break_at, \$piece[1]*(1-\$second_break_at));

# Do they form a triangle?
@piece = sort { \$a <=> \$b } @piece;
\$total_tris++ if \$piece[2] < \$piece[1] + \$piece[0];
\$total_tries++;
}

print "Percent that made triangles: ", \$total_tris/\$total_tries * 100;

--
Michael R. Wolf
All mammals learn by playing!
MichaelRunningWolf at att.net

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
POST TO: spug-list at pm.org       PROBLEMS: owner-spug-list at pm.org
Subscriptions; Email to majordomo at pm.org:  ACTION  LIST  EMAIL