คำถามติดแท็ก combinations

30
อัลกอริทึมเพื่อส่งคืนการรวมกันทั้งหมดขององค์ประกอบ k จาก n
ฉันต้องการเขียนฟังก์ชั่นที่ใช้อาร์เรย์ของตัวอักษรเป็นอาร์กิวเมนต์และเลือกตัวอักษรเหล่านั้นจำนวนหนึ่ง สมมติว่าคุณมีอาร์เรย์ 8 ตัวอักษรและต้องการเลือก 3 ตัวอักษรจากนั้น จากนั้นคุณควรจะได้รับ: 8! / ((8 - 3)! * 3!) = 56 อาร์เรย์ (หรือคำ) ในทางกลับกันประกอบด้วย 3 ตัวอักษรแต่ละตัว

27
วิธีรับชุดองค์ประกอบของรายการทั้งหมดที่เป็นไปได้?
ฉันมีรายการที่มีตัวเลข 15 ตัวและฉันต้องเขียนโค้ดบางอย่างที่สร้างชุดค่าผสมทั้งหมด 32,768 ตัว ฉันพบรหัสบางส่วน (โดย Googling) ที่เห็นได้ชัดว่าทำสิ่งที่ฉันกำลังมองหา แต่ฉันพบว่าโค้ดทึบแสงค่อนข้างและฉันระวังที่จะใช้มัน รวมทั้งฉันรู้สึกว่ามันจะต้องมีทางออกที่สง่างามกว่า สิ่งเดียวที่เกิดขึ้นกับฉันก็คือการวนซ้ำทศนิยมจำนวนเต็ม 1–32768 และแปลงให้เป็นเลขฐานสองและใช้การแทนเลขฐานสองเป็นตัวกรองเพื่อเลือกตัวเลขที่เหมาะสม ไม่มีใครรู้วิธีที่ดีกว่า? ใช้map()บางที

7
การรวมกันทั้งหมดของรายการของรายการ
โดยทั่วไปฉันกำลังมองหาชุดการรวมกันของหลามList<List<int>> รับรายการของรายการฉันต้องการรายการใหม่ที่ให้ชุดค่าผสมที่เป็นไปได้ทั้งหมดของรายการระหว่างรายการ [[1,2,3],[4,5,6],[7,8,9,10]] -> [[1,4,7],[1,4,8],...,[3,6,10]] จำนวนรายการไม่เป็นที่รู้จักดังนั้นฉันต้องการบางสิ่งที่เหมาะกับทุกกรณี คะแนนโบนัสเพื่อความสง่างาม!

29
การหาตัวเลขที่เป็นไปได้ทั้งหมดเพื่อให้ได้ผลรวมที่กำหนด
คุณจะไปเกี่ยวกับการทดสอบการรวมกันที่เป็นไปได้ทั้งหมดจากชุดNของตัวเลขที่กำหนดเพื่อให้พวกเขารวมถึงจำนวนสุดท้ายที่กำหนด? ตัวอย่างสั้น ๆ : ชุดของตัวเลขที่จะเพิ่ม: N = {1,5,22,15,0,...} ผลลัพธ์ที่ต้องการ: 12345

