注册 登录
发贴工具
查看: 14|回复: 0
打印 上一主题 下一主题

[发贴软件现成脚本] AIWROK软件数学方法集合小结

[复制链接]

2258

主题

2306

帖子

1万

积分

积分
13752
跳转到指定楼层
楼主
AIWROK软件数学方法集合小结

这段代码定义了一个名为数学的对象,该对象封装了一系列的数学函数和常量,适用于运行在Android设备上、使用Rhino 1.7.13版本的JavaScript引擎,并且遵循ES5标准。每个函数都有详细的注释说明其用途、参数和返回值。

  1. 常量定义:
    • __二为底的e的对数_二的平方根二的平方根的倒数十的自然对数算术常量e圆周率这些函数都返回JavaScript内置的数学常量,如Math.LOG2EMath.SQRT2等。
  1. 对数和指数函数:
    • e为底的自然对数:计算给定数字x的自然对数(底数为e),如果输入无效(非数字或小于等于0),则返回null
    • e的x次幂:计算e的x次幂,如果输入x无效(非数字),则返回null
  1. 三角函数:
    • x与y的弧度余弦正弦正切分别用于计算两个坐标点的弧度以及单一弧度值对应的余弦、正弦和正切值。
  1. 数值处理函数:
    • 上取整下取整取小数取整分别用于对数字进行上取整、下取整、取小数部分和取整数部分。
    • 保留小数位数用于将数字保留指定的小数位数。
    • 取最大值取最小值用于从一组数字中找出最大值和最小值。
    • 四舍五入用于将数字四舍五入到最接近的整数。
  1. 字符和数字转换函数:
    • 字符转数字将字符串转换为数字,如果字符串不能转换为数字,则返回null
    • 格式化长度将数字转换为字符串形式表示,无论输入的数字是否有小数部分。
  1. 高级数学函数:
    • 双曲正切值反余弦反正切反正弦分别用于计算双曲正切、反余弦、反正切和反正弦的值。
  1. 随机数生成函数:
    • 随机小数生成指定范围内的随机小数。
    • 随机整数生成指定范围内的随机整数。
    • 零至一随机数生成0到1之间的随机小数。
  1. 错误处理:
    • 每个函数都包含错误处理逻辑,确保在输入无效时返回null而不是抛出错误。
  1. Rhino环境下的导出:
    • 如果运行环境是Rhino,则将数学对象导出为全局对象,以便在其他脚本中使用。
  1. 测试用例:
    • 代码末尾包含了一系列测试用例,用于验证上述函数的正确性。通过调用函数并打印结果来检查函数是否按预期工作。

注意:在代码中,反正弦函数的实现有一个小错误,应该是if (typeof x !== "number" || isNaN(x) || x < -1 || x > 1),而不是if (typeof x === "number" || isNaN(x) || x < -1 || x > 1)。修正这个错误可以确保反正弦函数在输入无效时也能返回null

此外,还有一些格式化输出的函数,如转小数字符转指数计数法,用于将数字转换为特定格式的字符串。这些函数同样包含了错误处理,确保输入有效。


/**
* //适用本文档ES5系统安卓 JavaScript引擎Rhino
* 数学方法全集
* 运行环境: Android + Rhino 1.7.13 + ES5
*/

// 定义数学对象
var 数学 = {};

/**
* 二为底的e的对数
* @setting ROOT 代理激活 无障碍 键鼠硬件
* @returns {number} 返回二为底的e的对数
*/
数学.__二为底的e的对数 = function() {
return Math.LOG2E;
};

/**
* 二的平方根
* @setting ROOT 代理激活 无障碍 键鼠硬件
* @returns {number} 返回二的平方根
*/
数学._二的平方根 = function() {
return Math.SQRT2;
};

/**
* e为底的自然对数
* @setting ROOT 代理激活 无障碍 键鼠硬件
* @param {number} x - 要计算自然对数的数字
* @returns {number|null} 返回自然对数值或null
*/
数学.e为底的自然对数 = function(x) {
try {
if (typeof x !== "number" || isNaN(x) || x <= 0) return null;
return Math.log(x);
} catch (e) {
return null;
}
};

