模块: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=娜娜奇}}
- 结果为: