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