/**
* e的x次幂
* @setting ROOT 代理激活 无障碍 键鼠硬件
* @param {number} x - 指数
* @returns {number|null} 返回e的x次幂或null
*/
数学.e的x次幂 = function(x) {
try {
if (typeof x !== "number" || isNaN(x)) return null;
return Math.exp(x);
} catch (e) {
return null;
}
};

/**
* 计算x与y的弧度
* @setting ROOT 代理激活 无障碍 键鼠硬件
* @param {number} y - y坐标
* @param {number} x - x坐标
* @returns {number|null} 返回弧度值或null
*/
数学.x与y的弧度 = function(y, x) {
try {
if (typeof x !== "number" || typeof y !== "number" || isNaN(x) || isNaN(y)) return null;
return Math.atan2(y, x);
} catch (e) {
return null;
}
};

/**
* 上取整
* @setting ROOT 代理激活 无障碍 键鼠硬件
* @param {number} num - 要上取整的数字
* @returns {number|null} 返回上取整后的值或null
*/
数学.上取整 = function(num) {
try {
if (typeof num !== "number" || isNaN(num)) return null;
return Math.ceil(num);
} catch (e) {
return null;
}
};

/**
* 下取整
* @setting ROOT 代理激活 无障碍 键鼠硬件
* @param {number} num - 要下取整的数字
* @returns {number|null} 返回下取整后的值或null
*/
数学.下取整 = function(num) {
try {
if (typeof num !== "number" || isNaN(num)) return null;
return Math.floor(num);
} catch (e) {
return null;
}
};

/**
* 二的平方根的倒数
* @setting ROOT 代理激活 无障碍 键鼠硬件
* @returns {number} 返回二的平方根的倒数
*/
数学.二的平方根的倒数 = function() {
return Math.SQRT1_2;
};

/**
* 余弦
* @setting ROOT 代理激活 无障碍 键鼠硬件
* @param {number} x - 弧度值
* @returns {number|null} 返回余弦值或null
*/
数学.余弦 = function(x) {
try {
if (typeof x !== "number" || isNaN(x)) return null;
return Math.cos(x);
} catch (e) {
return null;
}
};

/**
* 保留小数位数
* @setting ROOT 代理激活 无障碍 键鼠硬件
* @param {number} num - 要处理的数字
* @param {number} digits - 保留的小数位数
* @returns {number|null} 返回处理后的数字或null
*/
数学.保留小数位数 = function(num, digits) {
try {
if (typeof num !== "number" || typeof digits !== "number" ||
isNaN(num) || isNaN(digits) || digits < 0) return null;
return Number(num.toFixed(digits));
} catch (e) {
return null;
}
};

/**
* 十的自然对数
* @setting ROOT 代理激活 无障碍 键鼠硬件
* @returns {number} 返回十的自然对数
*/
数学.十的自然对数 = function() {
return Math.LN10;
};

/**
* 双曲正切值
* @setting ROOT 代理激活 无障碍 键鼠硬件
* @param {number} x - 要计算双曲正切的数字
* @returns {number|null} 返回双曲正切值或null
*/
数学.双曲正切值 = function(x) {
try {
if (typeof x !== "number" || isNaN(x)) return null;
return Math.tanh(x);
} catch (e) {
return null;
}
};

/**
* 反余弦
* @setting ROOT 代理激活 无障碍 键鼠硬件
* @param {number} x - 要计算反余弦的数字
* @returns {number|null} 返回反余弦值或null
*/
数学.反余弦 = function(x) {
try {
if (typeof x !== "number" || isNaN(x) || x < -1 || x > 1) return null;
return Math.acos(x);
} catch (e) {
return null;
}
};

/**
* 反正切
* @setting ROOT 代理激活 无障碍 键鼠硬件
* @param {number} x - 要计算反正切的数字
* @returns {number|null} 返回反正切值或null
*/
数学.反正切 = function(x) {
try {
if (typeof x !== "number" || isNaN(x)) return null;
return Math.atan(x);
} catch (e) {
return null;
}
};

