47e0a87646 2024-02-10 1: local 字集库 = require("u8_to_a")
47e0a87646 2024-02-10 2: local 基算库 = require(字集库.u8_to_a("算机_程语_月_基类_数_基算"))
47e0a87646 2024-02-10 3: local math = math
62e417ee6c 2024-02-10 4: local string = string
5b9fb5e09f 2024-02-13 5: local s = {}
47e0a87646 2024-02-10 6: -- 指数
82138b1e52 2024-02-06 7: --~ 左加数
82138b1e52 2024-02-06 8: --~ 右加数
5b9fb5e09f 2024-02-13 9: function s.指数(o1, o2, o3)
47e0a87646 2024-02-10 10: local k1
47e0a87646 2024-02-10 11: if o3 then
47e0a87646 2024-02-10 12: --~ 指数次
47e0a87646 2024-02-10 13: k1 = 基算库.除法(o2, o3)
47e0a87646 2024-02-10 14: return o1 ^ k1
47e0a87646 2024-02-10 15: else
47e0a87646 2024-02-10 16: return o1 ^ o2
47e0a87646 2024-02-10 17: end
47e0a87646 2024-02-10 18: end
62e417ee6c 2024-02-10 19: -- 指数次
62e417ee6c 2024-02-10 20: --~ 数
62e417ee6c 2024-02-10 21: --~ 指数底
5b9fb5e09f 2024-02-13 22: function s.指数次(o1, o2)
62e417ee6c 2024-02-10 23: local k1
62e417ee6c 2024-02-10 24: --~ 指数次
62e417ee6c 2024-02-10 25: k1 = math.log(o1) / math.log(o2)
62e417ee6c 2024-02-10 26: return k1
62e417ee6c 2024-02-10 27: end
95b5664d69 2024-02-10 28: --~ 数
5b9fb5e09f 2024-02-13 29: function s.二底指数次(o1)
95b5664d69 2024-02-10 30: local k1
95b5664d69 2024-02-10 31: --~ 指数次
95b5664d69 2024-02-10 32: _, k1 = math.frexp(o1)
95b5664d69 2024-02-10 33: return k1
95b5664d69 2024-02-10 34: end
f347cac7fe 2024-02-12 35: -- 向大取整和向小取整
47e0a87646 2024-02-10 36: --~ 数
5b9fb5e09f 2024-02-13 37: function s.向小取整(o1)
47e0a87646 2024-02-10 38: return math.floor(o1)
47e0a87646 2024-02-10 39: end
95b5664d69 2024-02-10 40: -- 几位整数和几位小数
62e417ee6c 2024-02-10 41: --~ 数
62e417ee6c 2024-02-10 42: --~ 几位整数
5b9fb5e09f 2024-02-13 43: function s.几位整数(o1, o2)
62e417ee6c 2024-02-10 44: return string.format("%0" .. o2 .. "d", o1)
62e417ee6c 2024-02-10 45: end
62e417ee6c 2024-02-10 46: --~ 数
95b5664d69 2024-02-10 47: --~ 几位小数
5b9fb5e09f 2024-02-13 48: function s.几位小数(o1, o2)
95b5664d69 2024-02-10 49: return string.format("%." .. o2 .. "f", o1)
c3565d121c 2024-02-10 50: end
1903a27f17 2024-02-12 51: -- 正数与负数
95b5664d69 2024-02-10 52: --~ 数
5b9fb5e09f 2024-02-13 53: function s.正数(o1)
bd61a4ccbd 2024-02-12 54: if o1 >= 0 then
c3565d121c 2024-02-10 55: return o1
c3565d121c 2024-02-10 56: else
bd61a4ccbd 2024-02-12 57: return -o1
1903a27f17 2024-02-12 58: end
1903a27f17 2024-02-12 59: end
1903a27f17 2024-02-12 60: --~ 数
5b9fb5e09f 2024-02-13 61: function s.负数(o1)
1903a27f17 2024-02-12 62: if o1 >= 0 then
1903a27f17 2024-02-12 63: return -o1
1903a27f17 2024-02-12 64: else
1903a27f17 2024-02-12 65: return o1
c3565d121c 2024-02-10 66: end
c3565d121c 2024-02-10 67: end
c3565d121c 2024-02-10 68: -- 递加
c3565d121c 2024-02-10 69: do
c3565d121c 2024-02-10 70: local k1_0
c3565d121c 2024-02-10 71: --~ 数表
c3565d121c 2024-02-10 72: k1_0 = {}
5b9fb5e09f 2024-02-13 73: function s.递加(o1)
c3565d121c 2024-02-10 74: if k1_0[o1] then
c3565d121c 2024-02-10 75: else
c3565d121c 2024-02-10 76: k1_0[o1] = 0
c3565d121c 2024-02-10 77: end
c3565d121c 2024-02-10 78: k1_0[o1] = k1_0[o1] + 1
c3565d121c 2024-02-10 79: return k1_0[o1]
c3565d121c 2024-02-10 80: end
c3565d121c 2024-02-10 81: end
95b5664d69 2024-02-10 82: -- 最值
5b9fb5e09f 2024-02-13 83: function s.最大值()
95b5664d69 2024-02-10 84: return math.huge
95b5664d69 2024-02-10 85: end
5b9fb5e09f 2024-02-13 86: function s.最小值()
95b5664d69 2024-02-10 87: local k1
95b5664d69 2024-02-10 88: --~ 最大值
5b9fb5e09f 2024-02-13 89: k1 = s.最大值()
5b9fb5e09f 2024-02-13 90: return s.负数(k1)
95b5664d69 2024-02-10 91: end
95b5664d69 2024-02-10 92: --~ 数
5b9fb5e09f 2024-02-13 93: function s.是否最值(o1)
5b9fb5e09f 2024-02-13 94: if o1 == s.最大值()
5b9fb5e09f 2024-02-13 95: or o1 == s.最小值() then
95b5664d69 2024-02-10 96: return true
95b5664d69 2024-02-10 97: else
ed6d06d03d 2024-02-12 98: end
ed6d06d03d 2024-02-12 99: end
ed6d06d03d 2024-02-12 100: --~ 数
5b9fb5e09f 2024-02-13 101: function s.是否无效值(o1)
ed6d06d03d 2024-02-12 102: if o1 == o1 then
ed6d06d03d 2024-02-12 103: else
ed6d06d03d 2024-02-12 104: return true
95b5664d69 2024-02-10 105: end
95b5664d69 2024-02-10 106: end
ed6d06d03d 2024-02-12 107: --~ 数
5b9fb5e09f 2024-02-13 108: function s.是否错值(o1)
ed6d06d03d 2024-02-12 109: local k1, k2
ed6d06d03d 2024-02-12 110: --~ 是否最值
5b9fb5e09f 2024-02-13 111: k1 = s.是否最值(o1)
ed6d06d03d 2024-02-12 112: --~ 是否无效值
5b9fb5e09f 2024-02-13 113: k2 = s.是否无效值(o1)
ed6d06d03d 2024-02-12 114: return k1 or k2
ed6d06d03d 2024-02-12 115: end
5b9fb5e09f 2024-02-13 116: return s