Questions in category: Calculator (Calculator)
软件 >> Calculator
<[1] [2] >

1. [BUG] Calculator 计算阶乘时的 bug.

Posted by haifeng on 2022-08-07 08:51:08 last update 2022-08-07 08:58:01 | Answers (0) | 收藏


//BUG: 当输入 (5 - 1)!(3 - 1) 会出现下面的bug

>> (5 - 1)!(3 - 1)
in > (5 - 1)!(3 - 1)

out > str1 = 1, _str1 = 1
str2 = 2, _str2 = 2
str1 = 1, _str1 = 1
str1 = 1, _str1 = 1
in > 1!2
diff = -1


>> 5!(a-b)
in> 5!(a-b)

out> str1=5, _str1=5
str2=1, _str2=1
str1=5, _str1=5
str1=5, _str1=5
in>5!1
diff=4
120*a-120*b


【分析】这里程序将 ! 后面的默认理解为 1. 即 5!(a-b) 理解为 5!*(a-b)

而  (5 - 1)!(3 - 1) 理解为  (5-1)*1!(3-1)

2. 如何查看 dll 中的函数名称?

Posted by haifeng on 2022-08-06 07:31:49 last update 2022-08-06 07:32:36 | Answers (0) | 收藏


 

1. 打开 Visual Studio 2019 Developer Command Prompt

2. 转到 dll 所在目录, 比如 D:\work\cs\c++\vs2019\calculator_vc\DynamicCalculator\Release

3. 使用 dumpbin 命令

dumpbin /exports Calculator_dll.dll > D:\Calculator_dll.txt

 

 

3. 在 Windows 下运行 Calculator.exe, 显示缺少 MSVCP140.dll.

Posted by haifeng on 2022-08-05 12:46:45 last update 2022-08-05 12:46:45 | Answers (0) | 收藏


在 Windows 下运行 Calculator.exe, 显示缺少 MSVCP140.dll. 

解决办法: 

Latest supported Visual C++ Redistributable downloads | Microsoft Docs

下载 VC_redist.x86.exe , 然后安装即可.

 

4. 欧拉括号(Euler brackets)

Posted by haifeng on 2022-07-28 18:45:51 last update 2022-07-28 18:45:51 | Answers (0) | 收藏


欧拉括号(Euler brackets)

 

由下面递推关系定义的函数, 称为欧拉括号.

\[
[k_1,k_2,\ldots,k_{m+1}]=[k_1,k_2,\ldots,k_m]k_{m+1}+[k_1,k_2,\ldots,k_{m-1}]
\]

这里 $k_i$ ($i=1,2,3,\ldots$) 是正整数.

 

 

参考 [1], P.34


References:

[1]  A. K. 苏什凯维奇  著  叶乃膺 译《数论初等教程》

5. Calculator 关于阶乘运算优先级的 BUG

Posted by haifeng on 2022-04-29 10:01:31 last update 2022-04-29 10:01:31 | Answers (0) | 收藏


>> (2*1+1)*1!*2^(2*1)
in> (2*1+1)*1!*2^(2*1)

out> 24

 

这里运算的是  (2*1+1)*1!  == 3!=6, 从而乘以后面的 4 得到 24.

 

6. 如何用连分数求解二元一次不定方程 $119x-32y=1$?

Posted by haifeng on 2021-07-07 09:27:02 last update 2021-07-07 09:27:02 | Answers (0) | 收藏


如何用连分数求解二元一次不定方程 $119x-32y=1$?

 

使用 Calculator 我们可以这样操作:

>> continued_fraction(119/32)
in> continued_fraction(119/32)

out> (3,1,2,1,1,4)

------------------------

>> continued_fraction(3,1,2,1,1)
in> continued_fraction(3,1,2,1,1)
out> 26|7

Expression:
3+1/(1+1/(2+1/(1+1/(1))))

TeX Code:
3+\frac{1}{1+\frac{1}{2+\frac{1}{1+\frac{1}{1}}}}

------------------------

>> 119*7-32*26
in> 119*7-32*26

out> 1

 

 

7. 关于 $\pi(x)$

Posted by haifeng on 2021-06-23 22:12:06 last update 2021-06-23 22:19:55 | Answers (0) | 收藏


设 $x\in\mathbb{Z}^+$, $\pi(x)$ 表示不超过 $x$ 的素数个数, 则容易计算得

$\pi(1000)=168$.

 

根据 Richard K. Guy 的书 [1, A], 有

$\pi(4\cdot 10^{16})=1075292778753150$.

不过, Calcultor 计算有误.

>> 4*10^16
in> 4*10^16

out> 40000000000000000

------------------------


>> pi(40000000000000000)
in> pi(40000000000000000)
out> 126261900

注: 这个结果是错的. 

目前 Calculator 只能验证 $x\leqslant 10^9$ 以下是正确的.

 


References:

[1] Richard K. Guy, Unsolved Problems in Number Theory, Third Edition. 科学出版社.

8. [ToDo] Calculator 研发计划之编程语言

Posted by haifeng on 2021-03-21 09:33:26 last update 2021-03-21 10:25:10 | Answers (0) | 收藏


设法将 Calculator 转为一个简单的编程语言.

 

 

添加保存功能

save _ to file

9. [ToDo] Calculator 研发计划

Posted by haifeng on 2021-03-21 09:30:51 last update 2021-06-03 19:27:06 | Answers (0) | 收藏


编写新函数

 

 

最大公因子 gcd(x1,x2,x3,...,xn)

最小公倍数 lcm(x1,x2,x3,...,xn)

勒让德符号

 

识别多项式的函数 isPolynomial(),

如果是多项式, 则其幂运算等可以使用更快的算法. 比如

$(x+x^2+x^3+x^4+x^5+x^6)^9$ 

 

解方程

 

求解方程组

 

求解同余方程组

solveEquations(x==2 mod3, x==3 mod 5, x==4 mod 7; x)

 

 

有一个解方程的网站 https://www.geteasysolution.com/

 

 

10. Calculator 问题修复

Posted by haifeng on 2021-03-21 09:21:24 last update 2021-03-21 09:21:24 | Answers (0) | 收藏


Date: 2021-3-21

版本:  version<=0.491

函数:  help() 

问题:  当查询不存在的函数时, 由于迭代器 itr 到达 systemFunctions 的末尾, 导致程序终止. 

解决方案: 加入对 itr 的检测. 

状态:  已解决


 

<[1] [2] >