跳转到内容

英文维基 | 中文维基 | 日文维基 | 草榴社区

模组:Random/doc

维基百科,自由的百科全书

这是Module:Random的文档页面

这个模块包含了可以使用随机数的函数。它能输出随机数,从列表中随机选择一个项目,对列表随机重新排序。随机重新排序列表可以有序输出,也可以用来输出各种有徐和无序列表。可用函数参见下文。

Number

[编辑]

number函数能够产生随机数.

{{#invoke:random|number|m|n|same=yes}}

The arguments m and n may be omitted, but if specified must be convertible to integers.

  • With no arguments, returns a real number in the range .
  • With one argument, returns an integer in the range . m must be positive.
  • With two arguments, returns an integer in the range . m and n can be either positive or negative. If m is greater than n, returns an integer in the range instead.
  • If the |same= parameter is set to "yes", "y", "true", or "1", the same random number is returned for each module call on a given page.

本模组所采用的机率分布均匀分布(有给参数的则是离散型均匀分布,未给参数的则是连续型均匀分布)。

注意:使用Module:Random的函数所产生的随机数不够随机,使用Module:Random的函数时可能会发生随机数生成器攻击

Examples (refresh)

  • {{#invoke:random|number}} → 0.09230752060763
  • {{#invoke:random|number|100}} → 88
  • {{#invoke:random|number|-100|-50}} → -87
  • {{#invoke:random|number|100|same=yes}} → 57
  • {{#invoke:random|number|100|same=yes}} → 57

The documentation for this function is partly taken from the Scribunto Lua reference manual, which is in turn based on the Lua 5.1 Reference Manual, available under the MIT License.

Date

[编辑]

date函数可以输出随机文档。

{{#invoke:random|date|timestamp1|timestamp2|format=date format|same=yes}}
  • If no timestamp arguments are specified, the module outputs a random date in the current year.
  • If timestamp1 and timestamp2 are specified, the module outputs a random date between the two timestamps. timestamp1 must be earlier than timestamp2.
  • If only timestamp1is specified, the module outputs a random date between the Unix epoch (1 Jan 1970) and the timestamp. timestamp1 must not be earlier than 1 Jan 1970.
  • Formatting can be specified with the |format= parameter. The default formatting is "hh:mm, DD Month YYYY (UTC)" (the same as the default Wikipedia timestamp).
  • The timestamps and the |format= parameter accept values compatible with the #time parser function. Please see the #time documentation for the full range of possible input values and formatting options.
  • If the |same= parameter is set to "yes", "y", "true", or "1", the same date is returned for each module call on a given page.

Examples (refresh)

  • {{#invoke:random|date}} → 11:04, 22 1月 2024 (UTC)
  • {{#invoke:random|date|format=F j}} → 6月 29
  • {{#invoke:random|date|1 Jan 1980|31 Dec 1999}} → 23:51, 11 11月 1998 (UTC)
  • {{#invoke:random|date|1st January 1500|1st January 3000|format=g:i a, l d M Y}} → 3:30 pm, 星期一 09 7月 2970
  • {{#invoke:random|date|1970/06/01}} → 17:20, 14 1月 1970 (UTC)
  • {{#invoke:random|date|same=yes}} → 04:53, 26 7月 2024 (UTC)
  • {{#invoke:random|date|same=yes}} → 04:53, 26 7月 2024 (UTC)

Item

[编辑]

item可以输出随机的物品列表

{{#invoke:random|item|list item 1|list item 2|list item 3|...|same=yes}}

If the |same= parameter is set to "yes", "y", "true", or "1", the same item is returned for each module call on a given page.

Example (refresh)

  • {{#invoke:random|item|egg|beans|sausage|bacon|spam}} → spam
  • {{#invoke:random|item|egg|beans|sausage|bacon|spam|same=yes}} → egg
  • {{#invoke:random|item|egg|beans|sausage|bacon|spam|same=yes}} → egg

List

[编辑]

list可以随机输出一个物品列表。

{{#invoke:random|list|list item 1|list item 2|list item 3|...|sep=separator|limit=number of items to display|same=yes}}

Named parameters

  • |sep= or |separator= - an optional separator for the list items. Some values are special; see the table below.
  • |limit= - the maximum number of list items to display. The lowest possible is 0 and the highest possible is the length of the list.
  • |same= - if this is set to "yes", "y", "true", or "1", the list order is the same for each module call on a given page.
Possible separator values
Code Output
dot  ·
pipe |
comma 、​
tpt-languages ⧼tpt-languages-separator⧽
space a space
any other value other values are used without modification

You cannot input spaces directly to the |sep= parameter due to limitations in MediaWiki's template syntax. However, it is possible to work around this by using HTML entities. You can use   to represent a normal space, and   to represent a non-breaking space.

Examples (refresh)

  • {{#invoke:random|list|egg|beans|sausage|bacon|spam}} → baconeggsausagebeansspam
  • {{#invoke:random|list|egg|beans|sausage|bacon|spam|sep=dot}} → beans · bacon · spam · egg · sausage
  • {{#invoke:random|list|egg|beans|sausage|bacon|spam|sep=space}} → sausage egg bacon beans spam
  • {{#invoke:random|list|egg|beans|sausage|bacon|spam|sep=; }} → bacon; sausage; egg; spam; beans
  • {{#invoke:random|list|egg|beans|sausage|bacon|spam|sep=foo}} → beansfoosausagefoobaconfooeggfoospam
  • {{#invoke:random|list|egg|beans|sausage|bacon|spam|limit=3}} → beanseggbacon
  • {{#invoke:random|list|egg|beans|sausage|bacon|spam|same=yes}} → baconspambeanssausageegg
  • {{#invoke:random|list|egg|beans|sausage|bacon|spam|same=yes}} → baconspambeanssausageegg

Text list

[编辑]

The text_list function outputs a list in a random order, text-style. In other words, it is like the list function, but with a different separator before the last item.

{{#invoke:random|text_list|list item 1|list item 2|list item 3|...|sep=separator|conj=conjunction|limit=number of items to display|same=yes}}

The separator can be specified with either the |sep= or |separator= parameters; its default value is "、​". The conjunction can be specified with either the |conj= or |conjunction= parameters; its default value is " and ". The separator and the conjunction can be specified with the same values as the separator in the list function.

The maximum number of list items to display can be set with the |limit= parameter. The lowest possible is 0 and the highest possible is the length of the list.

If the |same= parameter is set to "yes", "y", "true", or "1", the list order is the same for each module call on a given page.

Examples (refresh)

  • {{#invoke:random|text_list|egg|beans|sausage|bacon|spam}} → egg、​spam、​beans、​sausage和bacon
  • {{#invoke:random|text_list|egg|beans|sausage|bacon|spam|sep=; }} → sausage; beans; spam; bacon和egg
  • {{#invoke:random|text_list|egg|beans|sausage|bacon|spam|sep=; |conj= or }} → sausage; beans; bacon; spam or egg
  • {{#invoke:random|text_list|egg|beans|sausage|bacon|spam|limit=3}} → beans、​spam和sausage
  • {{#invoke:random|text_list|egg|beans|sausage|bacon|spam|same=yes}} → bacon、​spam、​beans、​sausage和egg
  • {{#invoke:random|text_list|egg|beans|sausage|bacon|spam|same=yes}} → bacon、​spam、​beans、​sausage和egg

HTML lists

[编辑]

If you wish to output an HTML list in a random order, you can choose between five different functions: bulleted_list, unbulleted_list, horizontal_list, ordered_list, and horizontal_ordered_list. These functions all use Module:List.

Function name Produces Example code Example output (refresh)
bulleted_list Bulleted lists {{#invoke:random|bulleted_list|egg|sausage|spam}}
  • sausage
  • egg
  • spam
unbulleted_list Unbulleted lists {{#invoke:random|unbulleted_list|egg|sausage|spam}}
  • spam
  • sausage
  • egg
horizontal_list Horizontal bulleted lists {{#invoke:random|horizontal_list|egg|sausage|spam}}
  • egg
  • sausage
  • spam
ordered_list Ordered lists (numbered lists and alphabetical lists) {{#invoke:random|ordered_list|egg|sausage|spam}}
  1. sausage
  2. egg
  3. spam
horizontal_ordered_list Horizontal ordered lists {{#invoke:random|horizontal_ordered_list|egg|sausage|spam}}
  1. sausage
  2. egg
  3. spam
Basic usage
{{#invoke:random|function|list item 1|list item 2|list item 3|...|limit=number of items to display|same=yes}}
All parameters
{{#invoke:random|function
|first item|second item|third item|...
|start           = start number for ordered lists
|type            = type of marker for ordered lists
|list_style_type = type of marker for ordered lists (uses CSS)
|class           = class
|style           = style
|list_style      = style for the list
|item_style      = style for all list items
|item_style1     = style for the first list item |item_style2 = style for the second list item |...
|indent          = indent for horizontal lists
}}

The maximum number of list items to display can be set with the |limit= parameter. The lowest possible is 0 and the highest possible is the length of the list.

If the |same= parameter is set to "yes", "y", "true", or "1", the list order is the same for each module call on a given page.

Please see Module:List for a full explanation of the other parameters.