模組:Number/doc

此頁面為 Module:Number 的說明文件

Module:Number編輯 | 討論 | 歷史 | 連結 | 監視 | 日誌

此模組用於數字相關程式,例如特定數字的性質判別,或列出整數的部分性質。

函數說明

singleNumberInformation

輸入一個整數,列出支援計算的性質,並且支援格式自定義。較小的數字支援序數,其方法為查表法,相關內容定義於子頁面。

語法

{{#invoke:Number|singleNumberInformation
  | 1 =			要印出性質的數字
  | use math =		是否使用<math></math>
  | print list =	要印出的性質(寫在這裡不代表一定會印出,除非數字真的有此性質才會印出)
  | print black list =	不印出的性質
  | 完全數 =		完全數性質的描述字串,會自動將形如{{{}}}的內容換成自動計算之結果,
			請參閱下方說明 (未填寫將使用預設)
  | (...其他性質) =	其他性質的描述字串,支援的性質請參閱下表 (未填寫將使用預設)
  | SemiperfectNumber =	是否取消半完全數/奇異數的相關計算
}}

參數

  • 1

此參數為要顯示性質的數字

  • use math

此參數為要是否要生成<math></math>的標記於部分數學式。例如:

{{#invoke:Number|singleNumberInformation|1=70 | use math = yes }}
結果為:
____
{{#invoke:Number|singleNumberInformation|1=70 | use math = no }}
結果為:
____
  • <性質名稱>

此參數的名稱即為性質名稱,後面須放置一串性質描述字串,例如

| 合數 = *{{{number}}}是第{{{order}}}個{{{property}}},其存在正因數{{{value}}},上一個{{{property}}}為{{{last}}}、下一個為{{{next}}}。
將顯示為:
____
  • 28是第18個合數,其存在正因數1、2、4、7、14和28,上一個合數為27、下一個為30。
其中:
  • {{{number}}}被替換為當前數字,本例為28。
  • {{{order}}}被替換為當前數字位於當前數列的第幾個,本例28為第18個。
  • {{{property}}}被替換為當前數列的內部連結,本例為「合數」。
  • {{{value}}}被替換為當前數列的可自動計算性質,詳細性質資料可於下方表格找到。
本例合數的{{{value}}}為列出其正因數。
  • {{{last}}}{{{next}}}被替換為當前數字位於當前數列中的前一個數以及下一個數。
  • 其他能用的性質參數、與支援的{{{}}}參數列於下表:
特有{{{}}}使用方法
此類參數須放置於{{{}}}內
參閱#根據性質的參數
通用參數
  • {{{ number }}}
    這個數字
  • {{{ order }}}
    順序,即此數在這數列中是第幾個
  • {{{ orderstr }}}
    順序字串,描述order的預設字串,只支援在查表內的。形如「第X個」
  • {{{ property }}}
    這個數列,會自動產生內部連結,例如「合數
  • {{{ releatedstr }}}
    描述同數列鄰近值關聯的預設字串,只支援在查表內的。形如「前一個是米蒂、下一個是娜娜奇
  • {{{ last }}}
    數列中前一個有此性質的數,只支援在查表內的。
  • {{{ next }}}
    數列中下一個有此性質的數,只支援在查表內的。
  • {{{ null }}}
    空白,整句只打{{{null}}}的話就會整句空白。
  • {{{ default }}}
    會替換為預設字串。若只是要在預設字串後方加東西可使用{{{default}}}要加的文字來實現。
根據性質的參數
名稱 條目 預設值 {{{}}}參數 範例 數列項 支援自動計算
奇異數 奇異數_(數論) *{{{orderstr}}}{{{property}}}{{{releatedstr}}}。
836
前20項
70 ~ 13930
支援
梅森質數 梅森素數 **{{{orderstr}}}{{{property}}}({{{value1}}}),對應的[[完全數]]為{{{value2}}},{{{value3}}}{{{releatedstr}}}。
31
    • 第3個梅森質數 ),對應的完全數496 。前一個為7、下一個為127
前10項
3 ~ 618970019642690137449562111
不支援
半完全數 半完全數 **{{{orderstr}}}{{{property}}}{{{valuestr}}}{{{releatedstr}}}。
  • {{{ value }}}
    一組和為本身的因數
  • {{{ valuestr }}}
    預設的數值字串,描述一組和為本身的因數
24
    • 第5個半完全數,和為本身的其中一組因數為123468。前一個為20、下一個為28
前100項
6 ~ 414
速度慢
半質數 半素數 *{{{orderstr}}}{{{property}}}{{{releatedstr}}}。
35
前100項
4 ~ 314
支援
不可及數 不可及數 *{{{orderstr}}}{{{property}}}{{{releatedstr}}}。
52
前100項
2 ~ 1116
不支援
階乘 階乘 *{{{order}}}的{{{property}}}{{{releatedstr}}}。
24
前10項
1 ~ 3628800
不支援
佩服數 佩服數 *{{{orderstr}}}{{{property}}},相減後為本身的[[因數]]為{{{value}}}{{{releatedstr}}}。
  • {{{ value }}}
    除了這個真因數之和,將結果減去後為本身的因數
24
前100項
12 ~ 1758
支援
無平方數因數的數 無平方數因數的數 *{{{orderstr}}}{{{property}}}{{{releatedstr}}}。
35
前100項
1 ~ 163
支援
質數 素數 *{{{orderstr}}}{{{property}}}。
13
前1000項
2 ~ 7919
支援
高斯質數 高斯整數#作為唯一分解整環 **{{{property}}}之一。
11
支援
過剩數 過剩數 *{{{orderstr}}}{{{property}}},[[真因數和]]為{{{value1}}},盈度為{{{value2}}}{{{releatedstr}}}。
  • {{{ value2 }}}
    盈度,即真因數與數字和的差
  • {{{ value1 }}}
    真因數和
24
前100項
12 ~ 416
支援
負數 負數 *{{{property}}}。
-1
支援
整數 整數 {{{number}}}是一個{{{property}}},位於{{{last}}}和{{{next}}}之間。
-28

-28是一個整數,位於-29和-27之間。

不支援
平方數 平方數 *{{{orderstr}}}{{{property}}},為{{{value}}}的平方{{{releatedstr}}}。
  • {{{ value }}}
    這個數字的平方根
25
  • 第5個平方數,為5的平方。前一個為16、下一個為36
前50項
1 ~ 2500
支援
歐爾調和數 歐爾調和數 *{{{orderstr}}}{{{property}}},因數[[调和平均数]]為{{{value}}}{{{releatedstr}}}。
270
前20項
1 ~ 117800
支援
普洛尼克數 普洛尼克數 *{{{orderstr}}}{{{property}}},為{{{value1}}}與{{{value2}}}的乘積{{{releatedstr}}}。
  • {{{ value2 }}}
    兩個連續的非負整數中較大者,其與value1的乘積構成一個普洛尼克數
  • {{{ value1 }}}
    兩個連續的非負整數中較小者,其與value2的乘積構成一個普洛尼克數
42
前100項
0 ~ 9900
支援
質因數分解 整數分解 *:{{{property}}}為{{{value}}}。
  • {{{ value }}}
    質因數分解的結果
28
支援
合數 合數 *{{{orderstr}}}{{{property}}},[[因數|正因數]]有{{{value}}}{{{releatedstr}}}。
  • {{{ value }}}
    正數為所有正因數,負數為所有因數
  • {{{ value2 }}}
    因數的數量
28
前100項
4 ~ 133
支援
完全數 完全數 *{{{orderstr}}}{{{property}}},其中,{{{number}}} = {{{value1}}}對應的[[梅森素数]]為{{{value}}}{{{releatedstr}}}。
496
  • 第3個完全數,其中,496 =  對應的梅森素數為31。前一個為28、下一個為8128
前7項
6 ~ 137438691328
支援
本原半完全數 本原半完全數 **由於{{{number}}}不能被所有比它小的半完全數整除,因此是{{{orderstr}}}{{{property}}}{{{releatedstr}}}。
28
    • 由於28不能被所有比它小的半完全數整除,因此是第3個本原半完全數。前一個為20、下一個為88
前100項
6 ~ 7144
不支援
質數階乘 質數階乘 *{{{orderstr}}}{{{property}}},即前{{{order}}}個質數的乘積{{{releatedstr}}}。
30
  • 第3個質數階乘,即前3個質數的乘積。前一個為6、下一個為210
前10項
2 ~ 6469693230
不支援
孿生質數 孿生素數 **{{{property}}},為{{{value}}}。
  • {{{ value }}}
    該對孿生質數實際上的值
13
支援
佩爾數 佩爾數 *{{{orderstr}}}{{{property}}}{{{releatedstr}}}。
29
前21項
0 ~ 15994428
支援
立方數 立方數 *{{{orderstr}}}{{{property}}},為{{{value}}}的立方{{{releatedstr}}}。
  • {{{ value }}}
    這個數字的立方根
27
  • 第3個立方數,為3的立方。前一個為8、下一個為64
前22項
1 ~ 10648
支援
高合成數 高合成數 *{{{orderstr}}}{{{property}}}{{{releatedstr}}}。
24
前41項
1 ~ 2162160
不支援
高斯整數分解 高斯整數#作為唯一分解整環 *:其[[第一象限]]之[[高斯整數#作为唯一分解整环|高斯質數]]的[[整数分解]]為{{{value}}}。
  • {{{ value }}}
    高斯整數分解的結果
2
支援
斐波那契數 斐波那契數列 *{{{orderstr}}}{{{property}}}{{{releatedstr}}}。
34
前30項
0 ~ 832040
支援
哈沙德數 哈沙德數 *{{{orderstr}}}[[十进制]]的{{{property}}}{{{releatedstr}}}。
27
前100項
1 ~ 372
支援
奢侈數 奢侈數 *{{{orderstr}}}[[十进制]]的{{{property}}}{{{releatedstr}}}。
24
前100項
4 ~ 190
支援
可作圖多邊形 可作圖多邊形 *{{{value}}}為{{{orderstr}}}{{{property}}}{{{releatedstr}}}。
24
前100項
3 ~ 13107
不支援
自然數 自然數 {{{number}}}是一個{{{property}}},位於{{{last}}}和{{{next}}}之間。
28

28是一個自然數,位於27和29之間。

支援
節儉數 節儉數 *{{{orderstr}}}[[十进制]]的{{{property}}}{{{releatedstr}}}。
128
前40項
125 ~ 4802
支援
等數位數 等數位數 *{{{orderstr}}}[[十进制]]的{{{property}}}{{{releatedstr}}}。
27
前100項
1 ~ 215
支援
全哈沙德數 哈沙德數 **{{{orderstr}}}{{{property}}},即在所有[[进位制]]中皆為[[哈沙德數]]{{{releatedstr}}}。
4
前4項
1 ~ 6
不支援
虧數 虧數 *{{{orderstr}}}{{{property}}},[[真因數和]]為{{{value1}}},虧度為{{{value2}}}{{{releatedstr}}}。
  • {{{ value2 }}}
    虧度,即數字與真因數和的差
  • {{{ value1 }}}
    真因數和
27
前100項
1 ~ 131
支援
自我數 自我數 *{{{orderstr}}}[[十进制]]的{{{property}}}{{{releatedstr}}}。
53
前100項
1 ~ 973
不支援
楔形數 楔形數 *{{{orderstr}}}{{{property}}}{{{releatedstr}}}。
30
前100項
30 ~ 762
支援
不尋常數 不尋常數 *{{{orderstr}}}{{{property}}},大於平方根的質因數為{{{value}}}{{{releatedstr}}}。
  • {{{ value }}}
    大於平方根的質因數
28
  • 第18個不尋常數,大於平方根的質因數為7。前一個為26、下一個為29
前100項
2 ~ 145
支援
史密夫數 史密夫數 *{{{orderstr}}}[[十进制]]的{{{property}}}{{{releatedstr}}}。
27
前100項
4 ~ 2484
支援
  • SemiperfectNumber

開啟或關閉半完全數判斷

支援的值:yes、no
半完全數定義為至少存在一組真因數,其和為本身,因此要檢查一數是否為半完全數,則需要把真因數的子集檢查一遍
由於一個集合中子集的數量為 個,因此當因數非常多時,其運算可能超時,而MediaWiki限制了模組總時間為10秒。
此判斷為本模組中最慢的演算法,因此設計開關可以關閉
  • print list

要印出的性質列表,以逗號分隔,例如合數,質因數分解,奢侈數

預設值為質數,孿生質數,高斯質數,合數,質因數分解,虧數,過剩數,完全數,半完全數,奇異數,歐爾調和數,不尋常數,半質數,佩服數,無平方數因數的數,楔形數,平方數,立方數,普洛尼克數,自我數,等數位數,節儉數,奢侈數,不可及數,可作圖多邊形
  • print black list

不要印出的性質列表,以逗號分隔,例如虧數,質因數分解,可作圖多邊形

預設值為自然數,整數

例外狀況

  • 不是一個數字。
輸入的內容無法被解析為數字,
例如:{{#invoke:Number|singleNumberInformation | 1 = 娜娜奇 }}錯誤:「娜娜奇」不是一個數字。
輸入的數字,絕對值太大,考量處理可能超時,或者會高過Lua整數支持( )變成浮點數遺失精確度等種種造成錯誤的問題,因此設定運算上限為35,184,372,088,831。
例如:{{#invoke:Number|singleNumberInformation | 1 = 9007199254740991 }}
錯誤:無法處理數字「9007199254740991」,其絕對值已超出支援的處理範圍(35184372088831)。
例如:{{#invoke:Number|singleNumberInformation | 1 = -∞ }}
錯誤:無法處理數字「-∞」,其絕對值已超出支援的處理範圍(35184372088831)。
  • 不是實數整數( )的情形
輸入的數不是實數整數( )的話雖然不會導致錯誤,不過其可能不是一般數論的可處理範圍內,因此不會跑正常的數字判斷程式,只會輸出固定的性質字串
____ 例如:{{#invoke:Number|singleNumberInformation | 1 = 0.25 }}
0.25

例如:{{#invoke:Number|singleNumberInformation | 1 = -5 + 12 i }}

-5 + 12 i

範例

{{#invoke:Number|singleNumberInformation | 1 = 28 |use math=yes}}
____ 結果為:
  • 輸入一串僅有加減法的字串也能夠被支援
{{#invoke:Number|singleNumberInformation | 1 = 2+3+5+7+11 |use math=yes}}
____ 結果為:
  • 可透過輸入描述字串修改陳述方式
_ 原始碼為:
{{#invoke:Number|singleNumberInformation|1=28|use math=yes
  | 合數 = *{{{number}}}是{{{orderstr}}}{{{property}}}。
  | 質因數分解 = *{{{number}}}<math>=</math>{{{value}}}。
  | 完全數 = *{{{number}}}是{{{property}}}。
  | 半完全數 = *{{{number}}}是{{{property}}}。
  | 歐爾調和數 = *{{{number}}}是{{{property}}}。
  | 不尋常數 = *{{{number}}}是{{{property}}}。
  | 奢侈數 = *{{{number}}}是{{{property}}}。
}}
結果為:

numberDivisorInformation

輸入一個整數,列出支援計算的性質

參數

  • 1:要列出支援計算的性質的整數

回傳值

  • 列出支援計算的性質
目前已支援判斷的性質
以下數字為示範用,並非實際數字
種類 自動產生的資訊 序數支援 開啟/關閉的參數 自定義字串參數 預設說明字串
質數 自動列出此數是第幾個質數 未實作 未實作
孿生質數 實際的孿生質數數對 不支援 未實作 :頭部:|(數字名稱)孿生質數=
尾部:|(數字名稱)孿生質數end=
例如:|28孿生質數end=

自定義:

負數 不支援 未實作 未實作
合數 列出正因數,(未實作關閉的方法) 不支援 未實作 :頭部:|(數字名稱)因數=
尾部:|(數字名稱)因數end=
例如:|28因數end=
中間:|因數說明h=|因數說明f=
  • 合數,正因數有1、2、4、7、14和28。

自定義:

  • (頭部參數)合數,(因數說明h)1、2、4、7、14和28(因數說明f)(尾部參數)
質因數分解 列出質因數分解的式子 不存在 未實作 :頭部:|(數字名稱)質因數分解=
尾部:|(數字名稱)質因數分解end=
例如:|28質因數分解end=
質因數分解 

自定義:

(頭部參數)質因數分解 (尾部參數)
虧數 虧度 不支援 未實作 :頭部:|(數字名稱)虧數=
尾部:|(數字名稱)虧數end=
例如:|86虧數end=
  • 虧數,真因數和為46,虧度為40

自定義:(不夠靈活,此處會再改進)

  • (頭部參數)虧數,真因數和為46,虧度為40(尾部參數)
過剩數 盈度 不支援 未實作 :頭部:|(數字名稱)過剩數=
尾部:|(數字名稱)過剩數end=
例如:|88過剩數end=
  • 過剩數,真因數和為92,盈度為4

自定義:(不夠靈活,此處會再改進)

  • (頭部參數)過剩數,真因數和為92,盈度為4(尾部參數)
完全數 不支援 未實作 :頭部:|(數字名稱)完全數=
尾部:|(數字名稱)完全數end=
例如:|28完全數end=

自定義:

半完全數 和為自身的因數組合 不支援 | Semiperfect Number = :頭部:|(數字名稱)半完全數=
尾部:|(數字名稱)半完全數end=
例如:|88半完全數end=
  • 半完全數,和為本身的其中一組因數為1、 2、 8、 11、 22、 44。

自定義:

  • (頭部參數)半完全數,和為本身的其中一組因數為1、 2、 8、 11、 22、 44(尾部參數)
奇異數 不支援 | Semiperfect Number = :頭部:|(數字名稱)奇異數=
尾部:|(數字名稱)奇異數end=
例如:|70奇異數end=

自定義:

歐爾調和數 因數的調和平均數 不支援 未實作 :頭部:|(數字名稱)歐爾調和數=
尾部:|(數字名稱)歐爾調和數end=
例如:|140歐爾調和數end=

自定義:

不尋常數 大於平方根的質因數 不支援 未實作 :頭部:|(數字名稱)不尋常數=
尾部:|(數字名稱)不尋常數end=
例如:|28不尋常數end=

自定義:

  • (頭部參數)不尋常數,大於平方根的質因數為7。(尾部參數)
半質數 不支援 未實作 :頭部:|(數字名稱)半質數=
尾部:|(數字名稱)半質數end=
例如:|26半質數end=

自定義:

佩服數 因數d,除d外的因數相加減掉d等於自己本身。 不支援 未實作 :頭部:|(數字名稱)佩服數=
尾部:|(數字名稱)佩服數end=
例如:|20佩服數end=

自定義:

  • (頭部參數)佩服數,佩服因數為1(尾部參數)
無平方數因數的數 不支援 未實作 :頭部:|(數字名稱)無平方數因數的數=
尾部:|(數字名稱)無平方數因數的數end=
例如:|26無平方數因數的數end=

自定義:

楔形數 不支援 未實作 :頭部:|(數字名稱)楔形數=
尾部:|(數字名稱)楔形數end=
例如:|26無平方數因數的數end=

自定義:

平方數 是誰的平方 不支援 未實作 :頭部:|(數字名稱)平方數=
尾部:|(數字名稱)平方數end=
例如:|25平方數end=

自定義:

  • (頭部參數)平方數,為5的平方(尾部參數)
普洛尼克數 哪兩個連續整數相乘 不支援 未實作 :頭部:|(數字名稱)普洛尼克數=
尾部:|(數字名稱)普洛尼克數end=
例如:|30普洛尼克數end=

自定義:

等數位數十進制 不支援 未實作 :頭部:|(數字名稱)等數位數=
尾部:|(數字名稱)等數位數end=
例如:|27等數位數end=

自定義:

節儉數十進制 不支援 未實作 :頭部:|(數字名稱)節儉數=
尾部:|(數字名稱)節儉數end=
例如:|125節儉數end=

自定義:

奢侈數十進制 不支援 未實作 :頭部:|(數字名稱)奢侈數=
尾部:|(數字名稱)奢侈數end=
例如:|28奢侈數end=

自定義:

範例

例如70
{{#invoke:Number|numberDivisorInformation|1=70|use math=yes}}
結果為:
若輸入無效數字將返回錯誤
{{#invoke:Number|numberDivisorInformation|1=娜娜奇}}
結果為:錯誤:無法處理數字'娜娜奇'

_checkSemiperfectNumber

檢查數字是否為半完全數,不支援#invoke

語法
_checkSemiperfectNumber(input)
參數
  • input:整數,要檢查是否為半完全數的數字。
回傳值
  • 一維陣列,其中一個和為自己本身的因數序列

_checkSemiperfectNumberByDivisor

輸入某數的所有正因數,檢查數字是否為半完全數,不支援#invoke

語法
_checkSemiperfectNumberByDivisor(input)
參數
  • input:某數的所有正因數。
回傳值
  • 一維陣列,其中一個和為自己本身的因數序列

checkSemiperfectNumber

輸入一個整數,並回傳其所有因數

參數
  • 1:要找出因數的整數
回傳值
  • 以逗號分隔且和為自己本身的因數序列
範例
例如360
{{#invoke:Number|checkSemiperfectNumber|1=360}}
結果為:1,2,3,4,5,6,8,9,10,12,15,18,20,24,30,36,40,45,72
例如找出輸入若為奇異數則返回空
{{#invoke:Number|checkSemiperfectNumber|1=70}}
結果為:
例如找出輸入若為虧數亦然
{{#invoke:Number|checkSemiperfectNumber|1=27}}
結果為:
若輸入無效數字將返回空字串
{{#invoke:Number|checkSemiperfectNumber|1=娜娜奇}}
結果為: