首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >用其他类型替换SymPy符号(Z3Py)

用其他类型替换SymPy符号(Z3Py)
EN

Stack Overflow用户
提问于 2018-06-17 05:56:19
回答 1查看 143关注 0票数 0

我使用SymPy表达式来计算表达式,比如a + 3 * b,然后我想用Z3来验证它(例如,所有正a, ba + 3 * b > 0 )。

我找不到用a, b对象替换SymPy符号的方法,在一般情况下,用Z3对象替换Z3符号。

代码语言:javascript
运行
AI代码解释
复制
import sympy
from z3 import *

a = sympy.Symbol('a')
b = sympy.Symbol('b')

t = Real('t')
w = Real('w')

e = a + 3 * b
e = e.subs({a:t, b:w})  # does nothing?
e = e.replace(a, t).replace(b, w)  # e = t + 3 * w

And(True, e > 0)  # raises z3.z3types.Z3Exception

还会通过将3替换为RealVal('3')引发异常。

目前,我正在对字符串进行操作,并最终使用exec来更改上述类型和表达式,但我计划停止使用exec

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-17 07:24:32

不能将交感表达式与z3py表达式混合和匹配。它们是不同的内部数据结构。但是,您可以遍历渐近表达式并创建相应的z3表达式,但必须单独执行。请注意,对subs的调用在渐近世界中执行一个替换:正在发生替换,但结果表达式仍然是一个同情表达式。(而且很可能是非法的:如果您确实尝试在其上使用任何渐近函数,则很可能会从它本身得到类似的异常。)

您需要开发一个函数,该函数接受一个渐近表达式,并为您提供一个z3py表达式。

据我所知,没有任何“正式”函数可以这样做,但是详细信息请参见这个(有点过时的)答案:How to use Z3py and Sympy together,您可能可以从那里使用代码来实现您的目的。(粗略地猜测:由于同情的丰富性和不可避免的不匹配,完成从同情到z3py的完全转换很可能是不可能的,但您很可能会得到一个处理用例的转换器。)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50897324

