使用 Python 将 K 乘以每个第 N 个元素


在本问题陈述中,我们需要将 K 乘以给定列表或序列中的每个第 N 个项目,并使用 Python 实现解决方案。因此,我们将使用基本的 Python 编程来解决此问题。

理解问题

我们面临的问题是,必须将一个称为 K 的特定值乘以给定列表中的每个第 N 个项目。通常,我们会创建一个函数来应用于列表的每个项目,但在这里,在我们的问题中,我们必须将一个常数乘以列表中的一些项目。为了更好地理解,让我们深入研究下面的示例

上述问题的逻辑

为了解决将 K 乘以每个第 N 个项目的问题,我们将使用 for 循环迭代列表并查找位于 N 的倍数位置的项目。之后,我们将把每个第 N 个项目乘以 K 的值。此过程将持续进行,直到所有第 N 个项目都乘以 K。

算法

  • 步骤 1 − 通过定义名为 multiply_nth_item 的函数来启动算法,以将 K 乘以给定序列中的每个第 N 个项目。此函数将接受三个参数,例如 series、K 和 N。这里 series 是项目的序列,K 是我们必须乘以第 N 个项目的值。

  • 步骤 2 − 初始化一个变量来跟踪计数,并将其命名为 count,其初始值为 1。

  • 步骤 3 − 接下来,使用 for 循环遍历给定输入序列中的每个项目。

  • 步骤 4 − 现在我们将检查条件,如果 count 的值可以被 N 整除,那么我们将把该项目乘以 K 的值。

  • 步骤 5 − 如果上述条件为假,则我们将 count 的值加 1。

  • 步骤 6 − 最后,我们将返回修改后的序列。

示例

# Define the function for multiply k to the nth item
def multiply_nth_item(series, K, N):
   count = 1
   for i in range(len(series)):
      if count % N == 0:
         series[i] *= K
      count += 1
   return series

# Initialize the series, K and N
input_series = [11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
K = 3
N = 2
#Call the function
Output = multiply_nth_item(input_series, K, N)
print(Output)

输出

[11, 36, 13, 42, 15, 48, 17, 54, 19, 60]

算法 - 使用 Numpy

  • 步骤 1 − 由于我们正在使用 numpy 来解决此算法中的给定问题,因此导入 numpy 库。

  • 步骤 2 − 定义函数为 multiply_nth_item 并传递三个参数,称为 series、K 和 N。series 是输入列表,K 是要乘以的值,N 是要更新的项目的 position。

  • 步骤 3 − 从给定的输入 series 创建一个 numpy 数组,因为我们需要每个项目的索引。

  • 步骤 4 − 数组将显示给定系列中每个项目的 position。

  • 步骤 5 − 之后,我们将使用它创建一个 position 变量,并检查索引是否可以被 N 整除。如果条件为真,则我们将通过乘以 K 来更新它。

  • 步骤 6 − position 变量将用于更新系列中选定的项目。

  • 步骤 7 − 现在,再次使用 tolist 函数将 numpy 数组转换为常规 Python 列表。

示例 - 使用 Numpy

# import the numpy library
import numpy as np
# define the function to multiply K
def multiply_nth_item(series, K, N):
   series = np.array(series)
   index = np.arange(len(series))
   position = index % N == 0
   series[position] *= K
   return series.tolist()

# Initialize the series, K, and N
input_series = [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
K = 3
N = 2
# Call the function
Output = multiply_nth_item(input_series, K, N)
print(Output)

输出

[6, 4, 18, 8, 30, 12, 42, 16, 54, 20]

复杂度

如果给定列表中存在 n 个项目,则使用 Python 将 K 乘以每个第 N 个项目的时间复杂度为 O(n)。因为我们在两种方法中都使用了基本的迭代过程来乘以序列中的每个第 N 个项目。

结论

因此,使用 Python 将 K 乘以给定序列中的每个第 N 个项目可以通过上述算法实现,时间复杂度为 O(n)。并且两种算法的时间复杂度都是线性的,这表明算法是有效的。

更新于: 2023-10-16

114 次浏览

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.