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
8dd55b61b6 2024-02-06 5: local d = {}
47e0a87646 2024-02-10 6: -- 指数
82138b1e52 2024-02-06 7: --~ 左加数
82138b1e52 2024-02-06 8: --~ 右加数
47e0a87646 2024-02-10 9: function d.指数(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: --~ 指数底
62e417ee6c 2024-02-10 22: function d.指数次(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: --~ 数
95b5664d69 2024-02-10 29: function d.二底指数次(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
47e0a87646 2024-02-10 35: -- 向上取整和向下取整
47e0a87646 2024-02-10 36: --~ 数
47e0a87646 2024-02-10 37: function d.向下取整(o1)
47e0a87646 2024-02-10 38: return math.floor(o1)
62e417ee6c 2024-02-10 39: end
95b5664d69 2024-02-10 40: -- 几位整数和几位小数
62e417ee6c 2024-02-10 41: --~ 数
62e417ee6c 2024-02-10 42: --~ 几位整数
62e417ee6c 2024-02-10 43: function d.几位整数(o1, o2)
62e417ee6c 2024-02-10 44: return string.format("%0" .. o2 .. "d", o1)
95b5664d69 2024-02-10 45: end
95b5664d69 2024-02-10 46: --~ 数
95b5664d69 2024-02-10 47: --~ 几位小数
95b5664d69 2024-02-10 48: function d.几位小数(o1, o2)
95b5664d69 2024-02-10 49: return string.format("%." .. o2 .. "f", o1)
47e0a87646 2024-02-10 50: end
47e0a87646 2024-02-10 51: --~ 数
47e0a87646 2024-02-10 52: function d.负数(o1)
47e0a87646 2024-02-10 53: return -o1
47e0a87646 2024-02-10 54: end
47e0a87646 2024-02-10 55: -- 绝对值
47e0a87646 2024-02-10 56: function d.绝对值(o1)
47e0a87646 2024-02-10 57: if o1 > 0 then
47e0a87646 2024-02-10 58: return o1
47e0a87646 2024-02-10 59: else
47e0a87646 2024-02-10 60: return d.负数(o1)
c3565d121c 2024-02-10 61: end
c3565d121c 2024-02-10 62: end
c3565d121c 2024-02-10 63: -- 递加
c3565d121c 2024-02-10 64: do
c3565d121c 2024-02-10 65: local k1_0
c3565d121c 2024-02-10 66: --~ 数表
c3565d121c 2024-02-10 67: k1_0 = {}
c3565d121c 2024-02-10 68: function d.递加(o1)
c3565d121c 2024-02-10 69: if k1_0[o1] then
c3565d121c 2024-02-10 70: else
c3565d121c 2024-02-10 71: k1_0[o1] = 0
c3565d121c 2024-02-10 72: end
c3565d121c 2024-02-10 73: k1_0[o1] = k1_0[o1] + 1
c3565d121c 2024-02-10 74: return k1_0[o1]
95b5664d69 2024-02-10 75: end
95b5664d69 2024-02-10 76: end
95b5664d69 2024-02-10 77: -- 最值
95b5664d69 2024-02-10 78: function d.最大值()
95b5664d69 2024-02-10 79: return math.huge
95b5664d69 2024-02-10 80: end
95b5664d69 2024-02-10 81: function d.最小值()
95b5664d69 2024-02-10 82: local k1
95b5664d69 2024-02-10 83: --~ 最大值
95b5664d69 2024-02-10 84: k1 = d.最大值()
95b5664d69 2024-02-10 85: return d.负数(k1)
95b5664d69 2024-02-10 86: end
95b5664d69 2024-02-10 87: --~ 数
95b5664d69 2024-02-10 88: function d.是否最值(o1)
95b5664d69 2024-02-10 89: if o1 == d.最大值()
95b5664d69 2024-02-10 90: or o1 == d.最小值() then
95b5664d69 2024-02-10 91: return true
95b5664d69 2024-02-10 92: else
47e0a87646 2024-02-10 93: end
420d28e057 2024-02-06 94: end
8dd55b61b6 2024-02-06 95: return d