initial commit
[urisagit/Sort-Maker.git] / paper / make_data.pl
CommitLineData
7468c584 1#!/usr/local/bin/perl
2
3
4@data = rand_ints( 10, 4, 8 ) ;
5
6print "@data\n" ;
7
8
9@data = rand_padded_ints( 10, 4, 8 ) ;
10
11print "@data\n" ;
12
13@data = rand_deal( 10, 4 .. 8 ) ;
14
15print "@data\n" ;
16
17
18@data = rand_deal( 10, 'aa0' .. 'zz9' ) ;
19
20print "@data\n" ;
21
22@data = rand_picks( 10, 'aa0' ) ;
23
24print "@data\n" ;
25
26
27
28sub rand_picks {
29
30 my( $count, $pattern ) = @_ ;
31
32 my( @rand, @chars, $char, $pick, @digits, @alphas ) ;
33
34 @chars = split( '', $pattern ) ;
35
36 @digits = ( '0' .. '9' ) ;
37 @alphas = ( 'a' .. 'z', 'A' .. 'Z' ) ;
38
39 while( $count-- ) {
40
41 $pick = '' ;
42
43 foreach $char ( @chars ) {
44
45 if ( $char eq 'a' ) {
46
47 $pick .= $alphas[ rand 52 ] ;
48 next ;
49 }
50
51 if ( $char eq '0' ) {
52
53 $pick .= $digits[ rand 10 ] ;
54 next ;
55 }
56 }
57
58 push( @rand, $pick ) ;
59 }
60
61 @rand ;
62}
63
64sub rand_deal {
65
66 my( $count, @deck ) = @_ ;
67
68 my( @rand ) ;
69
70 push( @rand, $deck[ rand( @deck ) ] ) while $count-- ;
71
72 @rand ;
73}
74
75
76
77sub rand_ints {
78
79 my( $count, $base, $range ) = @_ ;
80
81 my( @rand ) ;
82
83 push( @rand, int( rand( $range ) + $base ) ) while $count-- ;
84
85 @rand ;
86}
87
88
89
90sub rand_padded_ints {
91
92 my( $count, $base, $range ) = @_ ;
93
94 my( @rand, $pad ) ;
95
96 $pad = length( $base + $range ) ;
97
98 push( @rand, sprintf( "%0${pad}d", int( rand( $range ) + $base ) ) )
99 while $count-- ;
100
101 @rand ;
102}
103
104
105
106
107
108#splice( @data, int( rand( @data + 1 ) ), 0, $base++ ) while $cnt-- ;
109
110#print "@data\n" ;