模組:Random/doc
此頁面為 Module:Random 的說明文件
此模組文件被引用於MediaWiki:Recentchangestext中。 任何對此模組文件的修改會立即反映於維基百科的用戶介面。 為了避免造成大規模的影響,編者可以在本模組的沙盒 和測試樣例 頁面進行實驗。2 測試後無誤的版本可以一次性地加入此模組文件中,但是修改前請務必於討論頁發起討論。 |
此模組文件已評為alpha版,可接受第三方輸入,並可用於少量頁面以檢查是否存在問題,但需要受到檢查。歡迎提供新功能或修改其輸入輸出機制的建議。 |
這個模塊包含了可以使用隨機數的函數。它能輸出隨機數,從列表中隨機選擇一個項目,對列表隨機重新排序。隨機重新排序列表可以有序輸出,也可以用來輸出各種有徐和無序列表。可用函數參見下文。
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
andn
can be either positive or negative. Ifm
is greater thann
, 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.48292279033126{{#invoke:random|number|100}}
→ 97{{#invoke:random|number|-100|-50}}
→ -50{{#invoke:random|number|100|same=yes}}
→ 22{{#invoke:random|number|100|same=yes}}
→ 22
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
andtimestamp2
are specified, the module outputs a random date between the two timestamps.timestamp1
must be earlier thantimestamp2
. - If only
timestamp1
is 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}}
→ 20:38, 12 5月 2024 (UTC){{#invoke:random|date|format=F j}}
→ 5月 18{{#invoke:random|date|1 Jan 1980|31 Dec 1999}}
→ 20:01, 15 10月 1989 (UTC){{#invoke:random|date|1st January 1500|1st January 3000|format=g:i a, l d M Y}}
→ 9:16 pm, 星期四 12 1月 2045{{#invoke:random|date|1970/06/01}}
→ 03:55, 16 5月 1970 (UTC){{#invoke:random|date|same=yes}}
→ 18:46, 20 3月 2024 (UTC){{#invoke:random|date|same=yes}}
→ 18:46, 20 3月 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}}
→ beans{{#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.
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}}
→ sausageeggbaconbeansspam{{#invoke:random|list|egg|beans|sausage|bacon|spam|sep=dot}}
→ bacon · egg · spam · beans · sausage{{#invoke:random|list|egg|beans|sausage|bacon|spam|sep=space}}
→ bacon spam beans egg sausage{{#invoke:random|list|egg|beans|sausage|bacon|spam|sep=; }}
→ sausage; spam; bacon; egg; beans{{#invoke:random|list|egg|beans|sausage|bacon|spam|sep=foo}}
→ sausagefoospamfooeggfoobaconfoobeans{{#invoke:random|list|egg|beans|sausage|bacon|spam|limit=3}}
→ baconspambeans{{#invoke:random|list|egg|beans|sausage|bacon|spam|same=yes}}
→ beansbaconsausagespamegg{{#invoke:random|list|egg|beans|sausage|bacon|spam|same=yes}}
→ beansbaconsausagespamegg
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}}
→ spam、egg、bacon、beans和sausage{{#invoke:random|text_list|egg|beans|sausage|bacon|spam|sep=; }}
→ bacon; sausage; spam; beans和egg{{#invoke:random|text_list|egg|beans|sausage|bacon|spam|sep=; |conj= or }}
→ beans; sausage; bacon; egg or spam{{#invoke:random|text_list|egg|beans|sausage|bacon|spam|limit=3}}
→ egg、bacon和spam{{#invoke:random|text_list|egg|beans|sausage|bacon|spam|same=yes}}
→ beans、bacon、sausage、spam和egg{{#invoke:random|text_list|egg|beans|sausage|bacon|spam|same=yes}}
→ beans、bacon、sausage、spam和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}}
|
|
unbulleted_list
|
Unbulleted lists | {{#invoke:random|unbulleted_list|egg|sausage|spam}}
|
|
horizontal_list
|
Horizontal bulleted lists | {{#invoke:random|horizontal_list|egg|sausage|spam}}
|
|
ordered_list
|
Ordered lists (numbered lists and alphabetical lists) | {{#invoke:random|ordered_list|egg|sausage|spam}}
|
|
horizontal_ordered_list
|
Horizontal ordered lists | {{#invoke:random|horizontal_ordered_list|egg|sausage|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.