-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathpoeta.js
More file actions
executable file
·30 lines (24 loc) · 921 Bytes
/
Copy pathpoeta.js
File metadata and controls
executable file
·30 lines (24 loc) · 921 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
//20100412 jorge@jorgechamorro.com
//5000 poemas de 8192 caracteres.
//1.4 segundos.
//3597.1 poemas / segundo.
var puts= require("sys").puts;
var kCuantos= 5e3;
var kLength= 8192;
var ctr= 0;
var now= +new Date();
function rnd (n) { return (n* Math.random()) >>> 0; }
var words= "Con diez cañones por banda viento en popa a toda vela no corta el mar si no vuela un velero bergantín bajel pirata llamado por su bravura el temido en todo el mar conocido del uno al otro confín".toLowerCase().split(" ");
function poeta (length, r, curr, prev) {
r= "";
while (r.length < length) {
do curr= words[rnd(words.length)]; while (curr === prev);
r+= (prev= curr)+ " ";
}
ctr++;
return r;
}
while (ctr < kCuantos) poeta(kLength);
puts(kCuantos+ " poemas de "+ kLength+ " caracteres.");
puts((now= (+new Date()- now)/1e3).toFixed(1)+ " segundos.");
puts((kCuantos/ now).toFixed(1)+ " poemas / segundo.");