forked from xk/nodeSnippets
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpoeta.js
executable file
·30 lines (24 loc) · 921 Bytes
/
poeta.js
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 [email protected]
//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.");