π ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΄Π²ΠΈΠ³ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ ΠΏΠΈΡΠΎΠ½: Π»Π΅Π³ΠΊΠΈΠΉ Π³Π°ΠΉΠ΄ Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ
Π§ΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΄Π²ΠΈΠ³ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ Π² Python, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ΅Π·Ρ:
arr = [1, 2, 3, 4, 5]
k = 2 # ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΌΠ΅ΡΡ Π΄Π»Ρ ΡΠ΄Π²ΠΈΠ³Π°
n = len(arr)
k = k % n # ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ»ΡΡΠ°Ρ, ΠΊΠΎΠ³Π΄Π° k Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ Π΄Π»ΠΈΠ½Π° ΠΌΠ°ΡΡΠΈΠ²Π°
arr = arr[-k:] + arr[:-k]
print(arr)
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²ΡΠΉ ΠΌΠ°ΡΡΠΈΠ², ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ k ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° arr, Π° Π·Π°ΡΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΎΡΡΠ°Π²ΡΠΈΠ΅ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΏΠ΅ΡΠ΅Π΄ ΡΡΠΈΠΌ Π½ΠΎΠ²ΡΠΌ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ. Π Π΅Π·ΡΠ»ΡΡΠ°Ρ - ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈ ΡΠ΄Π²ΠΈΠ½ΡΡΡΠΉ ΠΌΠ°ΡΡΠΈΠ².
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΄Π²ΠΈΠ³ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ Python?
Π¦ΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΄Π²ΠΈΠ³ - ΡΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π° Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ·ΠΈΡΠΈΠΉ Π²Π»Π΅Π²ΠΎ ΠΈΠ»ΠΈ Π²ΠΏΡΠ°Π²ΠΎ, ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΏΠ΅ΡΠ²ΡΠΌ, Π° ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠ΄Π²ΠΈΠ³Π°ΡΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ.
Π Python Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΄Π²ΠΈΠ³ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΊΠΎΠ΄Π°.
1. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ΅Π·ΠΎΠ² (slicing)
ΠΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΏΡΠΎΡΡΡΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΄Π²ΠΈΠ³ - ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ΅Π·Ρ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ ΠΌΠ°ΡΡΠΈΠ² Π½Π° Π΄Π²Π΅ ΡΠ°ΡΡΠΈ, ΡΠ΄Π²ΠΈΠ½ΡΡΡ ΠΈΡ ΠΊΠ°ΠΆΠ΄ΡΡ ΠΏΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ.
def cyclic_shift(arr, shift):
if shift == 0:
return arr
n = len(arr)
shift = shift % n
return arr[shift:] + arr[:shift]
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ:
arr = [1, 2, 3, 4, 5]
shift = 2
shifted_arr = cyclic_shift(arr, shift)
print(shifted_arr) # Π Π΅Π·ΡΠ»ΡΡΠ°Ρ: [4, 5, 1, 2, 3]
2. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠΊΠ»Π° for
ΠΡΡΠ³ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΄Π²ΠΈΠ³ - ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΠΊΠ» for. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΏΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π½Π° Π½ΠΎΠ²ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ.
def cyclic_shift(arr, shift):
if shift == 0:
return arr
n = len(arr)
shift = shift % n
for _ in range(shift):
last_element = arr[-1]
for i in range(n - 1, 0, -1):
arr[i] = arr[i - 1]
arr[0] = last_element
return arr
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ:
arr = [1, 2, 3, 4, 5]
shift = 2
shifted_arr = cyclic_shift(arr, shift)
print(shifted_arr) # Π Π΅Π·ΡΠ»ΡΡΠ°Ρ: [4, 5, 1, 2, 3]
3. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ pop ΠΈ append
ΠΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠΏΠΎΡΠΎΠ± ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΄Π²ΠΈΠ³ - ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ pop ΠΈ append. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π°Π»ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΠ²Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ pop ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π΅Π³ΠΎ Π² Π½Π°ΡΠ°Π»ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ append.
def cyclic_shift(arr, shift):
if shift == 0:
return arr
n = len(arr)
shift = shift % n
for _ in range(shift):
last_element = arr.pop()
arr.insert(0, last_element)
return arr
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ:
arr = [1, 2, 3, 4, 5]
shift = 2
shifted_arr = cyclic_shift(arr, shift)
print(shifted_arr) # Π Π΅Π·ΡΠ»ΡΡΠ°Ρ: [4, 5, 1, 2, 3]
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΡ ΠΈΠ·ΡΡΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΄Π²ΠΈΠ³ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ Python. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ±ΡΠ°ΡΡ Π»ΡΠ±ΠΎΠΉ ΠΈΠ· ΡΡΠΈΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠ², Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π²Π°ΡΠΈΡ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ΅Π½ΠΈΠΉ ΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ Π·Π°Π΄Π°ΡΠΈ.
Π£ΡΠΏΠ΅Ρ ΠΎΠ² Π² ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ!