首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >PHP从答案生成数学方程

PHP从答案生成数学方程
EN

Stack Overflow用户
提问于 2017-11-17 19:57:40
回答 1查看 1.8K关注 0票数 0

我需要一个用PHP编写的函数来使用答案生成一个简单的数学方程。例如:

输入:

代码语言:javascript
运行
AI代码解释
复制
6688650

输出:(或类似的东西)

代码语言:javascript
运行
AI代码解释
复制
75 * 34 * (1 * (43 * 61)) 

输入:

代码语言:javascript
运行
AI代码解释
复制
249366

输出:(或类似的东西)

代码语言:javascript
运行
AI代码解释
复制
(((99 + 87) + 95 * 99) * 26)

我想出了这个素因子发生器,但是我需要一种方法把这些因素转化成像(((99 + 87) + 95 * 99) * 26)这样的方程。

代码语言:javascript
运行
AI代码解释
复制
function primefactor($num) {
    $sqrt = sqrt($num);
    for ($i = 2; $i <= $sqrt; $i++) {
        if ($num % $i == 0) {
            return array_merge(primefactor($num/$i), array($i));
        }
    }
    return array($num);
}

用一个数字发生器:

代码语言:javascript
运行
AI代码解释
复制
do {
    $num = mt_rand(6542,89523498);

} while (is_prime($num) & count(primefactor($num)) > 5);

这让我不得不说:

代码语言:javascript
运行
AI代码解释
复制
Original: 78973465
Array ( [0] => 349 [1] => 271 [2] => 167 [3] => 5 )
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-17 20:14:23

概念

  1. 将整数转换为素因子数组。
  2. 您可以组合您的主要因素,但您选择生成一个方程。但是,这不是一个1:1函数(除非数字是素数)。所以,你可以创造性地把这些数字组合在一起。

在这个实现中,我决定产生随机加法,并将素数组合成同素.

备注

创建一种有效的素数分解方法会使问题变得更加复杂。我在这里写了一个非常简单的,很有可能,它将适合你的需要。但是,如果您需要一种更快的方法(或者您正在处理的是大得多的数字或更多的数字),那么您可能需要进行一些独立的研究。我搜索了一下,这一建议出现了。

代码

代码语言:javascript
运行
AI代码解释
复制
<?php

$n = 6688650;

//generates a list of all factors
function primefactor($num) {
    $sqrt = sqrt($num);
    for ($i = 2; $i <= $sqrt; $i++) {
        if ($num % $i == 0) {
            return array_merge(primefactor($num/$i), array($i));
        }
    }
    return array($num);
}

//generates multiplication equation
//  Let's scramble those numbers

$factors = primefactor($n);

//let's randomly combine some of our prime factors
for ($i = 0, $len = count($factors); $i < $len; $i++) {
  if (mt_rand(0,1)) {
    $keys = array_rand($factors,2);
    $to = $factors[$keys[0]]*$factors[$keys[1]];
    array_push($factors, $to);
    unset($factors[$keys[0]]);
    unset($factors[$keys[1]]);
  }
}

//now, let's insert some random addition
foreach ($factors as $key => $value) {
  if (mt_rand(0,1)) {
    $delta = mt_rand(1,$factors[$key]-1);
    $factors[$key] = '(' . ($value-$delta) . '+' . $delta . ')';
  }
}

//output the information
$myValues = array_values($factors);
shuffle($myValues);
echo join('*',$myValues);

?>

一些产出

代码语言:javascript
运行
AI代码解释
复制
5185*(145+1145)
3*(59+27)*(23+62)*(269+36)
1462*(26+35)*5*5*(2+1)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47362338

复制
相关文章
【组合数学】生成函数 ( 使用生成函数求解不定方程解个数 )
不定方程解的个数 , 推导过程参考 : 【组合数学】排列组合 ( 多重集组合数 | 所有元素重复度大于组合数 | 多重集组合数 推导 1 分割线推导 | 多重集组合数 推导 2 不定方程非负整数解个数推导 ) 二、多重集组合 所有元素重复度大于组合数 推导 2 ( 不定方程非负整数解个数推导 )
韩曙亮
2023/03/28
7190
【组合数学】生成函数 ( 生成函数应用场景 | 使用生成函数求解递推方程 )
不定方程的解个数 , 之前只能求解 没有约束的情况 , 如果对变量有约束 , 如
韩曙亮
2023/03/28
1.4K0
【组合数学】生成函数 ( 生成函数应用场景 | 使用生成函数求解递推方程 )
【组合数学】递推方程 ( 递推方程示例 1 | 列出递推方程 )
位长的编码 , 后面加上一位数字 , 使得最终的编码 满足 有效编码的要求 , 即含有偶数个
韩曙亮
2023/03/28
1K0
【组合数学】生成函数 ( 使用生成函数求解不定方程解个数示例 )
文章目录 一、使用生成函数求解不定方程解个数示例 参考博客 : 【组合数学】生成函数 简要介绍 ( 生成函数定义 | 牛顿二项式系数 | 常用的生成函数 | 与常数相关 | 与二项式系数相关 | 与多项式系数相关 ) 【组合数学】生成函数 ( 线性性质 | 乘积性质 ) 【组合数学】生成函数 ( 移位性质 ) 【组合数学】生成函数 ( 求和性质 ) 【组合数学】生成函数 ( 换元性质 | 求导性质 | 积分性质 ) 【组合数学】生成函数 ( 性质总结 | 重要的生成函数 ) ★ 【组合数学】生成函数 ( 生
韩曙亮
2023/03/28
4610
考研(大学)数学 ​微分方程(3)
微分方程(3) 第四节 高阶微分方程 ---- 4.1 高阶齐次线性微分方程 4.1.1 高阶齐次微分方程的基本概念 1.n阶齐次线性微分方程的定义 例如 y^{n}+a_{1}(x)y^{n-1}+\dotsb+a_{n-1}(x)y^{'}+a_{n}(x)y=0 \qquad (1) 称为n阶齐次线性微分方程 2.n阶非齐次线性微分方程的定义 例如 y^{n}+a_{1}(x)y^{n-1}+\dotsb+a_{n-1}(x)y^{'}+a_{n}(x)y=f(x) \qquad (2) 称为n阶非齐
用户9628320
2022/11/14
5790
【高等数学】【8】微分方程
【高等数学】【8】微分方程 1. 微分方程的基本概念 1.1 微分方程 2.可分离变量的微分方程 3. 齐次方程 4.一阶线性微分方程 4.1 线性方程 5. 可降阶的高阶微分方程 6. 高阶线性微分方程 7. 常系数齐次线性微分方程 8. 常系数非齐次线性微分方程 1. 微分方程的基本概念 1.1 微分方程 2.可分离变量的微分方程 例子👇 3. 齐次方程 4.一阶线性微分方程 4.1 线性方程 5. 可降阶的高阶微分方程 6. 高阶线性微分方程
司六米希
2022/11/15
3850
【高等数学】【8】微分方程
考研(大学)数学 ​微分方程(1)
前两题是关于常微分方程的特殊方法,一个是凑微分,另外一个利用导数的除法公式;化成常见的方程,例如一阶齐次线性微分方程和一阶非齐次线性微分方程,再利用初始条件,得出解;后面两题是关于缺
用户9628320
2022/11/14
4600
数学|如何求解线性方程系数?
线性方程在生活的出现的比例很高,很多地方都可以出现它的身影。这些方程都是通过对实际数据的分析处理得来的,那么这些方程到底该如何确定呢?就像下面的散点图,如何通过它得到一个线性方程?
算法与编程之美
2020/04/15
1.1K0
数控中的数学——方程组
数控编程、车铣复合、普车加工、行业前沿、机械视频,生产工艺、加工中心、模具、数控等前沿资讯在这里等你哦
lrglu
2023/09/07
1970
数控中的数学——方程组
【组合数学】递推方程 ( 递推方程内容概要 | 递推方程定义 | 递推方程示例说明 | 斐波那契数列 )
文章目录 一、递推方程 内容概要 二、递推方程 定义 三、递推方程 示例 四、斐波那契数列 ( Fibnacci ) 一、递推方程 内容概要 ---- 递推方程 内容概要 : 递推方程定义 递推方程实例 常系数线性递推方程 常系数线性递推方程定义 公式解法 递推方程在计数问题中的应用 二、递推方程 定义 ---- 序列 a_0 , a_1 , \cdots , a_n , \cdots , 记做 \{a_n\} , 将 a_n 与 某些 a_i \ \ ( i < n ) 联系起来的等式
韩曙亮
2023/03/28
8670
数学——Euler方法求解微分方程详解
用Euler算法求解初值问题 \[ \frac{dy}{dx}=y+\frac{2x}{y^2}\] 初始条件\(y(0)=1\),自变量的取值范围\(x \in [0, 2]\)
py3study
2020/01/22
2.4K0
LeetCode 441. 排列硬币(数学解方程)
你总共有 n 枚硬币,你需要将它们摆成一个阶梯形状,第 k 行就必须正好有 k 枚硬币。
Michael阿明
2020/07/13
4360
【组合数学】递推方程 ( 递推方程示例 2 汉诺塔 | 递推方程示例 3 插入排序 )
解法参考 : 【组合数学】递推方程 ( 特特解示例 ) 一、特解示例 1 ( 汉诺塔 )
韩曙亮
2023/03/28
5280
数学--数论--POJ281(线性同余方程)
埃琳娜(Elina)正在阅读刘如家(Rujia Liu)写的书,其中介绍了一种表达非负整数的奇怪方法。方式描述如下: 选择k个不同的正整数a 1,a 2,…,a k。对于一些非负米,把它由每一个我(1≤ 我 ≤ ķ)找到其余ř 我。如果一个1,一个2,…,一个ķ适当地选择,M可以是确定的,则对(一个我,- [R 我)可被用来表达米。
风骨散人Chiam
2020/11/06
3740
【组合数学】递推方程 ( 有重根递推方程求解问题 | 问题提出 )
有些 递推方程 的 特征方程 的 特征根 有 重根 的情况 , 特征方程解出来的 特征根有一部分是相等的 , 这样就使得 通解中的常数无法获取唯一的值 ;
韩曙亮
2023/03/28
6940
【组合数学】生成函数 ( 使用生成函数求解不定方程解个数示例 2 | 扩展到整数解 )
文章目录 一、使用生成函数求解不定方程解个数示例 参考博客 : 【组合数学】生成函数 简要介绍 ( 生成函数定义 | 牛顿二项式系数 | 常用的生成函数 | 与常数相关 | 与二项式系数相关 | 与多项式系数相关 ) 【组合数学】生成函数 ( 线性性质 | 乘积性质 ) 【组合数学】生成函数 ( 移位性质 ) 【组合数学】生成函数 ( 求和性质 ) 【组合数学】生成函数 ( 换元性质 | 求导性质 | 积分性质 ) 【组合数学】生成函数 ( 性质总结 | 重要的生成函数 ) ★ 【组合数学】生成函数 ( 生
韩曙亮
2023/03/28
5110
【组合数学】递推方程 ( 通解定义 | 无重根下递推方程通解结构定理 )
如果有些不同的初值 , 不遵循上述模式 , 那该解就 不能作为 所有的 该族 递推方程 的解的通用格式 ;
韩曙亮
2023/03/28
4720
数学建模暑期集训5:matlab求解常微分方程/偏微分方程
功能函数:ode45,ode23,ode113 例:用RK方法(四阶龙格—库塔方法)求解方程 f=-2y+2x^2+2*x
zstar
2022/06/14
1.2K0
数学建模暑期集训5:matlab求解常微分方程/偏微分方程
离散数学谓词逻辑答案_离散数学逻辑符号
在研究命题逻辑中,原子命题是命题演算中最基本的单位,不再对原子命题进行分解,这样会产生两大缺点:
全栈程序员站长
2022/09/20
1.5K0
离散数学谓词逻辑答案_离散数学逻辑符号
php 数学函数集锦
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/105859.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/09
2740

相似问题

PHP数学方程

50

PHP数学方程函数

32

java脚本显示错误答案的数学方程

35

HTML -检查随机数学方程的正确答案

12

随机生成方程及答案

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文