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)
bd61a4ccbd 2024-02-12 61: end
bd61a4ccbd 2024-02-12 62: end
bd61a4ccbd 2024-02-12 63: -- 正数与负数
bd61a4ccbd 2024-02-12 64: function d.正数(o1)
bd61a4ccbd 2024-02-12 65: if o1 >= 0 then
bd61a4ccbd 2024-02-12 66: return o1
bd61a4ccbd 2024-02-12 67: else
bd61a4ccbd 2024-02-12 68: return -o1
ed6d06d03d 2024-02-12 69: end
ed6d06d03d 2024-02-12 70: end
c3565d121c 2024-02-10 71: -- 递加
c3565d121c 2024-02-10 72: do
c3565d121c 2024-02-10 73: local k1_0
c3565d121c 2024-02-10 74: --~ 数表
c3565d121c 2024-02-10 75: k1_0 = {}
c3565d121c 2024-02-10 76: function d.递加(o1)
c3565d121c 2024-02-10 77: if k1_0[o1] then
c3565d121c 2024-02-10 78: else
c3565d121c 2024-02-10 79: k1_0[o1] = 0
c3565d121c 2024-02-10 80: end
c3565d121c 2024-02-10 81: k1_0[o1] = k1_0[o1] + 1
c3565d121c 2024-02-10 82: return k1_0[o1]
c3565d121c 2024-02-10 83: end
95b5664d69 2024-02-10 84: end
95b5664d69 2024-02-10 85: -- 最值
95b5664d69 2024-02-10 86: function d.最大值()
95b5664d69 2024-02-10 87: return math.huge
95b5664d69 2024-02-10 88: end
95b5664d69 2024-02-10 89: function d.最小值()
95b5664d69 2024-02-10 90: local k1
95b5664d69 2024-02-10 91: --~ 最大值
95b5664d69 2024-02-10 92: k1 = d.最大值()
95b5664d69 2024-02-10 93: return d.负数(k1)
95b5664d69 2024-02-10 94: end
95b5664d69 2024-02-10 95: --~ 数
95b5664d69 2024-02-10 96: function d.是否最值(o1)
95b5664d69 2024-02-10 97: if o1 == d.最大值()
95b5664d69 2024-02-10 98: or o1 == d.最小值() then
95b5664d69 2024-02-10 99: return true
95b5664d69 2024-02-10 100: else
95b5664d69 2024-02-10 101: end
ed6d06d03d 2024-02-12 102: end
ed6d06d03d 2024-02-12 103: --~ 数
ed6d06d03d 2024-02-12 104: function d.是否无效值(o1)
ed6d06d03d 2024-02-12 105: if o1 == o1 then
ed6d06d03d 2024-02-12 106: else
ed6d06d03d 2024-02-12 107: return true
ed6d06d03d 2024-02-12 108: end
ed6d06d03d 2024-02-12 109: end
ed6d06d03d 2024-02-12 110: --~ 数
ed6d06d03d 2024-02-12 111: function d.是否错值(o1)
ed6d06d03d 2024-02-12 112: local k1, k2
ed6d06d03d 2024-02-12 113: --~ 是否最值
ed6d06d03d 2024-02-12 114: k1 = d.是否最值(o1)
ed6d06d03d 2024-02-12 115: --~ 是否无效值
ed6d06d03d 2024-02-12 116: k2 = d.是否无效值(o1)
ed6d06d03d 2024-02-12 117: return k1 or k2
420d28e057 2024-02-06 118: end
8dd55b61b6 2024-02-06 119: return d