gpt4 book ai didi

Javascript 到 Python,在 for 循环的条件和最终表达式中按位移位

转载 作者:行者123 更新时间:2023-12-01 03:38:20 25 4
gpt4 key购买 nike

我有一个用 javascript 编写的 FFT 代码,粘贴在下面:

function FFT(re, im) {
var N = re.length;
for (var i = 0; i < N; i++) {
for (var j = 0, h = i, k = N; k >>= 1; h >>= 1)
j = (j << 1) | (h & 1);
if (j > i) {
re[j] = [re[i], re[i] = re[j]][0];
im[j] = [im[i], im[i] = im[j]][0]
}
}

for (var hN = 1; hN * 2 <= N; hN *= 2)
for (i = 0; i < N; i += hN * 2)
for (j = i; j < i + hN; j++) {
var cos = Math.cos(Math.PI * (j - i) / hN),
sin = Math.sin(Math.PI * (j - i) / hN);
var tre = re[j + hN] * cos + im[j + hN] * sin,
tim = -re[j + hN] * sin + im[j + hN] * cos;
re[j + hN] = re[j] - tre;
im[j + hN] = im[j] - tim;
re[j] += tre;
im[j] += tim;
}
}

for循环中有一条语句

for (var j = 0, h = i, k = N; k >>= 1; h >>= 1)

我想知道如何用Python编写这个for循环? ks 数组和 hs 数组对我来说不是很清楚,所以我不知道如何使用 zip

最佳答案

一种可能的方法是使用 while 循环:

j = 0
h = i
k = N >> 1
while k > 0:
... # current logic in the for loop
k >>= 1
h >>= 1

关于Javascript 到 Python,在 for 循环的条件和最终表达式中按位移位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44081400/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com