11
รวมกันระหว่างสองรายการ?
ไม่นานมานี้และฉันมีปัญหาในการพันรอบอัลกอริทึมที่ฉันพยายามทำ โดยทั่วไปฉันมีสองรายการและต้องการรับชุดค่าผสมทั้งหมดของสองรายการ ฉันอาจจะอธิบายไม่ถูกต้องดังนั้นนี่เป็นตัวอย่าง name = 'a', 'b' number = 1, 2 ผลลัพธ์ในกรณีนี้จะเป็น: 1. A1 B2 2. B1 A2 ส่วนที่ยุ่งยากคือฉันอาจมีรายการในตัวแปร“ ชื่อ” มากกว่ารายการในตัวแปร“ หมายเลข” (หมายเลขจะเท่ากับหรือน้อยกว่าตัวแปรชื่อเสมอ) ฉันสับสนวิธีการรวมกันทั้งหมด (ซ้อนกันสำหรับวง?) และยิ่งสับสนในตรรกะเพื่อเลื่อนรายการในตัวแปรชื่อในกรณีที่มีรายการในชื่อมากกว่าพวกเขาอยู่ในรายการหมายเลข ฉันไม่ใช่โปรแกรมเมอร์ที่ดีที่สุด แต่คิดว่าฉันจะให้มันยิงถ้ามีคนสามารถช่วยฉันชี้แจงตรรกะ / algoriythm เพื่อให้บรรลุนี้ ดังนั้นฉันเพิ่งจะติดอยู่บนที่ซ้อนกันสำหรับลูป ปรับปรุง: นี่คือผลลัพธ์ที่มี 3 ตัวแปรและตัวเลข 2 ตัว: name = 'a', 'b', 'c' number = 1, 2 เอาท์พุท: 1. A1 …

17
วิธีการรวมสองสายเข้าด้วยกันใน PHP?
จริงๆแล้วฉันไม่รู้จะอธิบายสิ่งที่ฉันต้องการ แต่ฉันจะแสดงให้คุณเห็น: ตัวอย่างเช่น: $data1 = "the color is"; $data2 = "red"; ฉันควรทำอย่างไร (หรือกระบวนการ) เพื่อให้ผล $ คือการรวมกันของ$data1และ$data2? ผลลัพธ์ที่ต้องการ: $result = "the color is red";

18
สถิติ: การรวมกันใน Python
ฉันจำเป็นต้องคำนวณ combinatorials (nCr) ในหลาม แต่ไม่สามารถหาฟังก์ชั่นที่จะทำในmath, numpyหรือstat ห้องสมุด สิ่งที่คล้ายกับฟังก์ชันประเภท: comb = calculate_combinations(n, r) ฉันต้องการจำนวนชุดค่าผสมที่เป็นไปได้ไม่ใช่ชุดค่าผสมที่แท้จริงดังนั้นitertools.combinationsฉันจึงไม่สนใจ สุดท้ายนี้ฉันต้องการหลีกเลี่ยงการใช้แฟกทอเรียลเนื่องจากตัวเลขที่ฉันจะคำนวณชุดค่าผสมอาจมีขนาดใหญ่เกินไปและแฟกทอเรียลก็จะมหึมา ดูเหมือนจะเป็นคำถามที่ตอบง่ายจริงๆ แต่ฉันกำลังจมอยู่กับคำถามเกี่ยวกับการสร้างชุดค่าผสมที่แท้จริงทั้งหมดซึ่งไม่ใช่สิ่งที่ฉันต้องการ

