使用 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 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告