您现在的位置是:首页 >技术教程 >PHP加强版算法API网站首页技术教程
PHP加强版算法API
*作者:沐晨网络科技
*源码:加强版算法
*官方群:706032600
*沐晨API:https://mcapi.muwl.xyz/
*介绍↓
*纯PHP代码计算,不对接任何外部库以及API
*支持计算(加减乘除,一元二次,线性方程,计算正弦值,计算自然对数,微积分)
拿了记得点赞记得评论666(ಡωಡ),沐晨API开源全部免费
加强版算法API示例
加法
http://api.muwl.xyz/suan/?operation=add&num1=5&num2=3
减法
http://api.muwl.xyz/suan/?operation=subtract&num1=5&num2=3
乘法
http://api.muwl.xyz/suan/?operation=multiply&num1=5&num2=3
除法
http://api.muwl.xyz/suan/?operation=divide&num1=5&num2=3
解一元二次方程
http://api.muwl.xyz/suan/?operation=solve_quadratic&a=1&b=-3&c=2
解线性方程
http://api.muwl.xyz/suan/?operation=solve_linear_system&a1=2&b1=3&c1=8&a2=1&b2=-1&c2=1
计算正弦值
http://api.muwl.xyz/suan/?operation=sin&angle=30
计算自然对数
http://api.muwl.xyz/suan/?operation=log&value=10
以下是微积分计算示例↓
【求导数示例】
假设求函数 f(x) = x^2 的导数
http://api.muwl.xyz/suan/?operation=derivative&function=x^2
假设求函数 f(x) = sin(x) 的导数
http://api.muwl.xyz/suan/?operation=derivative&function=sin(x)
假设求函数 f(x) = e^x 的导数
http://api.muwl.xyz/suan/?operation=derivative&function=exp(x)
【求不定积分】
假设求函数 f(x) = x^2 的不定积分。
http://api.muwl.xyz/suan/?operation=integral&function=x^2
假设求函数 f(x) = sin(x) 的不定积分。
http://api.muwl.xyz/suan/?operation=integral&function=sin(x)
假设求函数 f(x) = cos(x) 的不定积分。
http://api.muwl.xyz/suan/?operation=integral&function=cos(x)
代码如下
<?php
// calculator.php
// 设置响应头为JSON格式
header('Content-Type: application/json');
// 检查是否是GET请求
if ($_SERVER['REQUEST_METHOD'] !== 'GET') {
echo json_encode(['error' => 'Only GET requests are allowed']);
exit;
}
// 获取GET请求的参数
$input = $_GET;
// 检查输入是否有效
if (empty($input) || !isset($input['operation'])) {
echo json_encode(['error' => 'Invalid input. Please provide operation.']);
exit;
}
// 提取输入参数
$operation = $input['operation'];
// 根据操作类型处理不同的计算
switch ($operation) {
case 'add':
case 'subtract':
case 'multiply':
case 'divide':
if (!isset($input['num1']) || !isset($input['num2'])) {
echo json_encode(['error' => 'Invalid input. Please provide num1 and num2.']);
exit;
}
$num1 = floatval($input['num1']);
$num2 = floatval($input['num2']);
$result = calculate($operation, $num1, $num2);
break;
case 'solve_quadratic':
if (!isset($input['a']) || !isset($input['b']) || !isset($input['c'])) {
echo json_encode(['error' => 'Invalid input. Please provide a, b, and c.']);
exit;
}
$a = floatval($input['a']);
$b = floatval($input['b']);
$c = floatval($input['c']);
$result = solveQuadratic($a, $b, $c);
break;
case 'solve_linear_system':
if (!isset($input['a1']) || !isset($input['b1']) || !isset($input['c1']) ||
!isset($input['a2']) || !isset($input['b2']) || !isset($input['c2'])) {
echo json_encode(['error' => 'Invalid input. Please provide a1, b1, c1, a2, b2, c2.']);
exit;
}
$a1 = floatval($input['a1']);
$b1 = floatval($input['b1']);
$c1 = floatval($input['c1']);
$a2 = floatval($input['a2']);
$b2 = floatval($input['b2']);
$c2 = floatval($input['c2']);
$result = solveLinearSystem($a1, $b1, $c1, $a2, $b2, $c2);
break;
case 'sin':
case 'cos':
case 'tan':
if (!isset($input['angle'])) {
echo json_encode(['error' => 'Invalid input. Please provide angle.']);
exit;
}
$angle = floatval($input['angle']);
$result = calculateTrigonometric($operation, $angle);
break;
case 'log':
case 'exp':
if (!isset($input['value'])) {
echo json_encode(['error' => 'Invalid input. Please provide value.']);
exit;
}
$value = floatval($input['value']);
$result = calculateLogExp($operation, $value);
break;
case 'derivative':
case 'integral':
if (!isset($input['function'])) {
echo json_encode(['error' => 'Invalid input. Please provide function.']);
exit;
}
$function = $input['function'];
$result = calculateCalculus($operation, $function);
break;
default:
echo json_encode(['error' => 'Invalid operation.']);
exit;
}
// 检查结果是否有效
if ($result === null) {
echo json_encode(['error' => 'Invalid operation or division by zero.']);
} else {
echo json_encode(['result' => $result]);
}
// 定义一个简单的计算函数
function calculate($operation, $num1, $num2) {
switch ($operation) {
case 'add':
return $num1 + $num2;
case 'subtract':
return $num1 - $num2;
case 'multiply':
return $num1 * $num2;
case 'divide':
if ($num2 == 0) {
return null; // 防止除以零
}
return $num1 / $num2;
default:
return null; // 无效操作
}
}
// 定义解一元二次方程的函数
function solveQuadratic($a, $b, $c) {
$discriminant = $b**2 - 4*$a*$c;
if ($discriminant < 0) {
return null; // 无实数解
} else {
$root1 = (-$b + sqrt($discriminant)) / (2*$a);
$root2 = (-$b - sqrt($discriminant)) / (2*$a);
return [$root1, $root2];
}
}
// 定义解线性方程组的函数
function solveLinearSystem($a1, $b1, $c1, $a2, $b2, $c2) {
$determinant = $a1 * $b2 - $a2 * $b1;
if ($determinant == 0) {
return null; // 无解或无穷多解
}
$x = ($c1 * $b2 - $c2 * $b1) / $determinant;
$y = ($a1 * $c2 - $a2 * $c1) / $determinant;
return ['x' => $x, 'y' => $y];
}
// 定义计算三角函数的函数
function calculateTrigonometric($operation, $angle) {
switch ($operation) {
case 'sin':
return sin(deg2rad($angle));
case 'cos':
return cos(deg2rad($angle));
case 'tan':
return tan(deg2rad($angle));
default:
return null; // 无效操作
}
}
// 定义计算对数和指数的函数
function calculateLogExp($operation, $value) {
switch ($operation) {
case 'log':
return log($value);
case 'exp':
return exp($value);
default:
return null; // 无效操作
}
}
// 定义计算微积分的函数
function calculateCalculus($operation, $function) {
// 简单的符号计算,仅支持基本函数
$function = strtolower($function);
switch ($operation) {
case 'derivative':
// 示例:求导数
if ($function === 'x^2') {
return '2x';
} elseif ($function === 'sin(x)') {
return 'cos(x)';
} elseif ($function === 'cos(x)') {
return '-sin(x)';
} elseif ($function === 'exp(x)') {
return 'exp(x)';
} elseif ($function === 'log(x)') {
return '1/x';
} else {
return 'Unsupported function';
}
case 'integral':
// 示例:不定积分
if ($function === 'x^2') {
return '(1/3)x^3 + C';
} elseif ($function === 'sin(x)') {
return '-cos(x) + C';
} elseif ($function === 'cos(x)') {
return 'sin(x) + C';
} elseif ($function === 'exp(x)') {
return 'exp(x) + C';
} elseif ($function === '1/x') {
return 'log(x) + C';
} else {
return 'Unsupported function';
}
default:
return null; // 无效操作
}
}
?>