/**
* 反正弦
* @setting ROOT 代理激活 无障碍 键鼠硬件
* @param {number} x - 要计算反正弦的数字
* @returns {number|null} 返回反正弦值或null
*/
数学.反正弦 = function(x) {
try {
if (typeof x !== "number" || isNaN(x) || x < -1 || x > 1) return null;
return Math.asin(x);
} catch (e) {
return null;
}
};

/**
* 取小数部分
* @setting ROOT 代理激活 无障碍 键鼠硬件
* @param {number} num - 要取小数部分的数字
* @returns {number|null} 返回小数部分或null
*/
数学.取小数 = function(num) {
try {
if (typeof num !== "number" || isNaN(num)) return null;
return num - Math.floor(num);
} catch (e) {
return null;
}
};

/**
* 取整
* @setting ROOT 代理激活 无障碍 键鼠硬件
* @param {number} num - 要取整的数字
* @returns {number|null} 返回整数部分或null
*/
数学.取整 = function(num) {
try {
if (typeof num !== "number" || isNaN(num)) return null;
return Math.trunc(num);
} catch (e) {
return null;
}
};

/**
* 取最大值
* @setting ROOT 代理激活 无障碍 键鼠硬件
* @param {...number} nums - 要比较的数字
* @returns {number|null} 返回最大值或null
*/
数学.取最大值 = function() {
try {
if (arguments.length === 0) return null;
for (var i = 0; i < arguments.length; i++) {
if (typeof arguments !== "number" || isNaN(arguments)) return null;
}
return Math.max.apply(null, arguments);
} catch (e) {
return null;
}
};

/**
* 取最小值
* @setting ROOT 代理激活 无障碍 键鼠硬件
* @param {...number} nums - 要比较的数字
* @returns {number|null} 返回最小值或null
*/
数学.取最小值 = function() {
try {
if (arguments.length === 0) return null;
for (var i = 0; i < arguments.length; i++) {
if (typeof arguments !== "number" || isNaN(arguments)) return null;
}
return Math.min.apply(null, arguments);
} catch (e) {
return null;
}
};

/**
* 四舍五入
* @setting ROOT 代理激活 无障碍 键鼠硬件
* @param {number} num - 要四舍五入的数字
* @returns {number|null} 返回四舍五入后的值或null
*/
数学.四舍五入 = function(num) {
try {
if (typeof num !== "number" || isNaN(num)) return null;
return Math.round(num);
} catch (e) {
return null;
}
};

/**
* 圆周率
* @setting ROOT 代理激活 无障碍 键鼠硬件
* @returns {number} 返回圆周率
*/
数学.圆周率 = function() {
return Math.PI;
};

/**
* 字符转数字
* @setting ROOT 代理激活 无障碍 键鼠硬件
* @param {string} str - 要转换的字符串
* @returns {number|null} 返回转换后的数字或null
*/
数学.字符转数字 = function(str) {
try {
if (typeof str !== "string") return null;
var num = Number(str);
return isNaN(num) ? null : num;
} catch (e) {
return null;
}
};

/**
* 平方根
* @setting ROOT 代理激活 无障碍 键鼠硬件
* @param {number} num - 要计算平方根的数字
* @returns {number|null} 返回平方根或null
*/
数学.平方根 = function(num) {
try {
if (typeof num !== "number" || isNaN(num) || num < 0) return null;
return Math.sqrt(num);
} catch (e) {
return null;
}
};

/**
* 格式化长度
* @setting ROOT 代理激活 无障碍 键鼠硬件
* @param {number} num - 要格式化的数字
* @returns {string|null} 返回格式化后的字符串或null
*/
数学.格式化长度 = function(num) {
try {
if (typeof num !== "number" || isNaN(num)) return null;
return num.toString();
} catch (e) {
return null;
}
};

