$ cat spw759180_NetWallah
#!/usr/bin/perl
#
use strict;
use warnings;
my @probs =(0,0.1,0.53,0.51,0.59,0.67,0.2,0.04,0.05,0.56,0.89,0.75,0.6);
my $t;
print $_ . (",","\n")[$t=1-$t]
for grep {($probs[$_] >=.5 .. $probs[$_]> .5) and $t=!$t }
0..$#probs
$ ./spw759180_NetWallah
2
4,9
11,$
####
use strict;
use warnings;
my @probs = (
0,
0.1,
0.53,
0.51,
0.59,
0.67,
0.2,
0.04,
0.05,
0.56,
0.89,
0.75,
0.1,
0.51,
0.6,
0.2,
0.7,
);
my @inRange =
grep { $probs[ $_ ] > 0.5 .. $probs[ $_ ] > 0.5 }
0 .. $#probs;
my @starts =
map { $inRange[ $_ ] }
grep {
$_ == 0
||
$inRange[ $_ ] - $inRange[ $_ - 1 ] != 1
}
0 .. $#inRange;
my @ends =
map { $inRange[ $_ ] }
grep {
$_ == $#inRange
||
$inRange[ $_ + 1 ] - $inRange[ $_ ] != 1
}
0 .. $#inRange;
printf qq{%3d%3d\n}, $starts[ $_ ], $ends[ $_ ] for 0 .. $#starts;
####
2 5
9 11
13 14
16 16