8
การจับคีย์ผสม ctrl + z ในจาวาสคริปต์
ฉันพยายามจับภาพctrl+ zคีย์ผสมในจาวาสคริปต์ด้วยรหัสนี้: <html> <head> <title>Untitled Document</title> </head> <body> <script type='text/javascript'> function KeyPress(e) { var evtobj = window.event? event : e //test1 if (evtobj.ctrlKey) alert("Ctrl"); //test2 if (evtobj.keyCode == 122) alert("z"); //test 1 & 2 if (evtobj.keyCode == 122 && evtobj.ctrlKey) alert("Ctrl+z"); } document.onkeypress = KeyPress; </script> </body> </html> บรรทัดแสดงความคิดเห็น "test1" …

12
ทางเลือกอื่นที่เร็วกว่าสำหรับลูปแบบซ้อนกัน?
ฉันมีความต้องการที่จะสร้างรายการชุดตัวเลข ตัวเลขที่มีขนาดเล็กมากเพื่อให้สามารถใช้มากกว่าbyte intอย่างไรก็ตามต้องใช้ลูปที่ซ้อนกันหลายอันเพื่อให้ได้ชุดค่าผสมที่เป็นไปได้ทั้งหมด ฉันสงสัยว่าจะมีวิธีที่มีประสิทธิภาพมากกว่านี้ในการทำสิ่งที่ฉันต้องการหรือไม่ รหัสจนถึงตอนนี้คือ: var data = new List<byte[]>(); for (byte a = 0; a < 2; a++) for (byte b = 0; b < 3; b++) for (byte c = 0; c < 4; c++) for (byte d = 0; d < 3; d++) for (byte e = …
85 c#  combinations 

3
ค้นหาชุดค่าผสมของโพลีโม่ฟรีทั้งหมดภายในพื้นที่เฉพาะด้วยตัวแก้ SAT (Python)
ฉันยังใหม่ต่อโลกของนักแก้ปัญหา SAT และต้องการคำแนะนำเกี่ยวกับปัญหาต่อไปนี้ พิจารณาว่า: ❶ฉันมีเซลล์ที่อยู่ติดกันจำนวน 14 เซลล์ในตาราง 4 * 4 ❷ฉันมี 5 polyominoes (A, B, C, D, E) ขนาด 4, 2, 5, 2 และ 1 poly โพลีโม่โนเหล่านี้ไม่มีค่าเช่นรูปร่างของพวกมันไม่คงที่และสามารถสร้างรูปแบบที่แตกต่างกันได้ ฉันจะคำนวณการรวมกันที่เป็นไปได้ทั้งหมดของ 5 โพลีโม่ฟรีภายในพื้นที่ที่เลือก (เซลล์สีเทา) ด้วยตัวแก้ SAT ได้อย่างไร การยืมทั้งสองจากคำตอบที่ลึกซึ้งของ @ spinkus และเอกสาร OR-tools ฉันสามารถสร้างโค้ดตัวอย่างต่อไปนี้ (ทำงานในสมุดบันทึก Jupyter): from ortools.sat.python import cp_model import numpy as np …

2
รับการรวมกันที่มีประสิทธิภาพมากที่สุดของรายการวัตถุขนาดใหญ่ตามเขตข้อมูล
ฉันต้องการเพิ่มจำนวนดาวตามงบประมาณและขีด จำกัด สูงสุดของชุดค่าผสม ตัวอย่างคำถาม: ด้วยงบประมาณ 500 ยูโรเยี่ยมชมร้านอาหารที่อนุญาตสูงสุดหรือน้อยกว่ารับประทานอาหารและเก็บดาวให้ได้มากที่สุด ฉันกำลังมองหาที่จะเขียนอัลกอริทึมที่มีประสิทธิภาพซึ่งสามารถประมวลผลอินสแตนซ์ร้านอาหาร 1 ล้านร้านได้สูงสุด 10 ร้านอาหาร หมายเหตุนี่เป็นคำถามข้ามที่ฉันถามเมื่อวานนี้: Java: รับชุดค่าผสมที่มีประสิทธิภาพมากที่สุดของรายการวัตถุขนาดใหญ่ตามเขตข้อมูล วิธีแก้ปัญหาด้านล่างจะกำหนด 15 $ ต่อดาวให้กับr8ร้านอาหารซึ่งหมายความว่าเมื่อสร้างรายชื่อมันจะใส่เข้าไปในรายการก่อนและส่วนที่เหลือ 70 $ จะได้รับเพียง 2 ดาวเท่านั้นที่ให้รวม 4 ดาว อย่างไรก็ตามถ้ามันฉลาดพอที่จะข้ามr8ร้านอาหาร (แม้ว่าจะเป็นอัตราส่วนที่ดีที่สุดต่อหนึ่งดาว) r1ร้านอาหารจะเป็นตัวเลือกที่ดีกว่าสำหรับงบประมาณเพราะมันมีราคา 100 ดอลลาร์และ 5 ดาว ทุกคนสามารถช่วยลองแก้ปัญหาและเอาชนะวิธีแก้ปัญหาปัจจุบันได้หรือไม่ import itertools class Restaurant(): def __init__(self, cost, stars): self.cost = cost self.stars = stars self.ratio = …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.