Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Python: หากำลัง K ระดับแรกของเลขฐาน N (Powers of N)

บทนำ

โปรแกรมคำนวณกำลังของเลขฐาน n ตั้งแต่ n^0 ถึง n^(k-1) รวม k ค่า ใช้ list comprehension ร่วมกับตัวดำเนินการ **

ตัวอย่างโค้ด


n = 4
k = 5

print(f"ฐาน n = {n}")
print(f"จำนวนกำลัง k = {k}")

# List comprehension: n ** i สำหรับ i = 0 ถึง k-1
result = [n ** i for i in range(k)]

print(f"กำลังของ {n} ตั้งแต่ 0 ถึง {k-1}: {result}")

ผลลัพธ์


ฐาน n = 4
จำนวนกำลัง k = 5
กำลังของ 4 ตั้งแต่ 0 ถึง 4: [1, 4, 16, 64, 256]

คำอธิบาย


i=0: 4**0 = 1
i=1: 4**1 = 4
i=2: 4**2 = 16
i=3: 4**3 = 64
i=4: 4**4 = 256

ฟังก์ชันครบถ้วน


def powers_of_n(n, k, start=0):
    """คืนลิสต์กำลังของ n: n^start, n^(start+1), ..., n^(start+k-1)"""
    return [n ** i for i in range(start, start + k)]

def powers_of_n_generator(n, k, start=0):
    """Generator version - ประหยัดหน่วยความจำ"""
    for i in range(start, start + k):
        yield n ** i

# ทดสอบ
print(powers_of_n(2, 10))           # [1, 2, 4, 8, 16, 32, 64, 128, 256, 512]
print(powers_of_n(3, 5, start=2))   # [9, 27, 81, 243, 729] (3^2 ถึง 3^6)

# Generator usage
for i, val in enumerate(powers_of_n_generator(2, 20)):
    print(f"2^{i} = {val}")
    if i >= 5: break

กรณีพิเศษและข้อควรระวัง

  • n = 0: 0^0 = 1 (ใน Python), 0^k = 0 สำหรับ k>0
  • n = 1: ทุกค่า = 1
  • n < 0: สลับเครื่องหมาย (+/-) ตามคี่/คู่ของ exponent
  • k ใหญ่: ผลลัพธ์อาจใหญ่เกิน Python int (แต่ Python รองรับ arbitrary precision)
  • float n: ผลลัพธ์เป็น float

การประยุกต์: Geometric Sequence


def geometric_sequence(a, r, n):
    """ลำดับเรขาคณิต: a, ar, ar^2, ..., ar^(n-1)"""
    return [a * (r ** i) for i in range(n)]

print(geometric_sequence(3, 2, 5))  # [3, 6, 12, 24, 48]

สรุป

ใช้ list comprehension [n ** i for i in range(k)] คำนวณกำลัง K ระดับแรกของ N ได้อย่างกระชับและมีประสิทธิภาพ Python รองรับ big integers อัตโนมัติ ไม่ต้องกังวล overflow