参考文章:
http://coolshell.cn/articles/2704.html
http://www.programcreek.com/2013/10/top-10-questions-for-java-regular-expression/
java里用正则表达式判断是否素数:
public static boolean prime(int n) {
return !new String(new char[n]).matches(".?|(..+?)\\1+");
}
还可以解方程:
public static void sovleLinearEquation(int result, int...params) {
if (result <= 0) {
throw new IllegalArgumentException("result must be positive");
}
if (params == null || params.length == 0) {
throw new IllegalArgumentException("params must not be empty");
}
//^(.*)\1{A−1}(.*)\2{B−1}$
StringBuilder p = new StringBuilder("^");
for (int i = 0, len = params.length; i < len; i++) {
int param = params[i];
if (param <= 0) {
throw new IllegalArgumentException("param must be positive:" + param);
}
p.append("(.*)\\").append(i + 1).append("{").append(param - 1).append("}");
}
p.append("$");
Pattern pattern = Pattern.compile(p.toString());
Matcher matcher = pattern.matcher(new String(new char[result]));
if (matcher.find()) {
StringBuilder exp = new StringBuilder();
for (int i = 0, len = params.length; i < len; i++) {
exp.append(" + ").append(params[i]).append(" * ").append(matcher.group(i + 1).length());
}
if (exp.length() > 0) {
exp.append(" = " + result);
System.out.println(exp.substring(3));
}
} else {
System.out.println("unsovleable");
}
}
例如:
sovleLinearEquation(51, 17, 12);
sovleLinearEquation(115, 11, 2, 5);
==》
17 * 3 + 12 * 0 = 51
11 * 10 + 2 * 0 + 5 * 1 = 115
分享到:
相关推荐
如果纯粹是为了挑战自己的正则水平,用来实现一些特效(例如使用正则表达式计算质数、解线性方程),效率不是问题;如果所写的正则表达式只是为了满足一两次、几十次的运行,优化与否区别也不太大。但是,如果所写的...
正则表达式如下: 代码如下: ^1?$|^(11+?)\1+$ 可以判断素数(换成n个1的形式,n为数字的大小。比如5转换为11111;3转换为111;2转换为11。) 什么是素数? 初中学的吧。我们老师当初教我们的是“质数”。看下概念:...
下面这段Python代码演示了一个用正则表达式来判断素数的方法
今天又学到一个牛B东西。你相信吗?正则表达式竟然可以用来判定素数,甚至可以用来解方程!下面这段正则表达式可以用来判断,一个字符串的长度是否为合数(假设这个字符串里全是字符'1'):
经常我们会遇到想找出不包含某个字符串的文本,程序员最容易想到的是在正则表达式里使用,^(hede)来过滤”hede”字串,但这种写法是错误的。我们可以这样写:[^hede],但这样的正则表达式完全是另外一个意思,它的...
检查素数与否的正则表达式 要使用这个正规则表达式,你需要把自然数转成多个1的字符串,如:2 要写成 “11”, 3 要写成 “111”, 17 要写成“11111111111111111”,这种工作使用一些脚本语言可以轻松的完成。 一...
2021 04 2021.04.05 01 2021.01.21 2021.01.10 2020 12 2020.12.08 11 2020.11.11 ...2020.09.05 糟糕,在错误的分支...2020.06.25 正则表达式匹配素数的原理讲解 2020.06.11 (a == 1 && a == 2 && a == 3)为true,你所
输入一个正整数,判断是不是素数(C++) 设和和我一样的初学者看。
素数、动图、圆心与半径、常微分方程求解、非线性方程组求解
基于线性方程组右端向量修改的拓扑图同构判别,罗贤海,,借助于邻接矩阵动态修改法的拓扑图同构判别思想,即利用素数对拓扑图顶点动态赋值获得线性方程组解向量的改变,从而找到拓扑图同
该方法的思想是,通过不断地除去小于该数的所有素数,来判断该数是否为质数。如果该数不能被任何小于它的素数整除,则该数为质数。这种方法的时间复杂度为O(√n),其中n为要判断的数。 2. AKS primality test 法 ...
Delphi 判断是不是素数,一个简单的数字问题吧,数学 学的好的,肯定知道什么是素数了,了解本代码,首先需要知道什么是素数,然后才知道怎么判断素数,本代码就是其中一种判断素数的方法,不是太复杂,核心代码部分...
DiffParam2 用参数微分法中的中点积分法求非线性方程组的一组解 mulFastDown 用最速下降法求非线性方程组的一组解 mulGSND 用高斯牛顿法求非线性方程组的一组解 mulConj 用共轭梯度法求非线性方程组的一组解 mulDamp...
数学
DiffParam2 用参数微分法中的中点积分法求非线性方程组的一组解 mulFastDown 用最速下降法求非线性方程组的一组解 mulGSND 用高斯牛顿法求非线性方程组的一组解 mulConj 用共轭梯度法求非线性方程组的一组解 mulDamp...
多种方法判断素数
C++中一个比较简单的代码 用来判断一个数是否为素数 也可以用C语言的代码来写 逻辑上没有什么很大的区别 主要是循环的合理使用 以及算法的清晰表示