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