/**
* 正切
* @setting ROOT 代理激活 无障碍 键鼠硬件
* @param {number} x - 弧度值
* @returns {number|null} 返回正切值或null
*/
数学.正切 = function(x) {
try {
if (typeof x !== "number" || isNaN(x)) return null;
return Math.tan(x);
} catch (e) {
return null;
}
};

/**
* 正弦
* @setting ROOT 代理激活 无障碍 键鼠硬件
* @param {number} x - 弧度值
* @returns {number|null} 返回正弦值或null
*/
数学.正弦 = function(x) {
try {
if (typeof x !== "number" || isNaN(x)) return null;
return Math.sin(x);
} catch (e) {
return null;
}
};

/**
* 算术常量e
* @setting ROOT 代理激活 无障碍 键鼠硬件
* @returns {number} 返回算术常量e
*/
数学.算术常量e = function() {
return Math.E;
};

/**
* 绝对值
* @setting ROOT 代理激活 无障碍 键鼠硬件
* @param {number} num - 要计算绝对值的数字
* @returns {number|null} 返回绝对值或null
*/
数学.绝对值 = function(num) {
try {
if (typeof num !== "number" || isNaN(num)) return null;
return Math.abs(num);
} catch (e) {
return null;
}
};

/**
* 转小数字符
* @setting ROOT 代理激活 无障碍 键鼠硬件
* @param {number} num - 要转换的数字
* @param {number} [fractionDigits] - 小数位数
* @returns {string|null} 返回转换后的字符串或null
*/
数学.转小数字符 = function(num, fractionDigits) {
try {
if (typeof num !== "number" || isNaN(num)) return null;
return num.toFixed(fractionDigits);
} catch (e) {
return null;
}
};

/**
* 转指数计数法
* @setting ROOT 代理激活 无障碍 键鼠硬件
* @param {number} num - 要转换的数字
* @param {number} [fractionDigits] - 小数位数
* @returns {string|null} 返回转换后的字符串或null
*/
数学.转指数计数法 = function(num, fractionDigits) {
try {
if (typeof num !== "number" || isNaN(num)) return null;
return num.toExponential(fractionDigits);
} catch (e) {
return null;
}
};

/**
* 随机小数
* @setting ROOT 代理激活 无障碍 键鼠硬件
* @param {number} min - 最小值
* @param {number} max - 最大值
* @returns {number|null} 返回随机小数或null
*/
数学.随机小数 = function(min, max) {
try {
if (typeof min !== "number" || typeof max !== "number" || isNaN(min) || isNaN(max)) return null;
return Math.random() * (max - min) + min;
} catch (e) {
return null;
}
};

/**
* 随机整数
* @setting ROOT 代理激活 无障碍 键鼠硬件
* @param {number} min - 最小值
* @param {number} max - 最大值
* @returns {number|null} 返回随机整数或null
*/
数学.随机整数 = function(min, max) {
try {
if (typeof min !== "number" || typeof max !== "number" || isNaN(min) || isNaN(max)) return null;
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min + 1)) + min;
} catch (e) {
return null;
}
};

/**
* 零至一随机数
* @setting ROOT 代理激活 无障碍 键鼠硬件
* @returns {number} 返回0到1之间的随机数
*/
数学.零至一随机数 = function() {
return Math.random();
};

// Rhino环境下的导出
if (typeof Packages != "undefined") {
this["数学"] = 数学;
}

// ===== 测试用例 =====
printl("\n基础常量测试:");
printl("二为底的e的对数: " + 数学.__二为底的e的对数());
printl("二的平方根: " + 数学._二的平方根());
printl("二的平方根的倒数: " + 数学.二的平方根的倒数());

printl("\n对数和指数测试:");
printl("e的2次幂: " + 数学.e的x次幂(2));
printl("ln(10): " + 数学.e为底的自然对数(10));

printl("\n三角函数测试:");
printl("x与y的弧度(1,1): " + 数学.x与y的弧度(1, 1));
printl("cos(0): " + 数学.余弦(0));

printl("\n取整测试:");
printl("3.7上取整: " + 数学.上取整(3.7));
printl("3.7下取整: " + 数学.下取整(3.7));

