地龙是什么生肖| 什么叫周围神经病| 什么叫银屑病| 湿疹挂什么科| 吃什么消肿| 甲减吃什么药| 舌加氏念什么| 天什么地| 尿胆原阴性是什么意思| 2.25是什么星座| 大黄泡水喝有什么功效| 肝不好有什么症状表现| 团长相当于地方什么官| 痔疮是什么样子的图片大全| 柳是什么生肖| 冤亲债主是什么意思| 1958年是什么年| 跪安是什么意思| 1月12号是什么星座| 减肥早餐吃什么好| 始祖鸟什么档次| 老人爱睡觉是什么原因| 什么的亮光| 黄色搭配什么颜色| 白醋泡脚有什么好处| 刘伯温属什么生肖| 胃穿孔是什么症状| 四气指的是什么| 什么的雾| 一直打嗝是什么原因| hpv68阳性是什么意思| 圆明园是什么时候被烧的| 10月28是什么星座| 6月11日什么星座| 冢字的意思是什么| 627是什么意思| 飞行模式是什么意思| 乳头瘙痒是什么原因| 什么样的伤口需要缝针| 心字底的字与什么有关| 内项和外项是什么| 什么是粳米| 什么的香味| 888红包代表什么意思| oct是什么意思| 87年五行属什么| 什么是两栖动物| 6月12日是什么日子| 千什么一发| 吃金蝉有什么好处| 什么是夫妻宫| 做梦梦到拉屎是什么意思| 尿频看什么科| 白鹭吃什么| 1月26号是什么星座| 得失是什么意思| 68年属什么| 口腔扁平苔藓吃什么药好得快| 关税什么意思| 甘油三酯低是什么原因| 醋泡葡萄干有什么功效和作用| 四库全书是什么| 甲沟炎吃什么药| 梦见打死猫有什么预兆| 口水多是什么原因引起的| 灼热感是什么样的感觉| 心阳不足吃什么中成药| 二灰是什么| 家里养泥鳅喂什么东西| 猫能吃什么水果| 苏州立夏吃什么| 微波炉什么牌子好| TPS什么意思| 什么食物对心脏有好处| 吃什么降血脂最快最好| 工作机制是什么意思| 类风湿因子高是什么原因| 牛角尖是什么意思| 什么是子宫憩室| 移民澳洲需要什么条件| 小知了叫什么| 行代表什么生肖| 寒热错杂吃什么中成药| 胃疼吃什么止痛药| 什么生肖怕老婆| 脑白质变性什么意思| 润喉咙什么东西最合适| 鳜鱼是什么鱼| 乾隆为什么不喜欢雍正| 四个雷念什么| 氧分压高是什么原因| 忽必烈姓什么| 无后为大是什么意思| 大腿骨叫什么骨| 办护照需要什么| 嘴甜是什么原因| 腋下淋巴结挂什么科| 茶颜悦色什么好喝| 见异思迁什么意思| 高压150低压100吃什么药| 高考600多分能上什么大学| 女性内分泌失调有什么症状| 孕妇喝什么牛奶好| 煤油对人体有什么危害| 什么地摇动| 烟火气是什么意思| 什么叫做流年| 颈椎吃什么药| 治疗晕病有什么好方法| 逼格是什么意思| 心脏缺血吃什么补的快| 宫腔镜检查后需要注意什么| 1972年是什么命| 鼻炎是什么原因引起的| tr什么意思| 今天吃什么随机| 高兴地什么| 是谁送你来到我身边是什么歌| 闻思修是什么意思| 小猫能吃什么水果| 喉咙发炎吃什么消炎药| 60年是什么婚| 胚由什么组成| 左下腹疼痛是什么原因女性| 男人趴着睡觉说明什么| 安乐死是什么意思| 经常吃生花生有什么好处和坏处| 刘亦菲为什么不结婚| 阴中求阳是什么意思| 舌头溃疡吃什么水果| 乙肝病毒核心抗体阳性是什么意思| 辛辣的辛是什么意思| 饿了手抖是什么原因| 2000年什么年| 身价是什么意思| iqr是什么意思| 病毒由什么组成| 保温杯什么牌子好| 宝批龙是什么意思| 知进退明得失什么意思| 膝盖疼做什么检查最好| 纳呆是什么意思| 舌头溃疡吃什么药最好| 先明后不争什么意思| 熊猫血是什么血型| 京东plus是什么意思| 体重突然下降是什么原因| 珠颈斑鸠吃什么| 一年四季是什么生肖| 减肥期间吃什么水果| 尿道炎吃什么药比较好的快| 脑脊液白细胞高是什么原因| 紫微星是什么意思| 痔疮是什么原因引起的| 女生下面出血但不是月经为什么| 氟利昂是什么| 黑户什么意思| 斗是什么意思| 30岁是什么之年| 什么空调最省电| 亲近是什么意思| 僵尸肉吃了有什么危害| 精忠报国是什么生肖| 良去掉一点读什么| 炒鱿鱼是什么意思| 云南有什么名酒| #NAME?| 胃酸分泌过多是什么原因造成的| 眼线是什么意思| 甲亢吃什么盐| 夏天吃什么| 上位是什么意思| 细菌感染吃什么抗生素| 1954年是什么年| 大姨妈是什么意思| 痛风什么不能吃| 国潮是什么| 92年是什么生肖| 什么茶养胃| 穿裙子搭配什么鞋子| 班长是什么军衔| 塘角鱼吃什么食物| 湿疹为什么一热就出来| 磨玻璃影是什么意思| 下肢动脉硬化吃什么药| 吃羊肉不能吃什么水果| 电动车电池什么牌子好| 接待是什么意思| 什么是七杀命格| 女性掉发严重是什么原因| 微不足道是什么意思| 背痛挂什么科| 宝宝肠胃炎吃什么药| 小猫能吃什么水果| 掉头发是什么原因女性| 直言不讳是什么意思| 蚂蚁最怕什么东西| 姨妈没来是什么原因| 魂不守舍什么意思| 喝啤酒头疼是什么原因| 体位性低血压是什么| 左肾积水是什么意思| 翡翠属于什么玉| 盆腔ct能检查出什么病| 孩子手脚冰凉是什么原因| 萎缩性胃炎是什么原因引起的| 笑点低是什么意思| 什么的琴声| 夏天吃西瓜有什么好处| 3什么意思| soso什么意思| 吃的少还胖什么原因| 反胃是什么原因引起的| 50岁女人出轨为了什么| 胸椎退行性变什么意思| 橘子什么季节成熟| 蓝莓树长什么样| 车前草有什么功效和作用| 葡萄膜炎是什么原因引起的| 冬天怕冷夏天怕热是什么原因| 天条是什么意思| 一周不排便是什么原因| 1923年属什么生肖| 竹字五行属什么| am是什么| 王秋儿和王冬儿什么关系| 唉什么意思| 柔软的什么| 有缘无分是什么意思| 车暴晒有什么影响| btob是什么意思| 心梗挂什么科| 喉咙老是有白痰是什么原因| 杳冥是什么意思| 旨在是什么意思| 权衡是什么意思| 正觉是什么意思| 梦见捉黄鳝是什么意思| 冢字的意思是什么| 胃疼可以吃什么水果| 荷花五行属什么| 女生的隐私长什么样子| 薤白的俗名叫什么| 南乳和腐乳有什么区别| 哺乳期乳腺炎吃什么药| 1975年属什么| 9月3号是什么星座| 红薯用什么繁殖| 小翅膀车标是什么车| 肛门出血是什么原因| 久卧伤气是什么意思| 多什么多什么| 外露什么意思| 石女是什么意思| 吞服是什么意思| 家里有蜈蚣是什么原因| 犯病是什么意思| 什么是中位数| 令人唏嘘是什么意思| 孕妇多吃什么水果比较好| 眼下长斑是什么原因| 66是什么意思| 测心率手表什么牌子好| 梅花代表什么象征意义| 百度Jump to content

吉林省十三届人大常委会第二次会议3月28日召开

From Outreach Wiki
百度   涂曙明强调,2018年是贯彻落实党的十九大精神,推进出版社稳中求进、提质增效的关键之年,做好2018年党建工作责任重大、使命光荣。
--[[

This module provides a number of basic mathematical operations.

]]

local yesno, getArgs -- lazily initialized

local p = {} -- Holds functions to be returned from #invoke, and functions to make available to other Lua modules.
local wrap = {} -- Holds wrapper functions that process arguments from #invoke. These act as intemediary between functions meant for #invoke and functions meant for Lua.

--[[
Helper functions used to avoid redundant code.
]]

local function err(msg)
	-- Generates wikitext error messages.
	return mw.ustring.format('<strong class="error">Formatting error: %s</strong>', msg)
end

local function unpackNumberArgs(args)
	-- Returns an unpacked list of arguments specified with numerical keys.
	local ret = {}
	for k, v in pairs(args) do
		if type(k) == 'number' then
			table.insert(ret, v)
		end
	end
	return unpack(ret)
end

local function makeArgArray(...)
	-- Makes an array of arguments from a list of arguments that might include nils.
	local args = {...} -- Table of arguments. It might contain nils or non-number values, so we can't use ipairs.
	local nums = {} -- Stores the numbers of valid numerical arguments.
	local ret = {}
	for k, v in pairs(args) do
		v = p._cleanNumber(v)
		if v then
			nums[#nums + 1] = k
			args[k] = v
		end
	end
	table.sort(nums)
	for i, num in ipairs(nums) do
		ret[#ret + 1] = args[num]
	end
	return ret
end

local function fold(func, ...)
	-- Use a function on all supplied arguments, and return the result. The function must accept two numbers as parameters,
	-- and must return a number as an output. This number is then supplied as input to the next function call.
	local vals = makeArgArray(...)
	local count = #vals -- The number of valid arguments
	if count == 0 then return
		-- Exit if we have no valid args, otherwise removing the first arg would cause an error.
		nil, 0
	end
	local ret = table.remove(vals, 1)
	for _, val in ipairs(vals) do
		ret = func(ret, val)
	end
	return ret, count
end

--[[
Fold arguments by selectively choosing values (func should return when to choose the current "dominant" value).
]]
local function binary_fold(func, ...)
	local value = fold((function(a, b) if func(a, b) then return a else return b end end), ...)
	return value
end

--[[
random

Generate a random number

Usage:
{{#invoke: Math | random }}
{{#invoke: Math | random | maximum value }}
{{#invoke: Math | random | minimum value | maximum value }}
]]

function wrap.random(args)
	local first = p._cleanNumber(args[1])
	local second = p._cleanNumber(args[2])
	return p._random(first, second)
end

function p._random(first, second)
	math.randomseed(mw.site.stats.edits + mw.site.stats.pages + os.time() + math.floor(os.clock() * 1000000000))
	-- math.random will throw an error if given an explicit nil parameter, so we need to use if statements to check the params.
	if first and second then
		if first <= second then -- math.random doesn't allow the first number to be greater than the second.
			return math.random(first, second)
		end
	elseif first then
		return math.random(first)
	else
		return math.random()
	end
end

--[[
order

Determine order of magnitude of a number

Usage:
{{#invoke: Math | order | value }}
]]

function wrap.order(args)
	local input_string = (args[1] or args.x or '0');
	local input_number = p._cleanNumber(input_string);
	if input_number == nil then
		return err('order of magnitude input appears non-numeric')
	else
		return p._order(input_number)
	end
end

function p._order(x)
	if x == 0 then return 0 end
	return math.floor(math.log10(math.abs(x)))
end

--[[
precision

Detemines the precision of a number using the string representation

Usage:
{{ #invoke: Math | precision | value }}
]]

function wrap.precision(args)
	local input_string = (args[1] or args.x or '0');
	local trap_fraction = args.check_fraction;
	local input_number;

	if not yesno then
		yesno = require('Module:Yesno')
	end
	if yesno(trap_fraction, true) then -- Returns true for all input except nil, false, "no", "n", "0" and a few others. See [[Module:Yesno]].
		local pos = string.find(input_string, '/', 1, true);
		if pos ~= nil then
			if string.find(input_string, '/', pos + 1, true) == nil then
				local denominator = string.sub(input_string, pos+1, -1);
				local denom_value = tonumber(denominator);
				if denom_value ~= nil then
					return math.log10(denom_value);
				end
			end
		end
	end

	input_number, input_string = p._cleanNumber(input_string);
	if input_string == nil then
		return err('precision input appears non-numeric')
	else
		return p._precision(input_string)
	end
end

function p._precision(x)
	if type(x) == 'number' then
		x = tostring(x)
	end
	x = string.upper(x)

	local decimal = x:find('%.')
	local exponent_pos = x:find('E')
	local result = 0;

	if exponent_pos ~= nil then
		local exponent = string.sub(x, exponent_pos + 1)
		x = string.sub(x, 1, exponent_pos - 1)
		result = result - tonumber(exponent)
	end

	if decimal ~= nil then
		result = result + string.len(x) - decimal
		return result
	end

	local pos = string.len(x);
	while x:byte(pos) == string.byte('0') do
		pos = pos - 1
		result = result - 1
		if pos <= 0 then
			return 0
		end
	end

	return result
end


--[[
max

Finds the maximum argument

Usage:
{{#invoke:Math| max | value1 | value2 | ... }}

Note, any values that do not evaluate to numbers are ignored.
]]

function wrap.max(args)
	return p._max(unpackNumberArgs(args))
end

function p._max(...)
	local max_value = binary_fold((function(a, b) return a > b end), ...)
	if max_value then
		return max_value
	end
end

--[[
median

Find the median of set of numbers

Usage:
{{#invoke:Math | median | number1 | number2 | ...}}
OR
{{#invoke:Math | median }}
]]

function wrap.median(args)
	return p._median(unpackNumberArgs(args))
end

function p._median(...)
	local vals = makeArgArray(...)
	local count = #vals
	table.sort(vals)

	if count == 0 then
		return 0
	end

	if p._mod(count, 2) == 0 then
		return (vals[count/2] + vals[count/2+1])/2
	else
		return vals[math.ceil(count/2)]
	end
end

--[[
min

Finds the minimum argument

Usage:
{{#invoke:Math| min | value1 | value2 | ... }}
OR
{{#invoke:Math| min }}

When used with no arguments, it takes its input from the parent
frame.  Note, any values that do not evaluate to numbers are ignored.
]]

function wrap.min(args)
	return p._min(unpackNumberArgs(args))
end

function p._min(...)
	local min_value = binary_fold((function(a, b) return a < b end), ...)
	if min_value then
		return min_value
	end
end

--[[
sum

Finds the sum

Usage:
{{#invoke:Math| sum | value1 | value2 | ... }}
OR
{{#invoke:Math| sum }}

Note, any values that do not evaluate to numbers are ignored.
]]

function wrap.sum(args)
	return p._sum(unpackNumberArgs(args))
end

function p._sum(...)
	local sums, count = fold((function(a, b) return a + b end), ...)
	if not sums then
		return 0
	else
		return sums
	end
end

--[[
average

Finds the average

Usage:
{{#invoke:Math| average | value1 | value2 | ... }}
OR
{{#invoke:Math| average }}

Note, any values that do not evaluate to numbers are ignored.
]]

function wrap.average(args)
	return p._average(unpackNumberArgs(args))
end

function p._average(...)
	local sum, count = fold((function(a, b) return a + b end), ...)
	if not sum then
		return 0
	else
		return sum / count
	end
end

--[[
round

Rounds a number to specified precision

Usage:
{{#invoke:Math | round | value | precision }}

--]]

function wrap.round(args)
	local value = p._cleanNumber(args[1] or args.value or 0)
	local precision = p._cleanNumber(args[2] or args.precision or 0)
	if value == nil or precision == nil then
		return err('round input appears non-numeric')
	else
		return p._round(value, precision)
	end
end

function p._round(value, precision)
	local rescale = math.pow(10, precision or 0);
	return math.floor(value * rescale + 0.5) / rescale;
end

--[[
log10

returns the log (base 10) of a number

Usage:
{{#invoke:Math | log10 | x }}
]]

function wrap.log10(args)
	return math.log10(args[1])
end

--[[
mod

Implements the modulo operator

Usage:
{{#invoke:Math | mod | x | y }}

--]]

function wrap.mod(args)
	local x = p._cleanNumber(args[1])
	local y = p._cleanNumber(args[2])
	if not x then
		return err('first argument to mod appears non-numeric')
	elseif not y then
		return err('second argument to mod appears non-numeric')
	else
		return p._mod(x, y)
	end
end

function p._mod(x, y)
	local ret = x % y
	if not (0 <= ret and ret < y) then
		ret = 0
	end
	return ret
end

--[[
gcd

Calculates the greatest common divisor of multiple numbers

Usage:
{{#invoke:Math | gcd | value 1 | value 2 | value 3 | ... }}
--]]

function wrap.gcd(args)
	return p._gcd(unpackNumberArgs(args))
end

function p._gcd(...)
	local function findGcd(a, b)
		local r = b
		local oldr = a
		while r ~= 0 do
			local quotient = math.floor(oldr / r)
			oldr, r = r, oldr - quotient * r
		end
		if oldr < 0 then
			oldr = oldr * -1
		end
		return oldr
	end
	local result, count = fold(findGcd, ...)
	return result
end

--[[
precision_format

Rounds a number to the specified precision and formats according to rules
originally used for {{template:Rnd}}.  Output is a string.

Usage:
{{#invoke: Math | precision_format | number | precision }}
]]

function wrap.precision_format(args)
	local value_string = args[1] or 0
	local precision = args[2] or 0
	return p._precision_format(value_string, precision)
end

function p._precision_format(value_string, precision)
	-- For access to Mediawiki built-in formatter.
	local lang = mw.getContentLanguage();

	local value
	value, value_string = p._cleanNumber(value_string)
	precision = p._cleanNumber(precision)

	-- Check for non-numeric input
	if value == nil or precision == nil then
		return err('invalid input when rounding')
	end

	local current_precision = p._precision(value)
	local order = p._order(value)

	-- Due to round-off effects it is neccesary to limit the returned precision under
	-- some circumstances because the terminal digits will be inaccurately reported.
	if order + precision >= 14 then
		if order + p._precision(value_string) >= 14 then
			precision = 13 - order;
		end
	end

	-- If rounding off, truncate extra digits
	if precision < current_precision then
		value = p._round(value, precision)
		current_precision = p._precision(value)
	end

	local formatted_num = lang:formatNum(math.abs(value))
	local sign

	-- Use proper unary minus sign rather than ASCII default
	if value < 0 then
		sign = '?'
	else
		sign = ''
	end

	-- Handle cases requiring scientific notation
	if string.find(formatted_num, 'E', 1, true) ~= nil or math.abs(order) >= 9 then
		value = value * math.pow(10, -order)
		current_precision = current_precision + order
		precision = precision + order
		formatted_num = lang:formatNum(math.abs(value))
	else
		order = 0;
	end
	formatted_num = sign .. formatted_num

	-- Pad with zeros, if needed
	if current_precision < precision then
		local padding
		if current_precision <= 0 then
			if precision > 0 then
				local zero_sep = lang:formatNum(1.1)
				formatted_num = formatted_num .. zero_sep:sub(2,2)

				padding = precision
				if padding > 20 then
					padding = 20
				end

				formatted_num = formatted_num .. string.rep('0', padding)
			end
		else
			padding = precision - current_precision
			if padding > 20 then
				padding = 20
			end
			formatted_num = formatted_num .. string.rep('0', padding)
		end
	end

	-- Add exponential notation, if necessary.
	if order ~= 0 then
		-- Use proper unary minus sign rather than ASCII default
		if order < 0 then
			order = '?' .. lang:formatNum(math.abs(order))
		else
			order = lang:formatNum(order)
		end

		formatted_num = formatted_num .. '<span style="margin:0 .15em 0 .25em">×</span>10<sup>' .. order .. '</sup>'
	end

	return formatted_num
end

--[[
Helper function that interprets the input numerically.  If the
input does not appear to be a number, attempts evaluating it as
a parser functions expression.
]]

function p._cleanNumber(number_string)
	if type(number_string) == 'number' then
		-- We were passed a number, so we don't need to do any processing.
		return number_string, tostring(number_string)
	elseif type(number_string) ~= 'string' or not number_string:find('%S') then
		-- We were passed a non-string or a blank string, so exit.
		return nil, nil;
	end

	-- Attempt basic conversion
	local number = tonumber(number_string)

	-- If failed, attempt to evaluate input as an expression
	if number == nil then
		local success, result = pcall(mw.ext.ParserFunctions.expr, number_string)
		if success then
			number = tonumber(result)
			number_string = tostring(number)
		else
			number = nil
			number_string = nil
		end
	else
		number_string = number_string:match("^%s*(.-)%s*$") -- String is valid but may contain padding, clean it.
		number_string = number_string:match("^%+(.*)$") or number_string -- Trim any leading + signs.
		if number_string:find('^%-?0[xX]') then
			-- Number is using 0xnnn notation to indicate base 16; use the number that Lua detected instead.
			number_string = tostring(number)
		end
	end

	return number, number_string
end

--[[
Wrapper function that does basic argument processing. This ensures that all functions from #invoke can use either the current
frame or the parent frame, and it also trims whitespace for all arguments and removes blank arguments.
]]

local mt = { __index = function(t, k)
	return function(frame)
		if not getArgs then
			getArgs = require('Module:Arguments').getArgs
		end
		return wrap[k](getArgs(frame))  -- Argument processing is left to Module:Arguments. Whitespace is trimmed and blank arguments are removed.
	end
end }

return setmetatable(p, mt)
重症肌无力是什么原因引起的 脾是起什么作用的 1.25是什么星座 农业户口和非农业户口有什么区别 活塞是什么
木加鬼念什么 被银环蛇咬了有什么症状 适合是什么意思 扶苏是什么意思 3.7号是什么星座
乙肝235阳性是什么意思 鹰和隼有什么区别 体罚是什么意思 杭州市市长什么级别 脚痒是什么原因
女性尿血挂什么科 五月二十一是什么星座 氟比洛芬是什么药 吕字五行属什么 去胎毒吃什么最好
ufc是什么意思hcv7jop7ns0r.cn 荨麻疹忌口忌什么食物hcv7jop9ns0r.cn 子宫瘢痕是什么意思hcv9jop5ns8r.cn 胖大海是什么东西hcv9jop4ns4r.cn 溶血性黄疸是什么原因引起的hcv7jop9ns2r.cn
腋下发黑是什么原因cl108k.com 日加西念什么hcv9jop4ns9r.cn 直男什么意思wzqsfys.com 松鼠尾巴有什么作用hcv8jop0ns6r.cn 血管钙化是什么意思hcv9jop7ns9r.cn
总是心慌是什么原因dayuxmw.com 唐朝灭亡后是什么朝代hcv7jop5ns0r.cn 血脂高不能吃什么hcv9jop5ns3r.cn 子宫息肉有什么危害hcv8jop1ns1r.cn 补蛋白吃什么最好jinxinzhichuang.com
梦见死人复活是什么意思hcv8jop3ns4r.cn 绀是什么意思hcv9jop2ns2r.cn 陶渊明字什么hcv9jop7ns5r.cn 左下腹疼痛是什么原因sanhestory.com 长粉刺是什么原因hcv8jop8ns5r.cn
百度