Essa função é fundamental pra gerar números aleatórios porque ela pega o tempo em milissegundos.
quando eu uso no ubuntu ela retorna o tempo em milissegundos, mas no CentOS retorna sempre 0
http://ap.imagensbrasil.org/image/d93qUP
Vou ter que instalar o CentOS em uma máquina virtual para testar. Qual é a versão que vc usa? 32 ou 64?
Pelo que andei vendo esta função vem do C clock() e seu resultado e significado é dependente de plataforma.
No momento sugiro a você usar a função sis.tempo(), ela retorna em segundos o tempo atual.
Ex.:
mat.xrandonico( sis.tempo() );
local a1 = mat.randonico();
local a2 = mat.randonico();
imprima(a1,a2);
Criei uma função aleatorio(), ela é bem simples mas garante que não haja repetições em ocorrências em menos de um segundo, veja:
local mat = mat;
local x = 0;
local funcao aleatorio()
x = x + 1;
local z = sis.tempo()+x;
mat.xrandonico(z);
fim
//teste:
para i = 1, 10 inicio
aleatorio(); //cria uma chave randômica.
imprima(mat.randonico()); //retorna o número aleatório baseado na chave randômica.
fim
Obs.: só agora vi que cometi um erro ortográfico, o certo é randômico e não randônico, vou modificar esta função na próxima versão, possivelmente vou mudar de mat.randonico e mat.xrandonico para mat.aleatorio e mat.xaleatorio;
Vou manter a nomenclatura errada para garantir compatibilidade com quem já usou estas funções.