printl("\n格式化测试:");
printl("3.14159保留2位小数: " + 数学.保留小数位数(3.14159, 2));

printl("\n高级数学函数测试:");
printl("十的自然对数: " + 数学.十的自然对数());
printl("双曲正切值(1): " + 数学.双曲正切值(1));
printl("反余弦(0.5): " + 数学.反余弦(0.5));
printl("反正切(1): " + 数学.反正切(1));
printl("反正弦(0.5): " + 数学.反正弦(0.5));

printl("\n数值处理测试:");
printl("3.14取小数: " + 数学.取小数(3.14));
printl("3.14取整: " + 数学.取整(3.14));
printl("最大值(1,2,3,4,5): " + 数学.取最大值(1,2,3,4,5));
printl("最小值(1,2,3,4,5): " + 数学.取最小值(1,2,3,4,5));
printl("3.5四舍五入: " + 数学.四舍五入(3.5));
printl("圆周率: " + 数学.圆周率());

printl("\n字符和数字转换测试:");
printl("字符转数字('123'): " + 数学.字符转数字('123'));
printl("平方根(16): " + 数学.平方根(16));
printl("格式化长度(3.14159): " + 数学.格式化长度(3.14159));

printl("\n三角函数测试:");
printl("正切(π/4): " + 数学.正切(Math.PI/4));
printl("正弦(π/2): " + 数学.正弦(Math.PI/2));

printl("\n常量和基本运算测试:");
printl("算术常量e: " + 数学.算术常量e());
printl("绝对值(-5): " + 数学.绝对值(-5));

printl("\n数字格式化测试:");
printl("转小数字符(3.14159, 2): " + 数学.转小数字符(3.14159, 2));
printl("转指数计数法(1234.5678, 2): " + 数学.转指数计数法(1234.5678, 2));

printl("\n随机数测试:");
printl("随机小数(0, 1): " + 数学.随机小数(0, 1));
printl("随机整数(1, 10): " + 数学.随机整数(1, 10));
printl("零至一随机数: " + 数学.零至一随机数());

printl("\n错误处理测试:");
printl("无效输入测试(e的x次幂): " + 数学.e的x次幂("abc"));
printl("无效输入测试(保留小数位数): " + 数学.保留小数位数(3.14, -1));
printl("无效输入测试(平方根): " + 数学.平方根(-1));
printl("无效输入测试(字符转数字): " + 数学.字符转数字("abc"));

AIWROK软件数学方法集合小结 群发软件发帖工具


