Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python
Python
  1. โปรแกรมคำนวณจำนวนบล็อกที่ปูได้จากกระเบื้องสีใน Python

    มีบล็อก n บล็อก คนงานปูกระเบื้องสีที่บล็อกที่หารด้วย 4 หรือ 2 ลงตัว แต่ไม่หารด้วย 42 ลงตัว หาจำนวนบล็อกที่ปูได้หากมีกระเบื้อง k แผ่น ตัวอย่าง: k=16 → ผลลัพธ์ 32 ขั้นตอนการแก้ปัญหา รูปแบบของบล็อกที่ปูได้ซ้ำทุก 42 บล็อก (LCM ของ 2,4,42) ในแต่ละรอบ 42 บล็อก มีบล็อกที่ปูได้ 20 บล็อก ใช้การหารเพื่อคำนวณ:

  2. โปรแกรมหาจำนวนเซลล์ที่มีค่าสูงสุดในเมทริกซ์หลังการอัปเดตใน Python

    มีเมทริกซ์ n x n เริ่มต้นเป็น 0 ได้รับลิสต์คู่ (row, col) สำหรับแต่ละคู่ ให้เพิ่ม 1 ให้ทุกเซลล์ที่แถว < row และคอลัมน์ < col หลังจบ ต้องการจำนวนเซลล์ที่มีค่าสูงสุด ตัวอย่าง: input_list=[[3,5],[4,6],[5,3]] → ผลลัพธ์ 9 ขั้นตอนการแก้ปัญหา สังเกตว่าเซลล์ที่ได้รับการเพิ่มมากที่สุดคือพื้นที่สี่เหลี่ยมจาก

  3. โปรแกรมรีเซ็ตพอลิгонสู่สถานะเริ่มต้นใน Python

    มีพอลิгон n ด้าน มีแกนพลิก n แกน และจุดหมุน n จุด กำหนดลำดับการหมุนและพลิก (1 หมุน, 2 พลิก) พร้อมแกน k ต้องการหาการดำเนินการเพิ่มเติมหนึ่งขั้นตอน เพื่อให้พอลิゴนกลับสู่สถานะเริ่มต้น ตัวอย่าง: n=6, input_list=[[1,2],[1,4],[2,3],[2,5],[1,6]] → ผลลัพธ์ (1,4) ขั้นตอนการแก้ปัญหา เก็บสถานะ: decision_var (

  4. โปรแกรมหาตำแหน่งลูกบอลหลังจากการกลับลำดับ n ครั้งใน Python

    มีลูกบอล n ลูก เรียง 1,2,...,n ทำการกลับลำดับซ้ำ n ครั้ง: ครั้งแรกกลับทั้งหมด, ครั้งที่สองกลับตั้งแต่ตำแหน่ง 1 ถึง n, ครั้งที่สามกลับตั้งแต่ตำแหน่ง 2 ถึง n, ... หาตำแหน่งของลูกบอลที่เริ่มต้นอยู่ที่ index หลังจากการกลับลำดับทั้งหมด ตัวอย่าง: balls=5, index=2 → ผลลัพธ์ 4 ขั้นตอนการแก้ปัญหา สังเกตรูปแบ

  5. โปรแกรมนับจำนวน BST ที่เป็นไปได้จาก n โหนดที่แตกต่างกันใน Python

    ได้รับ n ต้องการนับจำนวน BST ที่แตกต่างกันที่สร้างจากค่า 1 ถึง n หากคำตอบใหญ่ให้โมดุลอ 10^9+7 ตัวอย่าง: n=3 ผลลัพธ์คือ 14 (แคตาลันนัมเบอร์ C_4 = 14) ขั้นตอนการแก้ปัญหา ใช้ความสัมพันธ์เวียนเกิดของ Catalan numbers: C_{n+1} = 1 + Σ_{i=1}^{n} C_i * C_{n+1-i} สร้างอาร์เรย์ a เริ่มต้น [0, 1] คำนวณ Catala

  6. โปรแกรมนับคู่ (p,q) ที่ p*q=x และ p,q เป็นสหภาคใน Python

    กำหนดฟังก์ชัน f(x) นับจำนวนคู่ (p,q) ที่ 1 < p ≤ q ≤ x, gcd(p,q)=1, และ p*q=x ต้องการหาผลรวม f(x) สำหรับ x=1 ถึง n ตัวอย่าง: n=12 ผลลัพธ์คือ 3 เพราะคู่ที่ถูกต้องคือ (2,3) สำหรับ x=6, (2,5) สำหรับ x=10, (3,4) สำหรับ x=12 ขั้นตอนการแก้ปัญหา วนลูป base จาก 2 ถึง sqrt(n) สำหรับแต่ละ base วน i จาก 1

  7. โปรแกรมตรวจสอบว่า n แสดงเป็นผลรวมของ k จำนวนเฉพาะได้หรือไม่ใน Python

    ได้รับ n และ k ต้องการตรวจสอบว่า n สามารถเขียนเป็นผลรวมของ k จำนวนเฉพาะได้หรือไม่ ตัวอย่าง: n=30, k=3 → True เพราะ 30 = 2 + 11 + 17 ขั้นตอนการแก้ปัญหา หาก n < 2k → False (เพราะจำนวนเฉพาะน้อยที่สุดคือ 2) หาก k > 2 → True (ทฤษฎี Goldbach แบบอ่อน) หาก k = 2: n คู่ → True (Goldbach conjecture) n

  8. โปรแกรมนับวิธีเลือก subsequence จาก Ajob Sequence ใน Python

    มีภาษา Ajob ที่มีอักษรอันนานต์ คำที่ 1 ยาว 1 ตัวอักษร คำที่ 2 ยาว 2 ตัวอักษร ... ทุกคำมีตัวอักษรไม่ซ้ำกัน เลือกคำหนึ่งใน n คำแรก แล้วสร้าง subsequence ยาว L-k (L คือความยาวคำที่เลือก) หาจำนวนวิธี modulo p (p เป็นจำนวนเฉพาะ) ตัวอย่าง: n=6, k=5, p=11 ผลลัพธ์คือ 7 ขั้นตอนการแก้ปัญหา ใช้ทฤษฎี Lucas Theo

  9. โปรแกรมคำนวณโมดุลอของตัวเลขที่ต่อเนื่อง n ครั้งใน Python

    ได้รับตัวเลข A ต้องการสร้างตัวเลขใหญ่ X โดยการต่อ A ติดกัน n ครั้ง แล้วหา X mod m ตัวอย่าง: A=15, n=3, m=8 → X=151515, 151515 mod 8 = 3 ขั้นตอนการแก้ปัญหา หาก A=0 คืนค่า 0 ให้ c = 10^{จำนวนหลักของ A} ใช้สูตรอนุกรมเรขาคณิต: X = A * (c^n - 1) / (c - 1) คำนวณโมดุลอโดยใช้คุณสมบัติ: (c^n - 1) / (c - 1)

  10. โปรแกรมหาขนาด subsequence สูงสุดที่ทุกคู่เป็นคู่ที่ดีใน Python

    ได้รับลำดับ nums ต้องการหาขนาดของ subsequence ที่ใหญ่ที่สุดซึ่งทุกคู่ (p,q) ใน subsequence เป็น คู่ที่ดี โดยคู่ที่ดีหมายถึงตรงตามเงื่อนไขอย่างน้อยหนึ่งข้อ: 1. ความคี่หรือคู่ของจำนวนเฉพาะที่แตกต่างกันของ p และ q เท่ากัน 2. ความคี่หรือคู่ของผลรวมตัวหารของ p และ q เท่ากัน ตัวอย่าง: nums = [2,3,6,8] ผลล

  11. โปรแกรมคำนวณพื้นที่รวมของสี่เหลี่ยมสองรูปใน Python

    หาพื้นที่รวมของสี่เหลี่ยมสองรูปที่ขนานกับแกนในระนาบ 2D แต่ละรูปกำหนดโดยมุมซ้ายล่าง (A,B) และมุมขวาบน (C,D) สำหรับรูปแรก และ (E,F), (G,H) สำหรับรูปที่สอง ขั้นตอนการแก้ปัญหา คำนวณพื้นที่แต่ละรูป: width1 = |C-A|, height1 = |D-B| และ width2 = |G-E|, height2 = |H-F| พื้นที่รวม = width1*height1 + width2*

  12. โปรแกรมคำนวณค่า nCr สำหรับ r=0 ถึง n อย่างมีประสิทธิภาพใน Python

    ต้องการคำนวณค่า nCr สำหรับ r = 0,1,...,n อย่างรวดเร็วโดยใช้ความสัมพันธ์แบบเวียนเกิด: nCr = nC(r-1) * (n-r+1) / r หากคำตอบใหญ่ให้โมดุลอ 10^9 ตัวอย่าง: n=6 ผลลัพธ์: [1, 6, 15, 20, 15, 6, 1] ขั้นตอนการแก้ปัญหา เริ่มต้นลิสต์ items = [1] (ค่า nC0) วนลูป r จาก 1 ถึง n: คำนวณค่าถัดไป: items[-1] * (n - r

  13. โปรแกรมนับวิธีการรวมเหรียญมูลค่า 1,2,5,10 บาท ให้ได้จำนวนเงิน n ใน Python

    มีเหรียญมูลค่า 1, 2, 5, 10 บาท จำนวนจำกัดตามอาร์เรย์ count (count[0] สำหรับ 1 บาท, count[1] สำหรับ 2 บาท, ... ) ต้องการหาจำนวนวิธีรวมเหรียญให้ได้เงิน n บาท ตัวอย่าง: n=25, count=[7,3,2,2] ผลลัพธ์คือ 9 ขั้นตอนการแก้ปัญหา ใช้ Dynamic Programming แบบ Knapsack พร้อมจำกัดจำนวนเหรียญ: กำหนด denom = [1,2,

  14. โปรแกรมหาทุกคอมบิเนชันของตัวอักษรในสตริงที่ไม่ซ้ำกันใน Python

    ได้รับสตริง s ที่ตัวอักษรไม่ซ้ำกัน ต้องการหาคอมบิเนชันทั้งหมดของตัวอักษร (ทุกความยาว) และจัดเรียงตามลำดับพจนานุกรม (lexicographically) โดยที่ถ้ามีชุดตัวอักษรเดียวกัน ให้แสดงเฉพาะตัวที่เล็กที่สุดตามลำดับพจนานุกรม ตัวอย่าง: s = pqr ผลลัพธ์: [r, qr, q, pr, pqr, pq, p] ขั้นตอนการแก้ปัญหา สร้างลิสต์ว่าง

  15. โปรแกรมนับวิธีรวมสองลิสต์โดยคงลำดับเดิมใน Python

    มีสองลิสต์ nums1 และ nums2 เมื่อรวมกันลำดับของสมาชิกในแต่ละลิสต์ต้องไม่เปลี่ยนแปลง ต้องการนับจำนวนวิธีการรวมที่เป็นไปได้ หากคำตอบใหญ่ให้โมดุลอ 10^9+7 ตัวอย่าง: N=5, M=3 ผลลัพธ์คือ 56 ขั้นตอนการแก้ปัญหา จำนวนวิธีคือค่าคอมบิเนชัน C(N+M, N) หรือ C(N+M, M) สามารถคำนวณได้โดย: คำนวณตัวเศษ: คูณตัวเลขจาก N

  16. โปรแกรมหาผลรวมความต่างระหว่างค่าสูงสุดและต่ำสุดจากการเลือก k ลูกบอลจาก n ลูกใน Python

    มี n ลูกบอล หมายเลขตามอาร์เรย์ nums (ขนาด n) เลือก k ลูกบอลทุกคอมบิเนชันที่เป็นไปได้ หาความต่างระหว่างค่าสูงสุดและต่ำสุดของแต่ละคอมบิเนชัน แล้วนำมารวมกัน หากคำตอบใหญ่เกินให้โมดูลอ 10^9+7 ตัวอย่าง: n=4, k=3, nums=[5,7,9,11] คอมบิเนชันและความต่าง: [5,7,9]→4, [5,7,11]→6, [5,9,11]→6, [7,9,11]→4 ผลรวม =

  17. โปรแกรมนับคู่ (i, j) ที่มีค่าเท่ากันในอาร์เรย์ Python

    ได้รับอาร์เรย์ nums ต้องการหาจำนวนคู่ (i, j) ที่ nums[i] == nums[j] และ i != j ตัวอย่าง: nums = [1,3,1,3,5] ผลลัพธ์คือ 4 คู่คือ (0,2), (2,0), (1,3), (3,1) ขั้นตอนการแก้ปัญหา สร้างดิกชันนารี d นับความถี่ของแต่ละค่า สำหรับแต่ละค่า c ที่มีความถี่มากกว่า 1 ให้บวก d[c] * (d[c] - 1) เข้ากับผลลัพธ์ (เพราะ

  18. โปรแกรมนับ subsequence ติดกันที่ผลรวมหาร k ลงตัวใน Python

    ได้รับอาร์เรย์ nums และค่า k ต้องการหาจำนวน subsequence ติดกัน (subarray) ที่ผลรวมของสมาชิกหาร k ลงตัว ตัวอย่าง: k = 3, nums = [1,2,3,4,1] ผลลัพธ์คือ 4 เพราะ subsequence ที่ตรงเงื่อนไขคือ [3], [1,2], [1,2,3], [2,3,4] ขั้นตอนการแก้ปัญหา สร้างอาร์เรย์ x ขนาด k เติม 0 แล้วตั้ง x[0] = 1 กำหนด r = 0, s

  19. โปรแกรมนับสตริงความยาว n จากอักษร m ตัวโดยไม่มีพาลินโดรมยาวกว่า 1 ใน Python

    สมมติว่ามีอักษร m ตัว และค่า n เราต้องนับจำนวนสตริงความยาว n ที่สร้างจากอักษร m ตัวนี้ โดยที่สตริงไม่มีส่วนย่อยที่เป็นพาลินโดรมยาวกว่า 1 หากคำตอบใหญ่เกินไป ให้คืนค่าตามโมดูล로 10^9+7 ตัวอย่าง: n = 2, m = 3 ผลลัพธ์คือ 6 เพราะอักษรคือ {x,y,z} สตริงที่เป็นไปได้คือ [xx,xy,xz,yx,yy,yz,zx,zy,zz] แต่ [xx,yy

  20. โปรแกรมค้นหาสตริงที่เล็กที่สุดตามลำดับพจนานุกรมเพื่อเคลื่อนที่จากจุดเริ่มต้นไปยังจุดหมายใน Python

    สมมติว่าเราอยู่ที่ตำแหน่ง (0, 0) บนระนาบคาร์ทีเซียน เราต้องการไปยังจุด (x, y) โดยใช้การเคลื่อนที่แนวนอน (H) และแนวตั้ง (V) ทีละหน่วยเดียว มีหลายวิธีในการไปถึงจุดหมาย แต่ละวิธีประกอบด้วยการเคลื่อนที่ H และ V จำนวนหนึ่ง (เช่น หากต้องการไปจาก (0,0) ไป (2,2) แล้ว HVVH เป็นหนึ่งในวิธีที่เป็นไปได้) หากมีค

Total 9001 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:407/451  20-คอมพิวเตอร์/Page Goto:1 401 402 403 404 405 406 407 408 409 410 411 412 413