复制
相关文章
sympy(符号计算系统)探索
今天发现一个开源的python符号计算系统,正好对数值算法感兴趣,所以就做一番探索:
云深无际
2021/05/18
7590
sympy(符号计算系统)探索
Sympy 符号计算包使用
一般来说,大家写的矩阵都是这个样子,但是我习惯写成上面的那样,因为规律一目了然,也不是规律。。。我不知道怎么说了。
云深无际
2021/07/23
9930
Sympy 符号计算包使用
【说站】python函数符号sympy的用法
2、各种类型的追求值、追求、解决方案、追求积分、微分方程、级数展开、矩阵操作等。虽然Matlab的科学计算能力也很强,但Python以其语法简单、易于使用、异常丰富的三方库生态系统,可以更优雅地解决日常生活中遇到的各种计算问题。
很酷的站长
2022/11/23
1.1K0
【说站】python函数符号sympy的用法
Python 符号计算模块sympy 简介
众所周知,科学计算包括数值计算和符号计算两种计算。在数值计算中,计算机处理的对象和得到的结果都是数值,而在符号计算中,计算机处理的数据和得到的结果都是符号。这种符号可以是字母、公式,也可以是数值,但它与纯数值计算在处理方法、处理范围、处理特点等方面有较大的区别。可以说,数值计算是近似计算;而符号计算则是绝对精确的计算。它不容许有舍入误差,从算法上讲,它是数学,它比数值计算用到的数学知识更深更广。最流行的通用符号计算软件有:MAPLE,Mathematica,Matlab,Python sympy等等。
用户6021899
2019/08/14
3.6K0
LaTeX其他符号
【注】摘自 Scott Pakin 的 《The Comprehensive LaTeX Symbol List》 。
hotarugali
2022/03/18
9330
LaTeX其他符号
sympy(符号计算系统)探索(相关资源)
看我文章的小伙伴都知道,我对数值算法很是感兴趣,但是和数值算法地位一样的计算机计算系统还有一类叫符号计算。在完成诸如多项式求值、求极限、解方程、求积分、微分方程、级数展开、矩阵运算等等计算问题的时候,符号计算是王者~
云深无际
2021/07/23
6540
sympy(符号计算系统)探索(相关资源)
C++ 中有符号类型到无符号类型的转换
为了更好地解释下面的代码,先来介绍一些背景知识,在我的计算机中, char 类型占 8 个比特位,那么, unsigned char 类型能表示的数的范围为 0 ~ 2的8次方 - 1,即 0 ~ 255,共 256 个数;int 类型占 32 个比特位,那么 unsigned 类型所能表示的数的范围为 0 ~ 2的32次方 - 1,即 0 ~ 4294967295,共 4294967296 个数,接下来看下面的代码:
用户7886150
2021/02/15
1.4K0
用Python学数学之Sympy代数符
说起数学计算器,我们常见的是加减乘除四则运算,有了它,我们就可以摆脱笔算和心算的痛苦。四位数以上的加减乘除在数学的原理上其实并不难,但是如果不借助于计算器,光依赖我们的运算能力(笔算和心算),不仅运算的准确度大打折扣,而且还会让我们对数学的运用停留在一个非常浅的层次。
py3study
2020/01/03
2.4K0
格式符号 & 类型转换
常用的格式符号: 格式符号 转换 %% 输出 % 号 %s 字符串 %d 有符号十进制整数 %f 浮点数 %c 字符 %u 无符号十进制整数 %o 八进制整数 %x 十六进制整数(小写字母0x) %X 十六进制整数(大写字母0X) %e 科学计数法(小写’e’) %E 科学计数法(大写“E”) %g %f和%e 的简写 %G %f和%E的简写
以某
2023/03/07
1K0
Z3Py在CTF逆向中的运用
Z3是Microsoft Research开发的高性能定理证明器。Z3拥有者非常广泛的应用场景:软件/硬件验证和测试,约束求解,混合系统分析,安全性研究,生物学研究(计算机分析)以及几何问题。Z3Py是使用Python脚本来解决一些实际问题。
FB客服
2018/07/30
1.5K0
Z3Py在CTF逆向中的运用
[数据结构与算法] 链表的其他类型
单链表是最简单的链表,单链表的一种变形就是循环单链表,其中最后一个结点的next域不用None,而是指向表的第一个结点,这样就形成了一种循环结构,所以叫循环单链表。 双链表:单链表只有1个方向的链接,只能做一个方向的扫描和逐步操作。单链表的next指针域指向下一个结点,而双链表结点除了具有next指针外,还有一个previous指针,指向上一个结点。单链表中查找元素只能从头结点开始,根据他的next指针域找到下一个结点,而双链表最大的区别在于不仅能找到下一个结点,还能找到上一个结点。 循环双链表:然后看下什
用户1622570
2018/04/12
8970
(20)Bash通配符和其他特殊符号
首先我们先给name赋一个值,'$name'将会原封不动输出单引号里的内容,"$name"则会输出赋值后的结果。
生信real
2020/08/26
1.3K0
shell的特殊符号以及其他命令
 shell特殊符号cut命令: cut -d (截取指定的符号分段) -f (截取的段落如果直接一个那么直接输入数字 1或者n 如果有多个那么在中间加上 , 或者 1-n ) cut -c 可以直接
叶瑾
2018/06/14
7100
MySQL其他类型常用函数
INET_ATON(IP)和INET_NTOA(num)函数主要的用途是将字符串的IP地址转换为数字表示的网络字节序,这样可以方便地进行IP或者网段的比较。 比如下面的表,想要知道192.168.1.1和192.168.1.10之间一共有多少IP地址。
秋白
2019/02/21
7670
MySQL其他类型常用函数
pycharm的查找替换_pycharm调用其他py文件
3、上面红框是需要更改的部分,下面红框是想要更改为部分,编辑后,点击“replace all”即可
全栈程序员站长
2022/09/27
1.8K0
pycharm的查找替换_pycharm调用其他py文件
ARM下char类型符号问题
最近在项目中遇到问题,在x86平台下调试好的程序,移植到arm上,程序行为完全变了。
coderhuo
2018/08/29
8880
字符串中符号的替换---replace的用法
1 #include<iostream> 2 #include<string> 3 4 using namespace std; 5 6 int main() 7 { 8 string s1 = "one*two*three";//Given String 9 string s2 = "*";//delimeter 10 string s3 = ",";//string to replace 11
猿人谷
2018/01/17
3.7K0
字符串中符号的替换---replace的用法
UWP 转换 IBuffer 和其他类型
本文告诉大家在 UWP 如何转换 IBuffer 为 string 和 stream 类
林德熙
2019/12/04
1.1K0
String与其他类型之间转换
写这篇博客的初衷是:今天百度查了下char转String的问题,一位老兄的博客里面写着调用char类型的toString方法。
johnhuster的分享
2022/03/28
3300
UWP 转换 IBuffer 和其他类型
本文告诉大家在 UWP 如何转换 IBuffer 为 string 和 stream 类
林德熙
2022/08/04
4240

相似问题

用数值替换Sympy索引符号

112

Sympy:使用野生符号替换

23

向量的SymPy替换符号

17

Sympy:用函数替换

13

用其他类型替换类型

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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