您现在的位置是:首页 >技术教程 >PHP加强版算法API网站首页技术教程

PHP加强版算法API

沐晨API 2025-04-10 00:01:03
简介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; // 无效操作

    }

}

?>

 

 

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。