模組:Number/doc
此頁面為 Module:Number 的說明文件
此模組文件被引用於約5,100個頁面。 為了避免造成大規模的影響,所有對此模組文件的編輯應先於沙盒或測試樣例上測試。 測試後無誤的版本可以一次性地加入此模組文件中,但是修改前請務必於討論頁發起討論。 模板引用數量會自動更新。 |
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 }}
- 結果為:
____ |
|
- <性質名稱>
此模組使用Lua語言: |
此參數的名稱即為性質名稱,後面須放置一串性質描述字串,例如
| 合數 = *{{{number}}}是第{{{order}}}個{{{property}}},其存在正因數{{{value}}},上一個{{{property}}}為{{{last}}}、下一個為{{{next}}}。
- 將顯示為:
____ |
- 其中:
{{{number}}}
被替換為當前數字,本例為28。{{{order}}}
被替換為當前數字位於當前數列的第幾個,本例28為第18個。{{{property}}}
被替換為當前數列的內部連結,本例為「合數」。{{{value}}}
被替換為當前數列的可自動計算性質,詳細性質資料可於下方表格找到。
- 本例合數的
{{{value}}}
為列出其正因數。
- 本例合數的
{{{last}}}
、{{{next}}}
被替換為當前數字位於當前數列中的前一個數以及下一個數。
- 其中:
- 其他能用的性質參數、與支援的
{{{}}}
參數列於下表:
|
|
- SemiperfectNumber
開啟或關閉半完全數判斷
- 支援的值:yes、no
- 半完全數定義為至少存在一組真因數,其和為本身,因此要檢查一數是否為半完全數,則需要把真因數的子集檢查一遍
- 由於一個集合中子集的數量為 個,因此當因數非常多時,其運算可能超時,而MediaWiki限制了模組總時間為10秒。
- 此判斷為本模組中最慢的演算法,因此設計開關可以關閉
- print list
要印出的性質列表,以逗號分隔,例如合數,質因數分解,奢侈數
。
- 預設值為
質數,孿生質數,高斯質數,合數,質因數分解,虧數,過剩數,完全數,半完全數,奇異數,歐爾調和數,不尋常數,半質數,佩服數,無平方數因數的數,楔形數,平方數,立方數,普洛尼克數,自我數,等數位數,節儉數,奢侈數,不可及數,可作圖多邊形
- 預設值為
- print black list
不要印出的性質列表,以逗號分隔,例如虧數,質因數分解,可作圖多邊形
。
- 預設值為
自然數,整數
- 預設值為
例外狀況
- 不是一個數字。
- 輸入的內容無法被解析為數字,
- 例如:
{{#invoke:Number|singleNumberInformation | 1 = 娜娜奇 }}
→錯誤:「娜娜奇」不是一個數字。。
- 例如:
- 絕對值已超出支援的處理範圍。
- 輸入的數字,絕對值太大,考量處理可能超時,或者會高過Lua整數支持( )變成浮點數遺失精確度等種種造成錯誤的問題,因此設定運算上限為35,184,372,088,831。
- 不是實數整數( )的情形
- 輸入的數不是實數整數( )的話雖然不會導致錯誤,不過其可能不是一般數論的可處理範圍內,因此不會跑正常的數字判斷程式,只會輸出固定的性質字串
____ | 例如:{{#invoke:Number|singleNumberInformation | 1 = 0.25 }} →
|
例如: |
範例
{{#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:要列出支援計算的性質的整數
回傳值
- 列出支援計算的性質
目前已支援判斷的性質
- 以下數字為示範用,並非實際數字
種類 | 自動產生的資訊 | 序數支援 | 開啟/關閉的參數 | 自定義字串參數 | 預設說明字串 |
---|---|---|---|---|---|
質數 | 無 | 自動列出此數是第幾個質數 | 未實作 | 未實作 |
|
孿生質數 | 實際的孿生質數數對 | 不支援 | 未實作 | :頭部:|(數字名稱)孿生質數=
|
自定義:
|
負數 | 無 | 不支援 | 未實作 | 未實作 | |
合數 | 列出正因數,(未實作關閉的方法) | 不支援 | 未實作 | :頭部:|(數字名稱)因數=
|
自定義:
|
質因數分解 | 列出質因數分解的式子 | 不存在 | 未實作 | :頭部:|(數字名稱)質因數分解=
|
自定義:
|
虧數 | 虧度 | 不支援 | 未實作 | :頭部:|(數字名稱)虧數=
|
自定義:(不夠靈活,此處會再改進)
|
過剩數 | 盈度 | 不支援 | 未實作 | :頭部:|(數字名稱)過剩數=
|
自定義:(不夠靈活,此處會再改進)
|
完全數 | 無 | 不支援 | 未實作 | :頭部:|(數字名稱)完全數=
|
自定義:
|
半完全數 | 和為自身的因數組合 | 不支援 | | Semiperfect Number =
|
:頭部:|(數字名稱)半完全數=
|
自定義:
|
奇異數 | 無 | 不支援 | | Semiperfect Number =
|
:頭部:|(數字名稱)奇異數=
|
自定義:
|
歐爾調和數 | 因數的調和平均數 | 不支援 | 未實作 | :頭部:|(數字名稱)歐爾調和數=
|
自定義: |
不尋常數 | 大於平方根的質因數 | 不支援 | 未實作 | :頭部:|(數字名稱)不尋常數=
|
自定義:
|
半質數 | 無 | 不支援 | 未實作 | :頭部:|(數字名稱)半質數=
|
自定義:
|
佩服數 | 因數d,除d外的因數相加減掉d等於自己本身。 | 不支援 | 未實作 | :頭部:|(數字名稱)佩服數=
|
自定義:
|
無平方數因數的數 | 無 | 不支援 | 未實作 | :頭部:|(數字名稱)無平方數因數的數=
|
自定義:
|
楔形數 | 無 | 不支援 | 未實作 | :頭部:|(數字名稱)楔形數=
|
自定義:
|
平方數 | 是誰的平方 | 不支援 | 未實作 | :頭部:|(數字名稱)平方數=
|
自定義:
|
普洛尼克數 | 哪兩個連續整數相乘 | 不支援 | 未實作 | :頭部:|(數字名稱)普洛尼克數=
|
自定義:
|
等數位數 (十進制) | 無 | 不支援 | 未實作 | :頭部:|(數字名稱)等數位數=
|
自定義: |
節儉數 (十進制) | 無 | 不支援 | 未實作 | :頭部:|(數字名稱)節儉數=
|
自定義: |
奢侈數 (十進制) | 無 | 不支援 | 未實作 | :頭部:|(數字名稱)奢侈數=
|
自定義: |
範例
- 例如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=娜娜奇}}
- 結果為: