Predefinição:Rand/doc

Fonte: Enciclopédia de conhecimento da Igreja de Deus
Revisão em 05h58min de 14 de maio de 2024 por Jaewoo (discussão | contribs) (Criou a página com "{{Subpágina de documentação}} <!-- Categorias no final desta página e links para outros idiomas no Wikidata --> Esta predefinição gera um pseudo-aleatório inteiro entre 0 e ''count'' -1. Este número é baseado no número de segundos desde 1 de janeiro de 1970 (função do mediawiki <nowiki>{{#time:U}}</nowiki>, do qual se tira o módulo em relação à variável ''count'' (default = 100). == Uso == * <code><nowiki>...")
(dif) ← Revisão anterior | Revisão atual (dif) | Revisão seguinte → (dif)
Saltar para a navegação Saltar para a pesquisa


Esta predefinição gera um pseudo-aleatório inteiro entre 0 e count -1. Este número é baseado no número de segundos desde 1 de janeiro de 1970 (função do mediawiki {{#time:U}}, do qual se tira o módulo em relação à variável count (default = 100).

Uso

  • {{Rand|count|seed|prime}}
  • Todos parâmetros são opcionais e tem um valor default. Eles devem ser inteiros. Eles não devem ser passados através de count = n (ou seja, {{Rand|count=10}}, mas diretamente, na forma {{Rand|10}}
  • O primeiro parâmetro, count, dá o intervalo do resultado final, que vai de 0 a count-1. O seu valor default é 100, e este parâmetro não pode ser zero.
  • Os parâmetros seed e prime tem por finalidade fazer uma transformação afim do número de segundos desde 1 de janeiro de 1970, e devem ser usados para que, em uma página com vários argumentos aleatórios, estes assumam valores diferentes. É conveniente que o parâmetro multiplicativo prime seja relativamente primo com o parâmetro count, caso contrário o resultado final excluirá alguns números no intervalo 0 - count-1.
  • Os defaults de prime e seed são, respectivamente, 67 e 7. Muito cuidado ao gerar números aleatórios em que count seja um múltiplo de 67. Nestes casos, deve-se alterar o valor de prime.

Exemplos de números gerados entre 0 e 999

  • {{Rand|1000}} = 473
  • {{Rand|1000|6}} = 472
  • {{Rand|1000|5}} = 471
  • {{Rand|1000|4}} = 470
  • {{Rand|1000|3}} = 469
  • {{Rand|1000|2}} = 468
  • {{Rand|1000|1}} = 467
  • {{Rand|1000|0}} = 466

variando o valor de prime

  • {{Rand|1000|1|17}} = 567
  • {{Rand|1000|1|19}} = 163
  • {{Rand|1000|1|23}} = 355
  • {{Rand|1000|1|29}} = 143
  • {{Rand|1000|1|31}} = 739
  • {{Rand|1000|1|37}} = 527
  • {{Rand|1000|1|41}} = 719
  • {{Rand|1000|1|43}} = 315
  • {{Rand|1000|1|47}} = 507
  • {{Rand|1000|1|51}} = 699
  • {{Rand|1000|1|53}} = 295
  • {{Rand|1000|1|59}} = 83
  • {{Rand|1000|1|61}} = 679
  • {{Rand|1000|1|67}} = 467
  • {{Rand|1000|1|71}} = 659
  • {{Rand|1000|1|73}} = 255
  • {{Rand|1000|1|79}} = 43

Nota:

  • Variar seed de forma linear mantendo o mesmo count gera números em sequência cíclica (por exemplo, se count for 5, geraria 3,4,0,1,2,3,4,0, ...);
  • Variar prime (mas mantendo prime sempre relativamente primo a count) gera números diferentes, mas a sequência costuma ter pouca variabilidade, sendo quase determinística;
  • Por construção, se count for par, então, mesmo variando prime, a sequência terá a mesma paridade. Em alguns casos, será constante.
  • Duas invocações de {{Rand}} na mesma página, mas com mesmos parâmetros, gerarão o mesmo valor.

Exemplos das Notas

sequências cíclicas, variando seed:

  • {{Rand|100|1|67}} = 67
  • {{Rand|100|2|67}} = 68
  • {{Rand|100|3|67}} = 69
  • {{Rand|100|4|67}} = 70
  • {{Rand|100|5|67}} = 71

sequências com mesma paridade:

  • {{Rand|10|1|1}} = 9
  • {{Rand|10|1|3}} = 5
  • {{Rand|10|1|5}} = 1
  • {{Rand|10|1|7}} = 7
  • {{Rand|10|1|9}} = 3
  • {{Rand|10|1|11}} = 9
  • {{Rand|10|1|13}} = 5

a partir do segundo ou terceiro, os valores se repetem:

  • {{Rand|9|1|67}} = 6
  • {{Rand|9|1|70}} = 3
  • {{Rand|9|1|73}} = 0
  • {{Rand|9|1|76}} = 6
  • {{Rand|9|1|79}} = 3
  • {{Rand|9|1|82}} = 0
  • {{Rand|9|1|85}} = 6

problema não é resolvido variando-se seed:

  • {{Rand|9|1|67}} = 6
  • {{Rand|9|2|70}} = 4
  • {{Rand|9|3|73}} = 2
  • {{Rand|9|4|76}} = 0
  • {{Rand|9|5|79}} = 7
  • {{Rand|9|6|82}} = 5
  • {{Rand|9|7|85}} = 3