Peter Hickman > Data-RandomPerson-0.4 > Data::RandomPerson::Choice

Download:
Data-RandomPerson-0.4.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Source  

NAME ^

Data::RandomPerson::Choice - Select an element from a list in proportion

VERSION ^

This document refers to version 0.4 of Data::RandomPerson::Choice, released Sept 13th, 2005

SYNOPSIS ^

  use Data::RandomPerson::Choice;

  my $c = Data::RandomPerson::Choice->new();

  $c->add( 'this' );
  $c->add( 'that', 11 );

  # The list now contains 12 elements, 1 'this' and 11 'that'. A random
  # element will be selected with the following probablilty:
  #
  # this =  1/12 = 0.083
  # that = 11/12 = 0.917

  print $c->pick();

DESCRIPTION ^

Overview

A way of simply defining the probablity of a selection of values based on the ratio of the elements this add( 'this' ) adds one element to the list, the count argument of add defaults to 1. add( 'that', 11 ) adds another 11 elements to the list giving a total of 12. The chance of picking 'this' is 1 in 12 and the change for 'that' is 11 in 12.

You can add as many values as you like to the list.

Constructors and initialization

Data::RandomPerson::Choice->new( )

Returns a Data::RandomPerson::Choice object.

Class and object methods

add( VALUE [, COUNT] )

Adds VALUE to the list COUNT times, if COUNT is omitted it will default to 1.

add_list( LIST )

Adds a LIST of items to the data

size( )

Returns the size of the list so far

pick()

Returns an element from the list.

ENVIRONMENT ^

Perl 5

DIAGNOSTICS ^

No data has been added to the list ...

This error will occur if you have called pick() before add() has been called.

BUGS ^

None so far

FILES ^

None

SEE ALSO ^

None

AUTHOR ^

Peter Hickman (peterhi@ntlworld.com)

COPYRIGHT ^

Copyright (c) 2005, Peter Hickman. All rights reserved. This module is free software. It may be used, redistributed and/or modified under the same terms as Perl itself.

syntax highlighting: