php 正则表达式解二元方程式

 代码如下 复制代码

<?php

/**
 * 计算 Ax+By=C
 */
function suan($A, $B, $C) {
 $A--;
 $B--;
 $str = str_repeat('-', $C);
 $search = '/^(.*)1{' . $A . '}(.*)2{' . $B . '}$/';
 preg_match($search, $str, $r);
 return array('x' => strlen($r[1]), 'y' => strlen($r[2]));
}

$A = 2;
$B = 3;
$C = 9;
$r = suan($A, $B, $C);

// 测试
echo '计算' . $A . 'x+' . $B . 'y=' . $C . '<br />';
echo 'x=' . ($r[x]) . '<br />';
echo 'y=' . ($r[y]);

// 输出
// 计算2x+3y=9
// x=3
// y=1

?>

时间: 2024-11-20 14:56:18

php 正则表达式解二元方程式的相关文章

正则表达式解二元方程式代码_正则表达式

原文:http://blog.stevenlevithan.com/archives/algebra-with-regexes我照着原文写出的正则还真的计算出了结果.上php例子: 复制代码 代码如下: <?php/** * 计算 Ax+By=C */function suan($A, $B, $C) { $A--; $B--; $str = str_repeat('-', $C); $search = '/^(.*)\1{' . $A . '}(.*)\2{' . $B . '}$/'; pr

正则表达式解二元方程式代码

原文:http://blog.stevenlevithan.com/archives/algebra-with-regexes我照着原文写出的正则还真的计算出了结果.上php例子:复制代码 代码如下:<?php/** * 计算 Ax+By=C */function suan($A, $B, $C) { $A--; $B--; $str = str_repeat('-', $C); $search = '/^(.*)\1{' . $A . '}(.*)\2{' . $B . '}$/'; preg

用python解三元方程式

下午群友们上了一个题,下面贴上来图: 只不过了一会,各路大神的答案开始喷涌出来,下面贴下各种答案: 1: for i in {111..999..111} 2: do 3: 4:         for j in {1..9..1} 5:         do 6:         c=`expr $i / $j` 7: 8:         pd=`echo  $i $j $c` 9:         sz=`echo $pd | awk '{print $0 ,substr($3,1,1)}

C语言实现输入一颗二元查找树并将该树转换为它的镜像_C 语言

本文实例讲述了C语言实现输入一颗二元查找树并将该树转换为它的镜像的方法,分享给大家供大家参考.具体实现方法如下: 采用递归方法实现代码如下: /* * Copyright (c) 2011 alexingcool. All Rights Reserved. */ #include <iostream> #include <iterator> #include <algorithm> using namespace std; struct Node { Node(int

一波C语言二元查找树算法题目解答实例汇总_C 语言

按层次遍历二元树问题描述:输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印.  例如输入: 8 / / 6 10 / / / / 5 7 9 11 输出 8 6 10 5 7 9 11           定义二元树(其实是二元搜索树,但并不遍历算法)的结点为: struct BSTreeNode { int value; BSTreeNode *left; BSTreeNode *right; };       思路:利用队列的先进先出,很容易实现.每次取出队列的首

艾伟也谈项目管理,软件架构引言之项目管理的问题

软件架构引言之项目管理的问题   很多朋友都有过或者正在管理一个或者多个软件项目,那么我的文章就从这个问题开始:如果单纯从表象来说,软件项目管理过程中暴露的最大问题是什么?   不同的人的会有不同的答案,但是大致这样的答案我想大部分人都是会认可的,那就是"进度拖延".进度拖延当然是表象之一了,其他诸如质量不过关.功能不完整等等,我觉得都是和进度拖延密切相关的.很多项目经理都想去做那些认为是十分必要的事情,比如计划.测试等,但是"没有时间".为什么会没有时间?等到项目

poj 3117 World Cup

题目大意很简单:一场足球赛中,若果双方平手的话,那么双方各得一分,否则,赢的一方得3分,输的一方不得分.输入比赛的数量t和各队的得分,求出结果为平局的比赛的数量.其实这是一道很简单的数学题,就是解二元一次方程组.先求出各队得分的总和sum,设不是平局的数量为X,平局的数量为Y,则可得方程组: 3X + 2Y = sum:X + Y = t(t为比赛的总数量)解之得:Y = 3t - sum 我居然开始还想错了,用  printf("%d\n",t*n-totscore);  这说明好脑

Node.js的回调问题

Node.js需要按顺序执行异步逻辑时一般采用后续传递风格,也就是将后续逻辑封装在回调函数中作为起始函数的参数,逐层嵌套.这种风格虽然可以提高CPU利用率,降低等待时间,但当后续逻辑步骤较多时会影响代码的可读性,结果代码的修改维护变得很困难.根据这种代码的样子,一般称其为"callback hell"或"pyramid of doom",本文称之为回调大坑,嵌套越多,大坑越深. 坑的起源 后续传递风格 为什么会有坑?这要从后续传递风格(continuation-pa

姚期智:呼之欲出的量子计算机,和它漫长的最后一英里(全文)

11月4日,中国科学院院士.量子计算专家.图灵奖获得者姚期智在腾讯WE大会的五周年论坛上远程发布了最新演讲.姚期智用RSA的密码系统作例子说明了量子计算机的巨大潜力:"用400位数的整数来做一个密钥的话,用现在的超级计算机需要60万年才能做出来.但是如果在将来有了一个量子计算机三个钟头就可以做出来." 接下来,姚期智简洁且有深度的为现场听众讲解了量子计算的原理,以及它距离诞生的最后一英里为何如此漫长.他把"量子计算"和"人工智能"称为未来两大最令