某些情況下我們可以不使用迴圈而達到迴圈求解的效果。這裡我想介紹一種for迴圈的優化。
例項情況:已知變數n值,求i值
int sum = 0, int i = 0;
while(sum < n)
sum += ++i;
system.out.println("i = " + i);
注:int sum = 0, int i = 1;
while(sum < n)
sum += i++;
system.out.println("i = " + i);
上面的這段**錯誤!!!原因在於i值比要求的值大1!
繼續正題,從例項情況和例項**中我們可以知道以下兩種情況:
1)i(i-1)/2 < n
2)(i+1)i/2 >= n
則只需對(i+1)i/2 >= n一元二次不等式求解,求出i的最小正整數即可。
**求解如下:
i = math.ceil((math.sqrt(8 * n + 1) - 1) / 2);
python優化迴圈 Python 優化迴圈
我希望優化一些由兩個巢狀迴圈組成的 python 我對numpy並不那麼熟悉,但據我所知,它應該能夠幫助我提高這項任務的效率.下面是我編寫的測試 它反映了實際 中發生的情況.目前使用numpy範圍和迭代器比通常的python更慢.我究竟做錯了什麼?這個問題的最佳解決方案是什麼?謝謝你的幫助!impo...
for迴圈優化
1.原 for int i 0 i 1000 i for int j 0 j 100 j for int k 0 k 10 k testfunction i,j,k 優化方案一 for int i 0 i 10 i for int j 0 j 100 j for int k 0 k 1000 k t...
for迴圈優化
例子 for int i 0 i 1000 i for int j 0 j 100 j for int k 0 k 10 k test i,j,k 對例子進行分析 首先要了解到,對於上面的 無論我們想如何進行優化,test方法執行的次數是固定的,這方面不存在優化的可能。此時,我們要想,那麼該如何優化...