如何简化方程中的方程中的指数
from sympy import symbols
a,b,c,d,e,f=symbols('abcdef')
j=(a**b**5)**(b**10)
print j
(a**(b**5))**(b**10) #ans even after using expand simplify
# desired output
a**(b**15)
Run Code Online (Sandbox Code Playgroud)
如果不能与sympy在python中导入哪个模块?
编辑 即使我将'b'定义为真实,也包括所有其他符号
b =符号('b',real = True)没有得到简化的指数,只有当指数是常数时它才会简化
a=symbols('a',real=True)
b=symbols('b',real=True)
(a**5)**10
a**50 #simplifies only if exp are numbers
(a**b**5)**b**10
(a**(b**5))**b**10 #no simplification
Run Code Online (Sandbox Code Playgroud) 如何使用此类值在javascript中将小数位限制为4?e是指数,因为我使用十个值的幂.toFixed()似乎不起作用.
1.0531436913408342e-7
-5.265718456704172e-7
8.425149530726674e7
Run Code Online (Sandbox Code Playgroud) 这是我的代码,试图将该行的第二个字段从指数转换为float.
outputrrd = processrrd.communicate()
(output, error) = outputrrd
output_lines = output.split('\n')
for line in output_lines:
m = re.search(r"(.*): ", line)
if m != None:
felder = line.split(': ')
epoch = felder[0].strip(':')
utc = epoch2normal(epoch).strip("\n")
#print felder[1]
data = float(felder[1])
float_data = data * 10000000
print float_data
resultslist.append( utc + ' ' + hostname + ' ' + float_data)
Run Code Online (Sandbox Code Playgroud)
但是,程序因此错误而停止:
File "/opt/omd/scripts/python/livestatus/rrdfetch-convert.py", line 156, in <module>
data = float(felder[1])
ValueError: invalid literal for float(): 6,0865000000e-01
Run Code Online (Sandbox Code Playgroud)
有谁知道原因?
如它是否落在2 ^ 3 - 2 ^ 4,2 ^ 4 - 2 ^ 5等内.返回的数字将是EXPONENT本身(减去偏移量).
如何尽可能快速有效地完成这项工作?这个函数将在一个非常依赖于速度的程序中被调用.这是我当前的代码,但它使用for循环效率太低.
static inline size_t getIndex(size_t numOfBytes)
{
int i = 3;
for (; i < 32; i++)
{
if (numOfBytes < (1 << i))
return i - OFFSET;
}
return (NUM_OF_BUCKETS - 1);
}
Run Code Online (Sandbox Code Playgroud)
非常感谢你!
当使用二进制时,有效位的特征在于其宽度以二进制数字(位)表示。因为对于一个归一化的数字,最高有效位始终为1,所以通常不存储该位,因此将其称为“隐藏位”。根据上下文,隐藏位可能会或可能不会计入有效数字的宽度。例如,通常将相同的IEEE 754双精度格式描述为具有53位有效数字(包括隐藏位)或52位有效数字(不包括隐藏位)。隐藏位的概念仅适用于二进制表示形式。IEEE 754将精度p定义为有效位数,包括任何隐含的前导位(例如,双精度格式的精度p为53)。
为什么对于归一化数,最高有效位始终为1?可以请一个例子解释一下吗?
对于类赋值,我需要创建一个计算n选择k的函数.我做到了这一点,它适用于小数字(例如6选2),但我应该让它与200选择50,它自然不会.答案太大,R输出NaN或Inf,说:
> q5(200, 50)
[1] "NaN"
Warning message:
In factorial(n) : value out of range in 'gammafn'
Run Code Online (Sandbox Code Playgroud)
我尝试使用日志和指数,但它没有削减它.
q5 <- function (n, k) {
answer <- log(exp( factorial(n) / ( (factorial(k)) * (factorial(n - k)) )))
paste0(answer)
}
Run Code Online (Sandbox Code Playgroud) 好吧,我需要在PHP脚本中做一些计算.我有一个行为错误的表达.
echo 10^(-.01);
Run Code Online (Sandbox Code Playgroud)
产出10
echo 1 / (10^(.01));
Run Code Online (Sandbox Code Playgroud)
输出0
echo bcpow('10', '-0.01') . '<br/>';
Run Code Online (Sandbox Code Playgroud)
输出1
echo bcdiv('1', bcpow('10', '0.01'));
Run Code Online (Sandbox Code Playgroud)
输出1.000 ....
我bcscale(100)用于BCMath计算.
Excel和Wolfram Mathematica给出答案~0,977237.
有什么建议?
通常1e3意味着10**3.
>>> 1e3
1000.0
>>> 10**3
1000
Run Code Online (Sandbox Code Playgroud)
类似案例进行了exp(3)比较e**3.
>>> exp(3)
20.085536923187668
>>> e**3
20.085536923187664
Run Code Online (Sandbox Code Playgroud)
但是现在请注意,如果指数是一个float值:
>>> exp(3.1)
22.197951281441636
>>> e**3.1
22.197951281441632
Run Code Online (Sandbox Code Playgroud)
这很好.现在是第一个例子:
>>> 1e3.1
File "<stdin>", line 1
1e3.1
^
SyntaxError: invalid syntax
>>> 10**3.1
1258.9254117941675
Run Code Online (Sandbox Code Playgroud)
这表明Python不喜欢1e3.1,Fortran太.无论它可能是一个标准(!)为什么它是这样的?
我编写了一个函数,它使用底数 b 和指数 e 进行幂运算,如下所示:
fun power b e = if e = 0 then 1 else b * power b (e-1);
Run Code Online (Sandbox Code Playgroud)
显然,这适用于整数,如输出所示:
val power = fn : int -> int -> int
Run Code Online (Sandbox Code Playgroud)
但是,我希望它为 b 取一个实数,为 e 取一个整数。我尝试使用以下内容:
fun power (b : real) (e : int) = if e = 0 then 1 else b * power b (e-1);
Run Code Online (Sandbox Code Playgroud)
虽然这给了我错误。任何帮助表示赞赏。
我写了这段代码:
t=linspace(0,pi)
x = @(t)sin(t)
Run Code Online (Sandbox Code Playgroud)
然后我尝试了这个->
x = power(x,2)
Run Code Online (Sandbox Code Playgroud)
但是它给我一个错误,那我该如何在一个函数上使用幂函数?