这有点模糊,但从一般意义上讲,在python或java中计算指数方程的要求有多高?

这有点模糊,但从一般意义上讲,在python或java中计算指数方程的要求有多高?,java,python,Java,Python,假设我想连续计算点在y=sq rt x图形的x轴上移动时的导数 衍生工具将是:[1/x^(1/2)]*(1/2) 如果一个程序要计算点在x上移动的速度是每秒10次,那么要求有多高?所以x的值可以是1.7,1.8,2,2.1,2.21等等。。。如果这只是一个大得多的程序的一个极其微小的方面,那么这种计算会不会使用太多的计算能力呢?它取决于所涉及的数字,但在现代计算机上,我不会说它的计算量特别大。它取决于所涉及的数字,但在现代计算机上,我不会说它的计算能力特别强。这些计时应该让您了解python有多

假设我想连续计算点在y=sq rt x图形的x轴上移动时的导数

衍生工具将是:[1/x^(1/2)]*(1/2)


如果一个程序要计算点在x上移动的速度是每秒10次,那么要求有多高?所以x的值可以是1.7,1.8,2,2.1,2.21等等。。。如果这只是一个大得多的程序的一个极其微小的方面,那么这种计算会不会使用太多的计算能力呢?

它取决于所涉及的数字,但在现代计算机上,我不会说它的计算量特别大。

它取决于所涉及的数字,但在现代计算机上,我不会说它的计算能力特别强。

这些计时应该让您了解python有多快:

In [1]: from math import sqrt

In [2]: %timeit sqrt(123)
10000000 loops, best of 3: 125 ns per loop

In [3]: %timeit 1./(2*sqrt(123))
1000000 loops, best of 3: 235 ns per loop

In [4]: def f(x): return 1./(2*sqrt(x))

In [5]: %timeit f(456)
1000000 loops, best of 3: 384 ns per loop

因此,现代处理器可以每秒计算250万次类似于
f(x)
的函数。

这些计时可以让您了解python的速度:

In [1]: from math import sqrt

In [2]: %timeit sqrt(123)
10000000 loops, best of 3: 125 ns per loop

In [3]: %timeit 1./(2*sqrt(123))
1000000 loops, best of 3: 235 ns per loop

In [4]: def f(x): return 1./(2*sqrt(x))

In [5]: %timeit f(456)
1000000 loops, best of 3: 384 ns per loop
因此,现代处理器可以每秒计算250万次类似于
f(x)
的函数。

我刚刚在i7笔记本电脑上执行了以下Java代码,随机值为
x

public double test()
{
    return (1.0 / Math.pow(x, 0.5)) * 0.5; 
}
结果是:

Benchmark        Mode    Samples        Mean      Mean Error    Units

Benchmark.test   thrpt     10     12122497.328   106601.475     ops/s
也就是说,每秒超过1200万次操作,每秒的误差为100万次

因此,如果你想每秒执行10次,你应该没问题。

我刚刚在我的i7笔记本电脑上执行了以下Java代码,随机值为
x

public double test()
{
    return (1.0 / Math.pow(x, 0.5)) * 0.5; 
}
结果是:

Benchmark        Mode    Samples        Mean      Mean Error    Units

Benchmark.test   thrpt     10     12122497.328   106601.475     ops/s
也就是说,每秒超过1200万次操作,每秒的误差为100万次


因此,如果你想每秒10次,你应该没问题。

你知道y=sqrt(x)的图形没有穿过x轴,对吗?在Python中,
**
操作符的代价与循环中迭代一步的代价大致相同,所以这一点都不重要。(除非你是用NumPy做的,在这种情况下,它可能会变得相关。)在Java中,你可以计时,但我敢打赌它仍然比循环本身慢不到一个数量级,所以你可能对大多数应用程序都没问题。顺便说一句,你可能知道这一点,但是以防万一:
^
操作符在Java或Python中都不意味着强大;它意味着按位异或。另外,
1/2
在Java和Python 2中是
0
,而不是
0.5
(但不是Python 3)。是的,我知道,在我的概念程序中,x值永远不会为零。假设你已经在某一点上得到了
x
y
,并且
y=sqrt(x)
,你为什么不计算
1/2y
而不是
1/2sqrt(x)
?你知道y=sqrt(x)的图形没有穿过x轴,对吗?在Python中,
**
操作符的代价与循环中迭代一步的代价大致相同,所以这一点都不重要。(除非你是用NumPy做的,在这种情况下,它可能会变得相关。)在Java中,你可以计时,但我敢打赌它仍然比循环本身慢不到一个数量级,所以你可能对大多数应用程序都没问题。顺便说一句,你可能知道这一点,但是以防万一:
^
操作符在Java或Python中都不意味着强大;它意味着按位异或。另外,
1/2
在Java和Python 2中是
0
,而不是
0.5
(但不是Python 3)。是的,我知道,在我的概念程序中,x值永远不会为零。假设你已经在某一点上得到了
x
y
,并且
y=sqrt(x)
,为什么不计算
1/2y
而不是
1/2sqrt(x)
?太棒了。非常感谢。这正是我想要的答案。显然,不同机器的里程可能不同,但本质上,在现代硬件上,绘制GUI需要的CPU时间远远超过一点数学。太棒了。非常感谢。这正是我一直在寻找的答案。显然,不同机器的里程可能会有所不同,但在现代硬件上,绘制GUI所需的CPU时间远远超过一点数学运算。太好了。非常感谢你。这对我来说是个好消息。非常感谢你。这对我来说很清楚。