untoAIWROK软件应用方法集合小结nextnocontent
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关导读了
    采集亚马逊正版群发工具有没有?
    Apr.20旅行X心语今天来说说YYPOST新功能的一个灵活用法,采集亚马逊商品信息,并且获得排名的软件,亚马逊现在越来越多客户做,淘宝的水是越来越清了,以前做电商的客户,现在都转战到外国,最赚钱的要数一些客户往亚马逊里堆了吧,拿我这个YYPOST的客户,最多的是采集,分析排名,刷价格,刷数量,改价,刷访问量等等技术

    企业发展B2B网站有什么东东软件可以发呢
    标题企业发展网B2B软件,现在虽然B2B网站收录不错,可愁的是心急的人们,他们太想一口吃撑胖子了,发帖宣传虽然不能像佛系那样淡定,但也不能像跑火车那般急躁对待,自己内容不收录,完全是自己操作内容问题,可以参考一下别人的内容是怎么弄的,然后自己要试着转变,而且收录这个内容,常常会变化的,不是一种规则就吃到老

    搜房天下房聊软件哪一个好呢
    本帖最后由 发帖软件 于 2019-5-22 16:15 编辑 2搜房天下群发房聊信息软件,开始本来打算做58同城的,但发一个就要一次点触验证码,这就让人没有感觉到存在的价值了吧,都是卖二手房和新房的搜房天下倒是可以发即时聊天信息,也没有发现他这个网站有啥子限制,登陆一个搜房天下账号,然后采集回来分类列表的网址,然后就一

    大家坛有没有好用的群发工具下载呢
    当你的笑容给我礼貌的招呼,大家坛全自动发帖软件,宣传推广是一场持久战,总是有一些人把软件用了一天,或是几个小时,就觉得自己付出太多了,那加进来的粉丝,或是流量,应该是和宣传多少成正比的,其实没有这么便宜的事,就像很多阅读量超过一百万的视频,或是电影,真正会在屏幕打赏的人不会超过三千,真正大额打赏给主

    群发正版软件中国塑料网
    中国塑料网群发软件YYPOST脚本下载地址,这个网站会有一个很奇怪的问题就是你在首页登陆无半个验证码,但在登陆网址登陆就会有一个验证码,所以我们灵活一些,在首页登陆就不用输入验证码了哈。网站秒收录比较高,但发的都是五金和建筑行业,先前有很多人都是发土建工程的大公司操作的,现在这个网站专为那个行业诞生的吧。

    OpenStreetMap网站正版2019年发帖工具下载
    本帖最后由 发帖软件 于 2019-5-21 11:13 编辑 OpenStreetMap网站全自动群发,OpenStreetMapOpenStreetMap(简称OSM,中文是公开地图)是一个网上地图协作计划,目标是创造一个内容自由且能让所有人编辑的世界地图。有的人编辑地图然后等收录,有的人发日志等收录,我们这里也是利用地图日志做为宣传的目标,简单的脚本理

    搜房天下全自动收短信全自动识别验证码注册账号软件
    房天下自动注册机,这个脚本是前几天发房聊的脚本廷伸品种,这个脚本能做到自动注册账号,自动保存账号,自动发房聊的效果,不过今天我们主要说一说怎么注册账号写脚本吧,这个搜房天天下的账号,可以发提问,可以发房聊,发论坛,发博客,还有发个人中心页都是有秒收的效果的,这样就省去了去买号,去乱花钱的效果了吧,而

    企业邮箱安卓端有什么APP软件可以发的呢
    请输入标题企业邮箱安卓发发送邮箱脚本,这个脚本是利用企业邮箱进行群发的,全程是一种模拟手工操作的过程,所以封号是很少的,而且企业邮箱群发到普通QQ邮箱不容易进垃圾箱中的,所以这个脚本也是这样的原理,不过最好是利用一些多开器,登陆多点的QQ邮箱账号会比较流畅一些,然后用软件一个一个的切换APP进行群发邮件会

    头条留评论软件有没有好用的呢?
    今天整一个今日头条留言软件,对于留言YYPOST是优势是比较大的存在,因为他往往专注一些下拉定位的优点,像今日头条这样,还是需要一些特殊下拉定位的,因为他新闻有长有短,有图有视频的,所以综合起来定位是比较难的,如果用POST也不是很轻松可以破解他的加密参数。这个脚本也是有一个不好的地方就是换号会比较麻烦,您电

    单网页生成神器
    最近新技术,网页生成机占领了整个网络的半壁江山,效果很疯狂,虽然不知道能持续多久,作为开发软件的领头者,一直在找收录的方法,一直在努力创新着,一直被人模仿,却从没有被超越过,这个网页生成机,已经出来有一段时间了,一直没有拿出来分享,醉过醉过,它是利用的一些小小收录漏洞整的,您最好用一些老站域名,进行

关闭
快速回复 返回列表 返回顶部
本站自动发贴软件,是现在最流行的做脚本软件,这种发贴工具,不但发贴收录快,而且抢占好的先机,完全自由编辑,实现针对性群发模拟操作,软件可以顶贴,也可以发贴,可以兼容支持Discuz、PHPWind、Dvbbs三大主流论坛,有手机验证码收件,邮件收发的功能,支持验证码识别,注册问题识别,多线程任务,自动上传头像,自动激活注册邮件,兼容防注册插件,本站软件原创正版,更新效率最快的原创软件。 『网络推广软件』『自动发帖软件』『 自动发帖