ชุดค่าผสมที่เป็นไปได้ องค์ประกอบของเชิงผสม

การรวมกันคือการเลือกองค์ประกอบของเซตจำกัดที่มีจำนวนคงที่และไม่มีการซ้ำซ้อนขององค์ประกอบ ชุดค่าผสมที่แตกต่างกันจะต้องแตกต่างกันในองค์ประกอบอย่างน้อยหนึ่งรายการ และลำดับขององค์ประกอบนั้นไม่สำคัญ ตัวอย่างเช่น จากชุดสระตัวอักษรละตินทั้งหมด (AEIOU) คุณสามารถสร้างตัวอักษร 3 ตัวที่แตกต่างกันได้ 10 ตัว โดยสร้างแฝดสามแบบไม่เรียงลำดับต่อไปนี้:


เอไอเอ เออีโอ เออียู เอไอโอ ไอเอไอเอ เอไอโอ เออีไอเออียู ไอโอเอ.


เป็นที่น่าสนใจที่จะทราบว่าจากตัวอักษรห้าตัวเดียวกัน คุณยังสามารถรับชุดค่าผสมที่แตกต่างกัน 10 ชุดได้ หากคุณรวมตัวอักษร 2 ตัวในแต่ละครั้ง ทำให้ได้คู่ที่ไม่เรียงลำดับดังต่อไปนี้:


AE, AI, AO, AU, EI, EO, EU, IO, IU, OU.


อย่างไรก็ตาม หากคุณรวมอักษรละตินสระเดียวกันด้วย 4 คุณจะได้เพียง 5 ชุดที่แตกต่างกันดังต่อไปนี้:


เอไอโอ เอไอยู ไอโอ เอไอโอ เออีโอ


โดยทั่วไป เพื่อแสดงจำนวนการรวมกันขององค์ประกอบที่แตกต่างกัน n ขององค์ประกอบ m จะใช้สัญลักษณ์เชิงฟังก์ชัน ดัชนี หรือเวกเตอร์ (Appel) ต่อไปนี้:



ไม่ว่าสัญลักษณ์จะอยู่ในรูปแบบใดก็ตาม จำนวนการรวมกันขององค์ประกอบ n ตัวด้วยองค์ประกอบ m สามารถกำหนดได้โดยใช้สูตรคูณและสูตรแฟกทอเรียลต่อไปนี้:


ง่ายต่อการตรวจสอบว่าผลลัพธ์ของการคำนวณโดยใช้สูตรเหล่านี้เกิดขึ้นพร้อมกับผลลัพธ์ของตัวอย่างที่กล่าวถึงข้างต้นด้วยการผสมสระในตัวอักษรละติน โดยเฉพาะอย่างยิ่งเมื่อใช้ n=5 และ m=3 การคำนวณโดยใช้สูตรเหล่านี้จะให้ผลลัพธ์ดังต่อไปนี้:


ในกรณีทั่วไป สูตรสำหรับจำนวนชุดค่าผสมมีความหมายเชิงรวมกันและใช้ได้กับค่าจำนวนเต็มใดๆ ของ n และ m โดยที่ n > m > 0 ถ้า m > n และ m< 0, то число сочетаний равно 0, так как в этом случае основное множество из n элементов вообще не имеет подмножеств мощности m:



นอกจากนี้ จะมีประโยชน์ในการจดจำจำนวนจำกัดของชุดค่าผสมต่อไปนี้ ซึ่งสามารถตรวจสอบได้ง่าย ๆ โดยการแทนที่โดยตรงในสูตรคูณและแฟกทอเรียล:



ควรสังเกตด้วยว่าสูตรการคูณยังคงใช้ได้แม้ว่า n จะเป็นจำนวนจริง ตราบใดที่ m ยังคงเป็นค่าจำนวนเต็ม อย่างไรก็ตามผลลัพธ์ของการคำนวณที่ใช้ในขณะที่ยังคงความถูกต้องอย่างเป็นทางการจะสูญเสียความหมายเชิงรวมกัน


ข้อมูลประจำตัวของการรวมกัน


การใช้สูตรคูณและสูตรแฟกทอเรียลในทางปฏิบัติเพื่อกำหนดจำนวนชุดค่าผสมสำหรับค่าใดก็ได้ของ n และ m กลายเป็นผลผลิตเพียงเล็กน้อยเนื่องจากการเติบโตแบบทวีคูณของผลิตภัณฑ์แฟกทอเรียลของตัวเศษและตัวส่วน แม้ว่าค่า n และ m จะค่อนข้างน้อย แต่ผลิตภัณฑ์เหล่านี้ก็มักจะเกินความสามารถในการแสดงจำนวนเต็มในระบบคอมพิวเตอร์และซอฟต์แวร์สมัยใหม่ ยิ่งกว่านั้นค่าของพวกเขายังมากกว่าค่าผลลัพธ์ของจำนวนชุดค่าผสมซึ่งอาจมีขนาดค่อนข้างเล็ก ตัวอย่างเช่น จำนวนชุดค่าผสมขององค์ประกอบ n=10 คูณ m=8 มีเพียง 45 เท่านั้น อย่างไรก็ตาม หากต้องการค้นหาค่านี้โดยใช้สูตรแฟกทอเรียล คุณต้องคำนวณค่าที่มากกว่า 10 ก่อน! ในตัวเศษและ 8! ในตัวส่วน:


เพื่อกำจัดการดำเนินการที่ใช้เวลานานในการประมวลผลปริมาณมาก เพื่อกำหนดจำนวนชุดค่าผสม คุณสามารถใช้ความสัมพันธ์การเกิดซ้ำต่างๆ ซึ่งตามมาจากสูตรคูณและแฟกทอเรียลโดยตรง โดยเฉพาะอย่างยิ่ง ความสัมพันธ์การเกิดซ้ำต่อไปนี้ตามมาจากสูตรคูณ ซึ่งช่วยให้เราใช้อัตราส่วนของดัชนีเกินกว่าเครื่องหมายของจำนวนชุดค่าผสม:


สุดท้ายนี้ การรักษาค่าคงที่ตัวห้อยจะให้ความสัมพันธ์การเกิดซ้ำต่อไปนี้ ซึ่งหาได้ง่ายจากสูตรแฟกทอเรียลสำหรับจำนวนชุดค่าผสม:


หลังจากการแปลงเบื้องต้น ความสัมพันธ์การเกิดซ้ำที่เป็นผลลัพธ์ทั้งสามสามารถแสดงได้ในรูปแบบต่อไปนี้:



หากตอนนี้เราเพิ่มด้านซ้ายและด้านขวาของ 2 สูตรแรกและลดผลลัพธ์ลง n เราจะได้ความสัมพันธ์การเกิดซ้ำที่สำคัญ ซึ่งเรียกว่าเอกลักษณ์ของการบวกเลขผสม:


ข้อมูลประจำตัวการบวกให้กฎการเกิดซ้ำขั้นพื้นฐานเพื่อกำหนดจำนวนชุดค่าผสมสำหรับค่า n และ m ที่มีขนาดใหญ่ได้อย่างมีประสิทธิภาพ เนื่องจากช่วยให้การดำเนินการคูณในผลคูณแฟกทอเรียลถูกแทนที่ด้วยการดำเนินการบวกที่ง่ายกว่า และสำหรับชุดค่าผสมจำนวนน้อยลง โดยเฉพาะอย่างยิ่ง การใช้เอกลักษณ์การบวก ทำให้ตอนนี้ง่ายต่อการระบุจำนวนการรวมกันขององค์ประกอบ n=10 ด้วย m=8 ดังที่กล่าวไว้ข้างต้น โดยดำเนินการตามลำดับของการแปลงที่เกิดซ้ำต่อไปนี้:


นอกจากนี้ ความสัมพันธ์ที่เป็นประโยชน์หลายประการในการคำนวณผลรวมจำกัดสามารถได้มาจากเอกลักษณ์การบวก โดยเฉพาะสูตรสำหรับการบวกด้วยตัวห้อยซึ่งมีรูปแบบดังต่อไปนี้



ความสัมพันธ์นี้จะได้รับหากในเอกลักษณ์การบวก เราขยายการเกิดซ้ำตามคำด้วยตัวยกที่ใหญ่ที่สุดในขณะที่ตัวห้อยมีค่ามากกว่า 0 ตัวอย่างตัวเลขต่อไปนี้แสดงให้เห็นกระบวนการของการแปลงที่เกิดซ้ำนี้:



สูตรผลบวกตัวห้อยมักใช้ในการคำนวณผลรวมยกกำลังของจำนวนธรรมชาติ โดยเฉพาะอย่างยิ่ง สมมติว่า m=1 การใช้สูตรนี้จะทำให้ง่ายต่อการค้นหาผลรวมของจำนวน n หลักแรกของอนุกรมธรรมชาติ:


สูตรผลรวมที่มีประโยชน์อีกเวอร์ชันหนึ่งสามารถรับได้โดยการขยายการเกิดซ้ำของเอกลักษณ์การบวกตามคำด้วยตัวยกที่เล็กที่สุด ตัวอย่างตัวเลขต่อไปนี้แสดงให้เห็นเวอร์ชันของการแปลงที่เกิดซ้ำนี้:



ในกรณีทั่วไป จากการแปลงดังกล่าว จะได้ผลรวมของจำนวนชุดค่าผสม ซึ่งดัชนีทั้งสองมีความแตกต่างกันโดยตัวใดตัวหนึ่งจากพจน์ข้างเคียง และผลต่างของดัชนียังคงเป็นค่าคงที่ (ในตัวอย่างที่พิจารณาคือ ก็เท่ากับหนึ่งเช่นกัน) ดังนั้นเราจึงได้สูตรผลรวมต่อไปนี้สำหรับดัชนีทั้งสองของตัวเลขผสม:



นอกเหนือจากความสัมพันธ์การเกิดซ้ำและสูตรผลรวมที่กล่าวถึงข้างต้นแล้ว ยังมีการระบุที่เป็นประโยชน์อื่นๆ อีกมากมายสำหรับจำนวนการรวมกันในการวิเคราะห์เชิงผสมอีกด้วย สิ่งที่สำคัญที่สุดในหมู่พวกเขาคือ เอกลักษณ์ความสมมาตรซึ่งมีลักษณะดังนี้:



ความถูกต้องของเอกลักษณ์สมมาตรสามารถตรวจสอบได้ในตัวอย่างต่อไปนี้ โดยการเปรียบเทียบจำนวนการรวมกันของ 5 องค์ประกอบด้วย 2 และ (5 2) = 3:



อัตลักษณ์สมมาตรมีความหมายเชิงรวมกันที่ชัดเจน เนื่องจากเมื่อกำหนดจำนวนตัวเลือกสำหรับการเลือกองค์ประกอบ m จากองค์ประกอบ n รายการ ก็จะกำหนดจำนวนชุดค่าผสมจากองค์ประกอบที่เหลือ (นาโนเมตร) ที่ไม่ได้เลือกไปพร้อมๆ กัน ได้รับความสมมาตรที่ระบุทันทีโดยแทนที่ m ด้วย (nm) ในสูตรแฟกทอเรียลสำหรับจำนวนชุดค่าผสม:


ตัวเลขและอัตลักษณ์การรวมกันมีการใช้กันอย่างแพร่หลายในด้านต่างๆ ของคณิตศาสตร์เชิงคำนวณสมัยใหม่ อย่างไรก็ตาม การใช้งานที่ได้รับความนิยมมากที่สุดเกี่ยวข้องกับทวินามของนิวตันและสามเหลี่ยมปาสคาล

ทฤษฎีบททวินาม


เพื่อทำการแปลงทางคณิตศาสตร์และการคำนวณต่างๆ สิ่งสำคัญคือต้องสามารถแสดงพลังธรรมชาติของทวินามพีชคณิต (ทวินาม) ในรูปของพหุนามได้ สำหรับกำลังขนาดเล็ก สามารถหาพหุนามที่ต้องการได้อย่างง่ายดายโดยการคูณทวินามโดยตรง โดยเฉพาะอย่างยิ่ง สูตรต่อไปนี้สำหรับกำลังสองและกำลังสามของผลรวมของสองเทอมเป็นที่รู้จักกันดีจากหลักสูตรคณิตศาสตร์ระดับประถมศึกษา:



ในกรณีทั่วไป สำหรับระดับ n ของทวินามตามอำเภอใจ การเป็นตัวแทนที่จำเป็นในรูปแบบของพหุนามนั้นได้มาจากทฤษฎีบททวินามของนิวตัน ซึ่งประกาศว่าความเท่าเทียมกันต่อไปนี้เป็นจริง:



ความเท่าเทียมกันนี้มักเรียกว่าทวินามของนิวตัน พหุนามทางด้านขวานั้นเกิดจากผลรวมของผลคูณของ n เทอม X และ Y ของทวินามทางด้านซ้ายและค่าสัมประสิทธิ์ที่อยู่ข้างหน้าเรียกว่าทวินามและเท่ากับจำนวนการรวมกันกับดัชนีซึ่ง ได้จากอำนาจของตน เมื่อพิจารณาถึงความนิยมเป็นพิเศษของสูตรทวินามของนิวตันในการวิเคราะห์เชิงรวม คำว่าสัมประสิทธิ์ทวินามและจำนวนของค่าผสมจึงถือว่ามีความหมายเหมือนกัน


แน่นอนว่า สูตรผลบวกกำลังสองและกำลังสามเป็นกรณีพิเศษของทฤษฎีบททวินามสำหรับ n=2 และ n=3 ตามลำดับ ในการจัดการกับองศาที่สูงกว่า (n>3) ควรใช้สูตรทวินามของนิวตัน การประยุกต์สำหรับทวินามดีกรีที่สี่ (n=4) แสดงไว้ตามตัวอย่างต่อไปนี้:



ควรสังเกตว่าสูตรทวินามเป็นที่รู้จักกันก่อนนิวตันจนถึงนักคณิตศาสตร์ยุคกลางของอาหรับตะวันออกและยุโรปตะวันตก ดังนั้นชื่อที่ยอมรับกันโดยทั่วไปจึงไม่ถูกต้องในอดีต ข้อดีของนิวตันคือการที่เขาสรุปสูตรนี้ให้เป็นกรณีของเลขชี้กำลังจำนวนจริงตามอำเภอใจ r ซึ่งสามารถรับค่าตรรกยะและค่าอตรรกยะบวกหรือลบใดๆ ก็ได้ ในกรณีทั่วไป สูตรทวินามของนิวตันมีผลรวมอนันต์ทางด้านขวาและมักจะเขียนได้ดังนี้:



ตัวอย่างเช่นด้วยค่าเศษส่วนบวกของเลขชี้กำลัง r=1/2 โดยคำนึงถึงค่าของสัมประสิทธิ์ทวินาม จะได้การขยายตัวต่อไปนี้:


ในกรณีทั่วไป สูตรทวินามของนิวตันสำหรับเลขชี้กำลังใดๆ จะเป็นสูตรพิเศษของสูตรของแมคลอริน ซึ่งขยายฟังก์ชันตามใจชอบไปเป็นอนุกรมกำลังได้ นิวตันแสดงให้เห็นว่าสำหรับ |z|< 1 этот ряд сходится, и сумма в правой части становится конечной. При любой натуральной степени r = n в правой части также получается конечная сумма из (n+1) первых слагаемых, так как все C(n, k>น) = 0 . หากตอนนี้เราตั้งค่า Z=X/Y และคูณด้านซ้ายและด้านขวาด้วย Yn เราจะได้เวอร์ชันหนึ่งของสูตรทวินามของนิวตันที่กล่าวถึงข้างต้น


แม้จะมีความเป็นสากล แต่ทฤษฎีบททวินามยังคงรักษาความหมายเชิงรวมของมันไว้เฉพาะสำหรับเลขยกกำลังจำนวนเต็มที่ไม่เป็นลบของทวินามเท่านั้น ในกรณีนี้ สามารถใช้เพื่อพิสูจน์เอกลักษณ์ที่เป็นประโยชน์หลายประการสำหรับค่าสัมประสิทธิ์ทวินาม โดยเฉพาะอย่างยิ่ง สูตรสำหรับการรวมจำนวนชุดค่าผสมตามตัวห้อยและดัชนีทั้งสองถูกกล่าวถึงข้างต้น ข้อมูลเฉพาะตัวของการบวกตัวยกที่หายไปสามารถหาได้อย่างง่ายดายจากสูตรทวินามของนิวตัน โดยใส่ X = Y = 1 หรือ Z = 1 ลงไป:



ข้อมูลประจำตัวที่มีประโยชน์อีกประการหนึ่งจะกำหนดความเท่าเทียมกันของผลรวมของสัมประสิทธิ์ทวินามที่มีจำนวนคู่และจำนวนคี่ จะได้มาจากสูตรทวินามของนิวตันทันทีหาก ​​X = 1 และ Y = 1 หรือ Z = 1:



ในที่สุด จากทั้งสองเอกลักษณ์ที่พิจารณา เราได้เอกลักษณ์ของผลรวมของสัมประสิทธิ์ทวินามที่มีเพียงเลขคู่หรือเลขคี่เท่านั้น:



ขึ้นอยู่กับการระบุตัวตนที่พิจารณาและกฎที่เกิดซ้ำในการลบดัชนีออกจากใต้เครื่องหมายของจำนวนชุดค่าผสม สามารถรับความสัมพันธ์ที่น่าสนใจจำนวนหนึ่งได้ ตัวอย่างเช่น หากในสูตรการรวมตัวยก เราแทนที่ n ทุกที่ด้วย (n1) และลบดัชนีในแต่ละเทอม เราจะได้ความสัมพันธ์ดังต่อไปนี้:



การใช้เทคนิคที่คล้ายกันในสูตรสำหรับผลรวมของสัมประสิทธิ์ทวินามที่มีจำนวนคู่และเลขคี่ เป็นไปได้ที่จะพิสูจน์ความถูกต้องของความสัมพันธ์ต่อไปนี้:



ข้อมูลประจำตัวที่มีประโยชน์อีกประการหนึ่งช่วยให้คุณสามารถคำนวณผลรวมของผลิตภัณฑ์ของค่าสัมประสิทธิ์ทวินามที่อยู่ในตำแหน่งสมมาตรของสองทวินามที่มีองศาใดก็ได้ n และ k โดยใช้สูตร Cauchy ต่อไปนี้:



ความถูกต้องของสูตรนี้ตามมาจากความเท่าเทียมกันที่จำเป็นสำหรับสัมประสิทธิ์สำหรับระดับ m ใดๆ ของตัวแปร Z ทางด้านซ้ายและด้านขวาของความสัมพันธ์ที่เหมือนกันต่อไปนี้:



ในกรณีพิเศษ เมื่อ n=k=m เมื่อคำนึงถึงเอกลักษณ์ของสมมาตร จะได้สูตรที่ได้รับความนิยมมากกว่าสำหรับผลรวมของกำลังสองของสัมประสิทธิ์ทวินาม:



ข้อมูลเฉพาะที่เป็นประโยชน์อื่นๆ มากมายสำหรับค่าสัมประสิทธิ์ทวินามสามารถพบได้ในบทความที่ครอบคลุมเกี่ยวกับการวิเคราะห์เชิงรวม อย่างไรก็ตาม การนำไปใช้จริงที่มีชื่อเสียงที่สุดเกี่ยวข้องกับสามเหลี่ยมของปาสคาล


สามเหลี่ยมปาสคาล


สามเหลี่ยมเลขคณิตของปาสคาลก่อให้เกิดตารางตัวเลขอนันต์ที่ประกอบด้วยสัมประสิทธิ์ทวินาม เส้นของมันเรียงลำดับตามกำลังของทวินามจากบนลงล่าง ในแต่ละบรรทัด ค่าสัมประสิทธิ์ทวินามจะถูกจัดเรียงจากน้อยไปหามากของตัวยกของหมายเลขชุดค่าผสมที่เกี่ยวข้องจากซ้ายไปขวา สามเหลี่ยมของปาสคาลมักจะเขียนเป็นรูปหน้าจั่วหรือรูปสี่เหลี่ยมผืนผ้า


รูปแบบหน้าจั่วที่มองเห็นได้ชัดเจนยิ่งขึ้น ซึ่งค่าสัมประสิทธิ์ทวินามที่เซจะก่อตัวเป็นสามเหลี่ยมหน้าจั่วอนันต์ ส่วนเริ่มต้นสำหรับทวินามจนถึงระดับที่ 4 (n=4) มีรูปแบบดังต่อไปนี้:


โดยทั่วไป สามเหลี่ยมหน้าจั่วของปาสคาลเป็นกฎทางเรขาคณิตที่สะดวกในการกำหนดค่าสัมประสิทธิ์ทวินาม ซึ่งขึ้นอยู่กับเอกลักษณ์ของการบวกและความสมมาตรของการผสมตัวเลข โดยเฉพาะอย่างยิ่ง ตามเอกลักษณ์ของการบวก สัมประสิทธิ์ทวินามใดๆ คือผลรวมของสัมประสิทธิ์สองตัวของแถวก่อนหน้าที่ใกล้เคียงที่สุด ตามอัตลักษณ์สมมาตร สามเหลี่ยมหน้าจั่วของปาสคาลมีความสมมาตรด้วยความเคารพต่อเส้นแบ่งครึ่ง ดังนั้นแต่ละเส้นจึงเป็นพาลินโดรมตัวเลขของสัมประสิทธิ์ทวินาม คุณสมบัติพีชคณิตและเรขาคณิตที่ระบุทำให้สามารถขยายสามเหลี่ยมหน้าจั่วของปาสคาลได้อย่างง่ายดายและค้นหาค่าสัมประสิทธิ์ทวินามของกำลังตามอำเภอใจอย่างสม่ำเสมอ


อย่างไรก็ตาม หากต้องการศึกษาคุณสมบัติต่างๆ ของสามเหลี่ยมปาสคาล การใช้รูปแบบสี่เหลี่ยมที่เข้มงวดกว่าอย่างเป็นทางการจะสะดวกกว่า ในรูปแบบนี้ เมทริกซ์สามเหลี่ยมด้านล่างของค่าสัมประสิทธิ์ทวินามจะระบุไว้ โดยจะทำให้เกิดสามเหลี่ยมมุมฉากอนันต์ ส่วนเริ่มต้นของสามเหลี่ยมมุมฉากของปาสคาลสำหรับทวินามจนถึงระดับ 9 (n=9) มีรูปแบบดังต่อไปนี้:



ในเชิงเรขาคณิต ตารางสี่เหลี่ยมดังกล่าวได้มาจากการเปลี่ยนรูปสามเหลี่ยมหน้าจั่วของปาสคาลในแนวนอน ผลก็คือ ชุดตัวเลขที่ขนานกับด้านข้างของสามเหลี่ยมหน้าจั่วของปาสคาลกลายเป็นแนวตั้งและแนวทแยงของสามเหลี่ยมมุมฉากของปาสคาล และเส้นแนวนอนของสามเหลี่ยมทั้งสองนั้นตรงกัน ในเวลาเดียวกัน กฎของการบวกและความสมมาตรของสัมประสิทธิ์ทวินามยังคงใช้ได้ แม้ว่ารูปสามเหลี่ยมมุมฉากของปาสคาลจะสูญเสียลักษณะสมมาตรทางการมองเห็นของคู่หน้าจั่วของมันไป เพื่อชดเชยสิ่งนี้ จะสะดวกกว่าในการวิเคราะห์คุณสมบัติเชิงตัวเลขต่างๆ ของสัมประสิทธิ์ทวินามอย่างเป็นทางการสำหรับแนวนอน แนวตั้ง และแนวทแยงของสามเหลี่ยมมุมฉากของปาสคาล


เริ่มต้นการวิเคราะห์แนวนอนของสามเหลี่ยมมุมฉากของปาสคาล จะสังเกตเห็นได้ง่ายว่าผลรวมขององค์ประกอบของแถวใดๆ ที่มีเลข n เท่ากับ 2n ตามสูตรในการบวกทวินามด้วยตัวยก จากนี้ไปผลรวมขององค์ประกอบเหนือเส้นแนวนอนใดๆ ที่มีหมายเลข n เท่ากับ (2 n 1) ผลลัพธ์นี้จะค่อนข้างชัดเจนหากค่าของผลรวมขององค์ประกอบของแต่ละแนวนอนถูกเขียนในระบบเลขฐานสอง ตัวอย่างเช่น สำหรับ n=4 การบวกนี้สามารถเขียนได้ดังนี้:



ต่อไปนี้เป็นคุณสมบัติที่น่าสนใจอีกสองสามประการของแนวนอนที่เกี่ยวข้องกับกำลังของทั้งสองด้วย ปรากฎว่าหากตัวเลขแนวนอนเป็นกำลังของสอง (n=2 k) องค์ประกอบภายในทั้งหมด (ยกเว้นด้านนอก) จะเป็นเลขคู่ ในทางตรงกันข้าม จำนวนทั้งหมดของเส้นแนวนอนจะเป็นคี่ถ้าจำนวนนั้นน้อยกว่ากำลังสองหนึ่ง (n=2 k 1) ความถูกต้องของคุณสมบัติเหล่านี้สามารถตรวจสอบได้โดยการตรวจสอบความเท่าเทียมกันของสัมประสิทธิ์ทวินามภายใน เช่น ในแนวนอน n=4 และ n=3 หรือ n=8 และ n=7


ให้เลขแถวของสามเหลี่ยมมุมฉากของปาสคาลเป็นจำนวนเฉพาะ p จากนั้นสัมประสิทธิ์ทวินามภายในทั้งหมดหารด้วย p ลงตัว คุณสมบัตินี้ง่ายต่อการตรวจสอบค่าเล็กน้อยของจำนวนเฉพาะรูปร่าง ตัวอย่างเช่น ค่าสัมประสิทธิ์ทวินามภายในของแนวนอนที่ห้า (5, 10 และ 5) หารด้วย 5 ลงตัวอย่างเห็นได้ชัด เพื่อพิสูจน์ผลลัพธ์นี้สำหรับจำนวนเฉพาะแนวนอนใดๆ p คุณต้องเขียนสูตรคูณสำหรับค่าสัมประสิทธิ์ทวินามดังนี้:


เนื่องจาก p เป็นจำนวนเฉพาะ ดังนั้น จึงหารด้วย m! ไม่ได้ ผลคูณของตัวประกอบที่เหลือของตัวเศษของสูตรนี้จึงต้องหารด้วย m! ลงตัว เพื่อรับประกันค่าจำนวนเต็มของสัมประสิทธิ์ทวินาม ตามมาว่าอัตราส่วนในวงเล็บเหลี่ยมเป็นจำนวนธรรมชาติ N และผลลัพธ์ที่ต้องการจะชัดเจน:



จากการใช้ผลลัพธ์นี้ เราสามารถพิสูจน์ได้ว่าจำนวนของเส้นแนวนอนทั้งหมดของสามเหลี่ยมปาสคาล ซึ่งเป็นองค์ประกอบภายในที่หารด้วยจำนวนเฉพาะ p ที่กำหนดเป็นกำลังของ p นั่นคือ พวกมันมีรูปแบบ n=p k โดยเฉพาะอย่างยิ่ง ถ้า p=3 แล้วจำนวนเฉพาะ p จะไม่เพียงแต่แบ่งองค์ประกอบภายในทั้งหมดของแถวที่ 3 ตามที่ระบุข้างต้นเท่านั้น แต่ยังแบ่งตามแนวนอนที่ 9 (9, 36, 84 และ 126) ในทางกลับกัน ในรูปสามเหลี่ยมปาสคาล เป็นไปไม่ได้ที่จะหาเส้นแนวนอนที่องค์ประกอบภายในหารด้วยจำนวนประกอบทั้งหมด มิฉะนั้น จำนวนของเส้นแนวนอนดังกล่าวจะต้องยกกำลังของตัวหารเฉพาะของจำนวนประกอบพร้อมกัน โดยที่องค์ประกอบภายในทั้งหมดจะถูกหาร แต่เป็นไปไม่ได้ด้วยเหตุผลที่ชัดเจน


ข้อควรพิจารณาที่พิจารณาทำให้เราสามารถกำหนดเกณฑ์ทั่วไปต่อไปนี้สำหรับการแบ่งองค์ประกอบแนวนอนของสามเหลี่ยมปาสคาลได้ ตัวหารร่วมมาก (GCD) ขององค์ประกอบภายในทั้งหมดของเส้นแนวนอนของสามเหลี่ยมปาสคาลที่มีเลข n จะเท่ากับจำนวนเฉพาะ p ถ้า n=pk หรือ 1 ในกรณีอื่นๆ ทั้งหมด:


GCD(Cmn) = ( ) สำหรับ 0 ใดๆ< m < n .


โดยสรุปการวิเคราะห์แนวนอน ควรพิจารณาคุณสมบัติที่น่าสนใจอีกประการหนึ่งที่ชุดของสัมประสิทธิ์ทวินามที่ประกอบกันเป็นค่าเหล่านี้ หากค่าสัมประสิทธิ์ทวินามของเส้นแนวนอนใดๆ ที่มีเลข n คูณด้วยเลขยกกำลังต่อเนื่องกันของเลข 10 แล้วบวกผลคูณเหล่านี้ทั้งหมด ผลลัพธ์ที่ได้คือ 11 n เหตุผลอย่างเป็นทางการสำหรับผลลัพธ์นี้คือการแทนที่ค่า X=10 และ Y=1 (หรือ Z=1) ลงในสูตรทวินามของนิวตัน ตัวอย่างตัวเลขต่อไปนี้แสดงให้เห็นถึงการปฏิบัติตามคุณสมบัตินี้สำหรับ n=5:



การวิเคราะห์คุณสมบัติของแนวตั้งของสามเหลี่ยมมุมฉากของปาสคาลสามารถเริ่มต้นด้วยการศึกษาลักษณะเฉพาะขององค์ประกอบที่เป็นส่วนประกอบ อย่างเป็นทางการ m แนวตั้งแต่ละค่าถูกสร้างขึ้นโดยลำดับอนันต์ของสัมประสิทธิ์ทวินาม พร้อมด้วยตัวยกคงที่ (m) และเพิ่มตัวห้อย:



แน่นอนว่า เมื่อ m=0 จะได้ลำดับของจำนวนหนึ่ง และเมื่อ m=1 จะได้ลำดับของจำนวนธรรมชาติขึ้นมา เมื่อ m=2 แนวตั้งจะประกอบด้วยตัวเลขสามเหลี่ยม จำนวนสามเหลี่ยมแต่ละจำนวนสามารถแสดงบนระนาบได้ในรูปของสามเหลี่ยมด้านเท่า ซึ่งเต็มไปด้วยวัตถุใดๆ (นิวเคลียส) ที่จัดเรียงอยู่ในรูปแบบกระดานหมากรุก ในกรณีนี้ ค่าของตัวเลขสามเหลี่ยมแต่ละจำนวน T k จะกำหนดจำนวนเมล็ดที่เป็นตัวแทน และดัชนีจะแสดงจำนวนเมล็ดที่ต้องใช้เพื่อแสดง ตัวอย่างเช่น ตัวเลขสามเหลี่ยมเริ่มต้น 4 หลักแสดงถึงการกำหนดค่าต่อไปนี้ของจำนวนสัญลักษณ์นิวเคลียร์ "@" ที่สอดคล้องกัน:

ควรสังเกตว่าในทำนองเดียวกันเราสามารถนำตัวเลขกำลังสอง S k มาพิจารณาได้ ซึ่งได้มาจากการยกกำลังสองของจำนวนธรรมชาติ และโดยทั่วไปแล้ว ตัวเลขรูปหลายเหลี่ยมที่เกิดขึ้นจากการเติมรูปหลายเหลี่ยมปกติเป็นประจำ โดยเฉพาะตัวเลขกำลังสองเริ่มต้น 4 ตัวสามารถแสดงได้ดังนี้

เมื่อกลับมาที่การวิเคราะห์แนวดิ่งของสามเหลี่ยมปาสกาล เราจะสังเกตได้ว่าแนวดิ่งถัดไปที่ m=3 เต็มไปด้วยตัวเลขจัตุรมุข (ปิรามิด) จำนวน P k แต่ละตัวจะระบุจำนวนแกนที่สามารถจัดเรียงเป็นรูปจัตุรมุขได้ และดัชนีจะกำหนดจำนวนชั้นแกนสามเหลี่ยมแนวนอนของแถวแกนที่จำเป็นในการพรรณนาในพื้นที่สามมิติ ในกรณีนี้ ชั้นแนวนอนทั้งหมดจะต้องแสดงเป็นตัวเลขสามเหลี่ยมต่อเนื่องกัน องค์ประกอบของแนวตั้งต่อไปนี้ของสามเหลี่ยมปาสคาลสำหรับ m>3 ก่อให้เกิดอนุกรมของจำนวนไฮเปอร์เตตระฮีด ซึ่งไม่มีการตีความทางเรขาคณิตด้วยการมองเห็นบนระนาบหรือในปริภูมิสามมิติ แต่สอดคล้องอย่างเป็นทางการกับอะนาล็อกหลายมิติของจำนวนสามเหลี่ยมและจัตุรมุข


แม้ว่าชุดตัวเลขแนวตั้งของสามเหลี่ยมปาสคาลจะมีลักษณะรูปทรงเฉพาะตัวที่พิจารณาแล้ว แต่สำหรับพวกเขาก็สามารถคำนวณผลรวมบางส่วนของค่าขององค์ประกอบเริ่มต้นในลักษณะเดียวกันได้โดยใช้สูตรสำหรับการรวมจำนวนชุดค่าผสมด้วยตัวห้อย . ในสามเหลี่ยมปาสคาล สูตรนี้มีการตีความทางเรขาคณิตดังต่อไปนี้ ผลรวมของค่าของค่าสัมประสิทธิ์ทวินามบนของแนวดิ่งใด ๆ เท่ากับค่าขององค์ประกอบของแนวดิ่งถัดไปซึ่งอยู่ที่หนึ่งบรรทัดด้านล่าง ผลลัพธ์นี้ยังสอดคล้องกับโครงสร้างทางเรขาคณิตของจำนวนสามเหลี่ยม จัตุรมุข และไฮเปอร์เตตราฮีดอล เนื่องจากการแทนจำนวนแต่ละจำนวนนั้นประกอบด้วยชั้นแกนกลางที่แสดงถึงหมายเลขลำดับที่ต่ำกว่า โดยเฉพาะอย่างยิ่ง สามารถรับเลขสามเหลี่ยมตัวที่ n T n ได้โดยการรวมตัวเลขธรรมชาติทั้งหมดที่เป็นตัวแทนของชั้นเชิงเส้น:


ในทำนองเดียวกัน การค้นหาเลขจัตุรมุข Pn ไม่ใช่เรื่องยากโดยการคำนวณผลรวมของตัวเลขสามเหลี่ยม n ตัวแรกที่ประกอบเป็นชั้นแกนกลางแนวนอนดังต่อไปนี้:


นอกจากแนวนอนและแนวตั้งในรูปสามเหลี่ยมมุมฉากของปาสคาลแล้ว เรายังสามารถติดตามองค์ประกอบที่เป็นแถวแนวทแยงได้ ซึ่งการศึกษาคุณสมบัติขององค์ประกอบนั้นก็น่าสนใจเช่นกัน ในกรณีนี้ มักจะแยกความแตกต่างระหว่างเส้นทแยงมุมจากมากไปหาน้อยและจากน้อยไปหามาก เส้นทแยงมุมลงจะขนานกับด้านตรงข้ามมุมฉากของสามเหลี่ยมมุมฉากของปาสคาล พวกมันถูกสร้างขึ้นโดยชุดของสัมประสิทธิ์ทวินามโดยเพิ่มขึ้นจากดัชนีทั้งสอง เนื่องจากเอกลักษณ์ของความสมมาตร เส้นทแยงมุมจากมากไปน้อยจึงตรงกับค่าขององค์ประกอบกับแถวแนวตั้งที่สอดคล้องกันของสามเหลี่ยมปาสคาล และดังนั้นจึงทำซ้ำคุณสมบัติทั้งหมดที่กล่าวถึงข้างต้น ความสอดคล้องที่ระบุสามารถตรวจสอบได้ด้วยความบังเอิญของค่าขององค์ประกอบของเส้นทแยงมุมจากมากไปหาน้อยและแนวตั้งด้วยตัวเลขใด ๆ n หากไม่คำนึงถึงศูนย์แนวตั้ง:



เส้นทแยงมุมจากน้อยไปมากก่อให้เกิดอนุกรมตัวเลขในแนวตั้งฉากทางเรขาคณิตกับด้านตรงข้ามมุมฉากของสามเหลี่ยมมุมฉากของปาสคาล พวกมันเต็มไปด้วยค่าสัมประสิทธิ์ทวินามโดยมีค่าลดลงและการเพิ่มขึ้นของตัวยก โดยเฉพาะอย่างยิ่ง เส้นทแยงมุมจากน้อยไปหามากทั้ง 7 เส้นจะสร้างลำดับตัวเลขต่อไปนี้ โดยไม่คำนึงถึงศูนย์ต่อท้าย:



โดยทั่วไป จำนวนเส้นทแยงมุมจากน้อยไปหามาก n มีค่าสัมประสิทธิ์ทวินามต่อไปนี้ ซึ่งผลรวมของดัชนีของแต่ละค่าจะเท่ากับ (n1):



องค์ประกอบในแนวทแยงแต่ละองค์ประกอบจะเท่ากับผลรวมขององค์ประกอบทั้งสองที่สอดคล้องกันในดัชนีจากเส้นทแยงมุมจากน้อยไปหามากก่อนหน้าสองรายการ โดยอาศัยเอกลักษณ์การบวกสำหรับหมายเลขรวมกัน วิธีนี้ทำให้แต่ละเส้นทแยงมุมจากน้อยไปหามากที่ตามมาจะถูกสร้างขึ้นโดยการรวมองค์ประกอบแนวนอนที่อยู่ติดกันในทิศทางคู่จากเส้นทแยงมุมสองเส้นก่อนหน้า โดยขยายสามเหลี่ยมของปาสคาลออกไปตามแนวทแยงอย่างไม่สิ้นสุด ชิ้นส่วนของสามเหลี่ยมปาสกาลต่อไปนี้แสดงการสร้างเส้นทแยงมุมหมายเลข 8 จากน้อยไปหามากไปตามเส้นทแยงมุมหมายเลข 6 และ 7:

ด้วยวิธีการสร้างนี้ ผลรวมขององค์ประกอบของเส้นทแยงมุมจากน้อยไปมากใดๆ เริ่มตั้งแต่วันที่ 3 จะเท่ากับผลรวมขององค์ประกอบของเส้นทแยงมุมจากน้อยไปหามากก่อนหน้าสองเส้น และเส้นทแยงมุม 2 เส้นแรกประกอบด้วยองค์ประกอบเดียวเท่านั้น คือ ค่า ซึ่งก็คือ 1 ผลลัพธ์ของการคำนวณที่สอดคล้องกันจะสร้างชุดตัวเลขต่อไปนี้ ซึ่งคุณสามารถตรวจสอบความถูกต้องของคุณสมบัติที่พิจารณาของเส้นทแยงมุมจากน้อยไปหามากของสามเหลี่ยมมุมฉากของปาสคาล:



จากการวิเคราะห์ตัวเลขเหล่านี้ คุณจะเห็นว่าตามกฎที่คล้ายกัน ลำดับที่รู้จักกันดีของตัวเลขฟีโบนัชชีถูกสร้างขึ้น โดยที่ตัวเลขถัดไปแต่ละตัวจะเท่ากับผลรวมของตัวเลขสองตัวก่อนหน้า และตัวเลขสองตัวแรกมีค่าเท่ากับ 1:



ดังนั้นเราจึงได้ข้อสรุปที่สำคัญดังต่อไปนี้: ผลรวมแนวทแยงขององค์ประกอบของสามเหลี่ยมปาสคาลประกอบขึ้นเป็นลำดับฟีโบนักชี คุณสมบัตินี้ช่วยให้เราสามารถสร้างคุณลักษณะที่น่าสนใจอีกประการหนึ่งของสามเหลี่ยมปาสคาลได้ การขยายสูตรฟีโบนัชชีแบบวนซ้ำ เป็นเรื่องง่ายที่จะพิสูจน์ว่าผลรวมของตัวเลข n ฟีโบนักชีตัวแรกเท่ากับ (F n+2 1)

ดังนั้น ผลรวมของสัมประสิทธิ์ทวินามที่เติมเส้นทแยงมุม n เส้นบนก็เท่ากับ (F n+2 1) ผลรวมของเส้นทแยงมุม n เส้นแรกของสามเหลี่ยมปาสกาลคือ 1 น้อยกว่าผลรวมของสัมประสิทธิ์ทวินามที่อยู่บนเส้นทแยงมุมที่มีตัวเลข (n+2)


โดยสรุป ควรสังเกตว่าคุณสมบัติที่พิจารณาของแนวนอน แนวตั้ง และเส้นทแยงมุมของสามเหลี่ยมปาสกาลนั้นไม่ได้ทำให้ความเป็นไปได้มากมายที่เชื่อมโยงแง่มุมทางคณิตศาสตร์ต่างๆ เข้าด้วยกัน ซึ่งเมื่อมองแวบแรกไม่มีอะไรที่เหมือนกันเลย คุณสมบัติที่ผิดปกติดังกล่าวทำให้เราพิจารณาสามเหลี่ยมของปาสคาลได้ว่าเป็นหนึ่งในระบบตัวเลขที่สมบูรณ์แบบที่สุด ซึ่งความสามารถทั้งหมดไม่สามารถระบุได้และเป็นการยากที่จะประเมินค่าสูงไป


อัลกอริทึมสำหรับการคำนวณจำนวนชุดค่าผสมโดยใช้สามเหลี่ยมของปาสคาลแสดงไว้ด้านล่าง:

ฟังก์ชั่นส่วนตัว SochTT (ByVal n As Integer, ByVal k As Integer) As Double Dim i As Integer Dim j As Integer Dim TT () As Double ReDim TT (n, k) For i = 0 To n TT (0, i) = 1 TT (i, i) = 1 ถัดไป สำหรับ i = 2 ถึง n สำหรับ j = 1 ถึง i - 1 TT (i, j) = TT (i - 1, j - 1) + TT (i - 1, j) ถัดไป ถัดไป SochTT = TT (n, k) สิ้นสุดฟังก์ชัน


หากคุณต้องการคำนวณจำนวนชุดค่าผสมหลายๆ ครั้ง การสร้างสามเหลี่ยมปาสคาลครั้งเดียวอาจสะดวกกว่า จากนั้นจึงรับข้อมูลจากอาร์เรย์

Dim TT () As Double Private Sub CreateTT () ReDim TT (0, 0) BuildTT 0, 0 End Sub Private Function SochTT (ByVal n As Integer, ByVal k As Integer) As Double If n > Ubound (TT) จากนั้น BuildTT Ubound (TT) + 1, n SochTT = TT (n, k) End Function Private Sub TerminateTT () ReDim TT (0, 0) End Sub Private Sub BuildTT (ByVal เริ่มเป็นจำนวนเต็ม, ByVal สิ้นสุดเป็นจำนวนเต็ม) Dim i As Integer Dim j As Integer ReDim รักษา TT (สิ้นสุด, สิ้นสุด) สำหรับ i = เริ่มต้น เพื่อสิ้นสุด TT (0, i) = 1 TT (i, i) = 1 ถัดไป หากสิ้นสุด< 2 Then Exit Sub If start < 2 Then start = 2 For i = start To end For j = 1 To i - 1 TT (i, j) = TT (i - 1, j - 1) + TT (i - 1, j) Next Next End Sub


ก่อนอื่นคุณต้องเรียกขั้นตอน CreateTT จากนั้นคุณสามารถรับจำนวนชุดค่าผสมได้โดยใช้ฟังก์ชัน SochTT เมื่อคุณไม่ต้องการรูปสามเหลี่ยมอีกต่อไป ให้เรียกขั้นตอน TerminateTT ในโค้ดข้างต้น เมื่อเรียกใช้ฟังก์ชัน SochTT หากสามเหลี่ยมยังไม่เสร็จสมบูรณ์ถึงระดับที่ต้องการ ก็จะเสร็จสมบูรณ์โดยใช้ขั้นตอน BuildTT ฟังก์ชันจะรับองค์ประกอบที่ต้องการของอาร์เรย์ TT แล้วส่งคืน


Dim X () As Integer Dim Counter () As Integer Dim K As Integer Dim N As Integer Public Sub Soch() Dim i As Integer N = CInt(InputBox("Enter N")) K = CInt(InputBox("Enter K ")) K = K + 1 ReDim X(N) สำหรับ i = 1 ถึง N X(i) = i ถัดไป txtOut.Text = "" ReDim Counter(K) Counter(0) = 1 SochGenerate 1 End Sub Private Sub SochGenerate( ByVal c As Integer) Dim i As Integer Dim j As Integer Dim n1 As Integer Dim Out() As Integer Dim X1() As Integer If c = K แล้ว Dim Out (K) X1 = X For i = 1 To K - 1 n1 = 0 สำหรับ j = 1 ถึง N ถ้า X1(j)<>0 จากนั้น n1 = n1 + 1 ถ้า n1 = Counter(i) จากนั้น Out(i) = X1(j) X1(j) = 0 ออกเพื่อสิ้นสุดถ้าถัดไป txtOut.Text = txtOut.Text & CStr(Out(i)) ถัดไป txtOut.Text = txtOut.Text & vbCrLf อื่น ๆ สำหรับ Counter(c) = Counter(c - 1) ถึง N - c + 1 SochGenerate c + 1 Next End ถ้า End Sub

การรวมรายการของตัวเลขธรรมชาติ


ในการแก้ปัญหาเชิงปฏิบัติหลายๆ ข้อ จำเป็นต้องแสดงรายการผลรวมของจำนวนนับคงที่ทั้งหมดที่สามารถได้รับจากองค์ประกอบของเซตจำกัดที่กำหนด ไม่ใช่แค่กำหนดจำนวนเท่านั้น เมื่อคำนึงถึงความเป็นไปได้ที่มีอยู่ตลอดเวลาในการนับจำนวนเต็มขององค์ประกอบของเซตจำกัดใดๆ ในกรณีส่วนใหญ่ เราอนุญาตให้จำกัดการใช้อัลกอริทึมในการแจงนับชุดค่าผสมของจำนวนธรรมชาติได้ สิ่งที่เป็นธรรมชาติและเรียบง่ายที่สุดคืออัลกอริทึมสำหรับแสดงรายการชุดค่าผสมของตัวเลขธรรมชาติ ลำดับพจนานุกรม.


ในการอธิบายอัลกอริธึมนี้อย่างเป็นทางการ จะสะดวกที่จะถือว่าเซตหลักซึ่งต้องระบุองค์ประกอบ m ทั้งหมดรวมกันนั้น จะสร้างจำนวนธรรมชาติติดต่อกันตั้งแต่ 1 ถึง n แล้วผลรวมของ m ใดๆ

จากการเรียงลำดับ ค่าในแต่ละตำแหน่งของเวกเตอร์ของการรวมกันดังกล่าวจะถูกจำกัดค่าจากด้านบนและด้านล่างตามธรรมชาติดังนี้:



อัลกอริธึมพจนานุกรมจะสร้างเวกเตอร์รวมกันตามลำดับโดยเริ่มจากเวกเตอร์ที่เล็กที่สุดในพจนานุกรมโดยที่ตำแหน่งทั้งหมดมีค่าต่ำสุดที่เป็นไปได้ขององค์ประกอบซึ่งเท่ากับดัชนี:



เวกเตอร์การรวมกันที่ต่อเนื่องกันแต่ละรายการจะถูกสร้างขึ้นจากเวกเตอร์ปัจจุบันหลังจากสแกนองค์ประกอบจากซ้ายไปขวา เพื่อค้นหาองค์ประกอบขวาสุดที่ยังไม่ถึงค่าจำกัด:



ค่าขององค์ประกอบดังกล่าวควรเพิ่มขึ้น 1 แต่ละองค์ประกอบทางด้านขวาควรกำหนดค่าที่น้อยที่สุดที่เป็นไปได้ ซึ่งมากกว่า 1 เพื่อนบ้านทางด้านซ้าย หลังจากการเปลี่ยนแปลงเหล่านี้ เวกเตอร์ถัดไปของการรวมกันจะมีองค์ประกอบองค์ประกอบดังต่อไปนี้:



ดังนั้นเวกเตอร์การรวมกันถัดไปจะมีขนาดใหญ่กว่าเวกเตอร์ก่อนหน้าเนื่องจากค่าขององค์ประกอบเริ่มต้น (j1) มีค่าเท่ากันและค่าขององค์ประกอบที่ตำแหน่ง j มากกว่าค่าก่อนหน้า 1 . ความสัมพันธ์ที่ระบุของลำดับพจนานุกรมที่เพิ่มขึ้นรับประกันว่าจะเป็นไปตามการวนซ้ำของอัลกอริทึม ผลลัพธ์คือลำดับพจนานุกรมที่เพิ่มขึ้น ซึ่งเสร็จสมบูรณ์ด้วยเวกเตอร์การรวมพจนานุกรมที่ใหญ่ที่สุด โดยที่องค์ประกอบในทุกตำแหน่งมีค่าสูงสุดดังต่อไปนี้:



อัลกอริธึมพจนานุกรมที่พิจารณาจะแสดงตัวอย่างตามตัวอย่างต่อไปนี้ โดยจำเป็นต้องแสดงรายการลำดับพจนานุกรมที่เพิ่มขึ้นทั้ง 15 ชุดของ n=6 จำนวนธรรมชาติตัวแรกด้วยตัวเลข m=4 นั่นคือ ชุดย่อย 4 องค์ประกอบที่เป็นไปได้ทั้งหมดของการสร้างหลัก ชุด (1, 2, 3, 4 , 5, 6) จาก 6 องค์ประกอบ ผลการคำนวณแสดงไว้ในตารางต่อไปนี้:

ในตัวอย่างนี้ ค่าที่อนุญาตที่ใหญ่ที่สุดของตัวเลขในตำแหน่งของเวกเตอร์การรวมกันคือ 3, 4, 5 และ 6 ตามลำดับ เพื่อความสะดวกในการตีความผลลัพธ์ ในเวกเตอร์การรวมกันแต่ละรายการ องค์ประกอบที่อยู่ทางขวาสุดซึ่งมี ยังไม่ถึงค่าสูงสุด ให้ขีดเส้นใต้ไว้ ดัชนีตัวเลขของเวกเตอร์ผสมจะกำหนดตัวเลขตามลำดับพจนานุกรม ในกรณีทั่วไป หมายเลขพจนานุกรม N ของการรวมกันขององค์ประกอบ n คูณ m สามารถคำนวณได้โดยใช้สูตรต่อไปนี้ โดยที่ด้วยเหตุผลด้านความสวยงาม สัญลักษณ์ Appel ใช้เพื่อแสดงถึงจำนวนชุดค่าผสม:



โดยเฉพาะอย่างยิ่ง การคำนวณต่อไปนี้โดยใช้สูตรนี้สำหรับหมายเลขรวม (1, 3, 4, 6) ขององค์ประกอบ n=6 ของ m=4 ตามลำดับพจนานุกรมจะให้ผลลัพธ์ N=8 ซึ่งสอดคล้องกับตัวอย่างที่กล่าวถึงข้างต้น:



ในกรณีทั่วไป การใช้เอกลักษณ์สำหรับผลรวมของจำนวนชุดค่าผสมสำหรับดัชนีทั้งสอง สามารถแสดงว่าจำนวนชุดค่าผสมที่เล็กที่สุดในพจนานุกรม (1, ... i, ... m) เมื่อคำนวณโดยใช้สิ่งนี้ สูตรจะเท่ากับ 1 เสมอ:



เห็นได้ชัดว่าจำนวนของชุดค่าผสมที่ใหญ่ที่สุดตามพจนานุกรม (m, … nm+i, … n) เมื่อคำนวณโดยใช้สูตรนี้จะเท่ากับจำนวนชุดค่าผสมขององค์ประกอบ n ตัวด้วย m:



สูตรในการคำนวณหมายเลขชุดค่าผสมพจนานุกรมสามารถใช้เพื่อแก้ปัญหาผกผัน โดยคุณต้องหาเวกเตอร์ชุดค่าผสมตามจำนวนตามลำดับพจนานุกรม ในการแก้ปัญหาผกผันจะต้องเขียนในรูปแบบของสมการโดยที่ค่าที่ไม่รู้จักทั้งหมดขององค์ประกอบของเวกเตอร์ของชุดค่าผสมที่ต้องการ (C 1, ... C i, ... C m ) มีความเข้มข้นในจำนวนการรวมกันของด้านขวาและความแตกต่างที่ทราบ L ของจำนวนชุดค่าผสมจะถูกเขียนที่ด้านซ้ายขององค์ประกอบ n แต่ละ m และจำนวนของชุดค่าผสมที่ต้องการ N:



การแก้สมการนี้ได้มาจากอัลกอริธึม "โลภ" ต่อไปนี้ในระหว่างการวนซ้ำซึ่งค่าขององค์ประกอบของเวกเตอร์ของชุดค่าผสมที่ต้องการจะถูกเลือกตามลำดับ ในการวนซ้ำครั้งแรก จะมีการเลือกค่าต่ำสุดที่เป็นไปได้ (ภายในข้อจำกัด) ของ C 1 ซึ่งเทอมแรกทางด้านขวาจะมีค่าสูงสุดไม่เกิน L:



ตอนนี้ด้านซ้ายของ L ควรลดลงด้วยจำนวนชุดค่าผสมแรกทางด้านขวาโดยมีค่าที่เลือกเป็น C 1 และกำหนดค่าของ C 2 ในทำนองเดียวกันในการวนซ้ำครั้งที่สอง:



ในทำนองเดียวกันควรทำการวนซ้ำที่ตามมาทั้งหมดเพื่อเลือกค่าขององค์ประกอบอื่น ๆ ทั้งหมด C i ของชุดค่าผสมที่ต้องการ จนถึงองค์ประกอบสุดท้าย C m:



ด้วยเหตุผลที่ชัดเจน ค่าขององค์ประกอบสุดท้าย C m สามารถกำหนดได้จากความเท่าเทียมกันของจำนวนชุดค่าผสมกับค่าคงเหลือทางด้านซ้ายของ L:



ควรสังเกตว่าค่าขององค์ประกอบสุดท้ายของชุดค่าผสม C m สามารถพบได้ง่ายยิ่งขึ้นโดยไม่ต้องแจกแจงค่าที่เป็นไปได้:



การดำเนินการวนซ้ำของอัลกอริธึมที่พิจารณานั้นแสดงไว้ในตัวอย่างต่อไปนี้ โดยจำเป็นต้องพิจารณาการรวมกันกับตัวเลข N=8 ตามลำดับพจนานุกรม หาก n=6 และ m=4:



ความสามารถของอัลกอริธึมในการกำหนดชุดค่าผสมตามหมายเลขที่กำหนดตามลำดับพจนานุกรมสามารถใช้ได้ในทิศทางต่างๆ โดยเฉพาะอย่างยิ่งเมื่อแสดงรายการชุดค่าผสมตามลำดับพจนานุกรม จำเป็นต้องตรวจสอบให้แน่ใจว่าได้กลับไปสู่ชุดค่าผสมใด ๆ ที่ได้รับมาก่อนหน้านี้ เพียงทราบเพียงหมายเลขเท่านั้นก็เพียงพอแล้ว นอกจากนี้ยังเป็นไปได้ที่จะสร้างชุดค่าผสมในลำดับใดก็ได้ซึ่งควบคุมโดยลำดับหมายเลขพจนานุกรมที่กำหนดโดยพลการ


ตอนนี้เรานำเสนออัลกอริทึมสำหรับการสร้างชุดค่าผสมตามลำดับพจนานุกรม:


2 สำหรับ i:= 1 ถึง k ทำ A[i] := i;

5 เริ่มเขียน(A, …, A[k]);

6 ถ้า A[k] = n แล้ว p:= p 1 อย่างอื่น p:= k;

8 สำหรับ i:= k ลงไปที่ p ทำ A[i] := A[p] + i p + 1


การผสมกับองค์ประกอบที่ซ้ำกัน


ต่างจากการผสมผสานแบบคลาสสิกที่องค์ประกอบทั้งหมดแตกต่างกัน การรวมกันที่มีการทำซ้ำทำให้เกิดการเลือกองค์ประกอบของเซตจำกัดแบบไม่เรียงลำดับ โดยที่องค์ประกอบใดๆ สามารถปรากฏได้บ่อยครั้งไม่จำกัดและไม่จำเป็นต้องปรากฏอยู่ในสำเนาเดียว ในกรณีนี้ จำนวนการซ้ำขององค์ประกอบมักจะถูกจำกัดด้วยความยาวของชุดค่าผสมเท่านั้น และชุดค่าผสมที่แตกต่างกันในองค์ประกอบอย่างน้อยหนึ่งรายการจะถือว่าแตกต่างกัน ตัวอย่างเช่น โดยการเลือกตัวเลขที่แตกต่างกัน 4 ตัวจากชุด 1, 2 และ 3 คุณสามารถสร้างชุดค่าผสม 15 ชุดต่อไปนี้พร้อมการทำซ้ำ:


1111 1112 1113 1122 1123 1133 1222 1223 1233 1333 2222 2223 2233 2333 3333.


โดยทั่วไป การรวมกันที่มีการทำซ้ำสามารถเกิดขึ้นได้โดยการเลือกองค์ประกอบ n รายการตามประเภทที่ต้องการ อย่างไรก็ตาม สามารถเชื่อมโยงกับจำนวนธรรมชาติที่ต่อเนื่องกันตั้งแต่ 1 ถึง n ได้เสมอ จากนั้นการรวมกันของ m ตัวเลขที่แตกต่างกันในช่วงนี้สามารถเขียนได้ในรูปแบบเวกเตอร์ โดยจัดเรียงตามลำดับแบบไม่ลดลงจากซ้ายไปขวา:



โดยธรรมชาติแล้ว ด้วยรูปแบบนี้ องค์ประกอบที่อยู่ใกล้เคียงสามารถมีค่าเท่ากันได้เนื่องจากมีความเป็นไปได้ที่จะเกิดซ้ำไม่จำกัด อย่างไรก็ตาม เวกเตอร์การรวมแต่ละองค์ประกอบที่มีการซ้ำของสมาชิก n ตัวด้วย m สามารถเชื่อมโยงกับเวกเตอร์รวมขององค์ประกอบ (n+m−1) ด้วย m ได้ ซึ่งมีโครงสร้างดังนี้



เป็นที่ชัดเจนว่าสำหรับค่าใด ๆ ขององค์ประกอบของเวกเตอร์ f องค์ประกอบของเวกเตอร์ C รับประกันว่าจะแตกต่างและเรียงลำดับอย่างเคร่งครัดเพื่อเพิ่มลำดับของค่าจากช่วงตั้งแต่ 1 ถึง (n+m1) : :



การมีอยู่ของการติดต่อกันแบบหนึ่งต่อหนึ่งระหว่างองค์ประกอบของเวกเตอร์รวมกัน f และ C ช่วยให้เราสามารถเสนอวิธีการง่าย ๆ ต่อไปนี้สำหรับการแสดงรายการชุดค่าผสมอย่างเป็นระบบด้วยการซ้ำซ้อนขององค์ประกอบ n ด้วย m จำเป็นต้องแสดงรายการตามลำดับพจนานุกรมเท่านั้น ชุดค่าผสม C ทั้งหมดขององค์ประกอบ (n+m1) ของ m โดยเปลี่ยนองค์ประกอบของแต่ละองค์ประกอบตามลำดับเป็นองค์ประกอบที่สอดคล้องกันของการรวมกันพร้อมการซ้ำ f โดยใช้สูตรต่อไปนี้:



เป็นผลให้เกิดลำดับของเวกเตอร์ของการรวมกันกับการซ้ำขององค์ประกอบซึ่งจัดเรียงตามลำดับที่สร้างขึ้นโดยการแสดงรายการชุดค่าผสมที่สอดคล้องกันโดยไม่มีองค์ประกอบซ้ำ โดยเฉพาะอย่างยิ่งเพื่อให้ได้ลำดับข้างต้นของการรวมกันของ 3 หลัก 1, 2 และ 3 ด้วยการซ้ำ 4 หลักจำเป็นต้องแสดงรายการตามลำดับพจนานุกรมชุดค่าผสมทั้งหมดโดยไม่ต้องซ้ำ 6 หลัก 1,2,3,4, 5 และ 6 ตัวละ 4 หลัก แปลงตามที่ระบุ ตัวอย่างต่อไปนี้แสดงการแปลงชุดค่าผสม (1,3,4,6) ด้วยหมายเลขพจนานุกรม 8:



การพิจารณาความสอดคล้องแบบหนึ่งต่อหนึ่งระหว่างชุดค่าผสมที่มีและไม่มีการซ้ำซ้อนขององค์ประกอบ หมายความว่าชุดขององค์ประกอบเหล่านั้นมีพลังเท่าเทียมกัน ดังนั้น ในกรณีทั่วไป จำนวนชุดค่าผสมที่มีการซ้ำของสมาชิก n ตัวคูณ m จะเท่ากับจำนวนชุดค่าผสมที่ไม่มีการซ้ำของสมาชิก (n+m1) ด้วย m การใช้สัญลักษณ์เดียวกันเพื่อแสดงจำนวนชุดค่าผสมที่มีการซ้ำ f และไม่มีการซ้ำ C ความเท่าเทียมกันนี้สามารถเขียนได้ดังนี้:


เป็นเรื่องง่ายที่จะตรวจสอบว่าสำหรับตัวอย่างที่พิจารณาข้างต้น โดยที่ n=3 และ m=4 จำนวนชุดค่าผสมการทำซ้ำจะเท่ากับ 15 ซึ่งเกิดขึ้นพร้อมกับผลลัพธ์ของการลงรายการโดยตรง:


ควรสังเกตว่าค่าของพารามิเตอร์รวมที่มีการซ้ำ n และ m ไม่เกี่ยวข้องกันโดยตรงซึ่งแตกต่างจากเวอร์ชันคลาสสิก ดังนั้น f(n,m)>0 สำหรับการรวมกันของค่าบวกใด ๆ เงื่อนไขขอบเขตที่สอดคล้องกันถูกกำหนดจากความเท่าเทียมกันระหว่างค่าของ (n+m1) และ (n1) หรือ (n+m1) และ m:



ควรชัดเจนด้วยว่าถ้า m เท่ากับ 1 แสดงว่าองค์ประกอบใดซ้ำกันไม่ได้ ดังนั้น สำหรับค่าบวกใดๆ ของ n>0 ความเท่าเทียมกันต่อไปนี้จะเป็นจริง:


นอกจากนี้ สำหรับจำนวนชุดค่าผสมที่มีการทำซ้ำสำหรับค่าบวกใด ๆ ของ n และ m ความสัมพันธ์การเกิดซ้ำต่อไปนี้นั้นใช้ได้ ซึ่งคล้ายกับเอกลักษณ์การบวกสำหรับจำนวนชุดค่าผสมโดยไม่มีองค์ประกอบซ้ำ:



จริงๆ แล้ว มันจะกลายเป็นเอกลักษณ์การบวกที่ระบุเมื่อมีการทดแทนอย่างเป็นทางการของจำนวนชุดค่าผสมที่สอดคล้องกันโดยไม่ต้องซ้ำกันที่ด้านซ้ายและด้านขวา:



ความสัมพันธ์การเกิดซ้ำที่พิจารณาสามารถนำมาใช้ในการกำหนดจำนวนชุดค่าผสมที่มีการทำซ้ำได้อย่างมีประสิทธิภาพ เมื่อจำเป็นต้องกำจัดการดำเนินการที่ต้องใช้แรงงานเข้มข้นในการคำนวณผลคูณแฟคทอเรียล และแทนที่ด้วยการดำเนินการบวกที่ง่ายกว่า ในกรณีนี้ ในการคำนวณค่าของ f(n,m) คุณจะต้องใช้ความสัมพันธ์การเกิดซ้ำนี้จนกว่าคุณจะได้ผลรวมของเงื่อนไขในรูปแบบ f(1,m) และ f(i,1) โดยที่ i รับค่าในช่วงตั้งแต่ n ถึง 1 โดยคำจำกัดความของปริมาณเงื่อนไขดังกล่าวจะเท่ากับ 1 และ i ตามลำดับ ตัวอย่างต่อไปนี้แสดงให้เห็นการใช้เทคนิคการแปลงนี้สำหรับกรณีของ n=3 และ m=4:



การแสดงรายการชุดค่าผสมไบนารี


เมื่อใช้ชุดค่าผสมในฮาร์ดแวร์หรือการเขียนโปรแกรมในภาษาแอสเซมบลี สิ่งสำคัญคือต้องสามารถประมวลผลบันทึกชุดค่าผสมในรูปแบบไบนารีได้ ในกรณีนี้ ควรระบุการรวมกันขององค์ประกอบ n ของ m ในรูปแบบของเลขฐานสอง n บิต (B n,...B j,...B 1) โดยที่ตัวเลขหลักหน่วย m บ่งชี้องค์ประกอบของ รวมกันและตัวเลขที่เหลือ (นาโนเมตร) มีค่าเป็นศูนย์ แน่นอนว่า ด้วยรูปแบบสัญลักษณ์นี้ การรวมกันที่แตกต่างกันจะต้องแตกต่างกันในการจัดเรียงตัวเลขของ 1 และมีเพียงวิธี C(n,m) เท่านั้นที่จะจัดเรียง m หรือ (nm) ศูนย์ในชุดไบนารี่ n บิต ตัวอย่างเช่น ตารางต่อไปนี้แสดงรายการชุดค่าผสมไบนารี่ทั้งหมด 6 ชุด ซึ่งให้เลขฐานสอง 4 บิตสำหรับการรวมกันของ 4 องค์ประกอบของชุดที่กำหนดเอง (E 1 , E 2 , E 3 , E 4 ) x 2:


ในกรณีทั่วไป งานในการแจกแจงชุดค่าผสมไบนารี่นั้นขึ้นอยู่กับการค้นหาชุดไบนารี่ n บิตทั้งหมดอย่างเป็นระบบด้วยการจัดเรียง m 1 และ (nm) ศูนย์บิตที่แตกต่างกัน ในรูปแบบที่ง่ายที่สุด การค้นหาดังกล่าวจะดำเนินการโดยวิธีการต่างๆ ในการย้ายบิตที่อยู่ติดกันด้วยการเปลี่ยน (อัลกอริธึม transpositive-shift) สิ่งเหล่านี้เป็นอัลกอริธึมแบบวนซ้ำ และชื่อของมันสะท้อนถึงลักษณะของการดำเนินการที่ทำในแต่ละขั้นตอน ขั้นตอนการวนซ้ำของอัลกอริธึมการเปลี่ยนเชิงบวก-ชิฟต์จะสร้างลำดับของชุดค่าผสมไบนารี่ที่เริ่มต้นด้วยชุดไบนารี่ โดยที่ทุกชุดจะกระจุกตัวอยู่ในหลักลำดับต่ำ (ทางด้านขวา) และสิ้นสุดเมื่อเลข 1 ทั้งหมดอยู่ในหลักลำดับสูง ( ด้านซ้าย):



ในขณะที่จับคู่ชุดค่าผสมเริ่มต้นและชุดสุดท้าย ลำดับเหล่านี้จะแตกต่างกันตามลำดับที่แสดงชุดไบนารี่ระดับกลาง อย่างไรก็ตาม ในทุกกรณี ชุดค่าผสมไบนารีที่ตามมาแต่ละชุดจะถูกสร้างขึ้นจากชุดก่อนหน้าอันเป็นผลมาจากการดำเนินการขนย้ายและการเปลี่ยนแปลงที่สอดคล้องกัน ในเวลาเดียวกัน อัลกอริธึม transpositive-shift ต่างๆ จะแตกต่างกันในวิธีที่พวกเขาเลือกคู่ของบิตสำหรับการขนย้ายและกลุ่มของบิตสำหรับการขยับ ความจำเพาะนี้จะกล่าวถึงด้านล่างสำหรับอัลกอริธึมการขนย้ายที่มีการเลื่อนซ้ายและขวา


ในอัลกอริธึมการขนย้ายที่มีการเลื่อนไปทางซ้าย ในแต่ละขั้นตอนจะได้ชุดค่าผสมไบนารีถัดไปจากค่าปัจจุบันโดยการแทนที่คู่ซ้ายสุดของตัวเลข 01 ด้วย 10 (การขนย้าย) และเลื่อนกลุ่มของหลักหน่วยนำหน้า ถ้ามี ให้ใกล้กับ คู่ที่ 10 ได้รับหลังจากการขนย้าย (กะ) หากในกรณีนี้ไม่มีหน่วยในเลขนำหน้าในชุดเลขฐานสองปัจจุบัน จะไม่มีการดำเนินการกะ แม้ว่าจะได้รับหน่วยนำหน้าหลังจากการขนย้ายในขั้นตอนนี้ก็ตาม การเปลี่ยนจะไม่ดำเนินการเช่นกันเมื่อไม่มีเลขศูนย์ในบิตที่สำคัญที่สุดก่อนที่คู่ 10 จะได้รับหลังจากการขนย้าย การดำเนินการที่พิจารณาจะแสดงโดยตัวอย่างต่อไปนี้ของการดำเนินการวนซ้ำสองครั้งติดต่อกันของอัลกอริธึมนี้ โดยที่การวนซ้ำหนึ่งครั้ง (15) ดำเนินการเฉพาะการขนย้าย (T") เท่านั้น และในการวนซ้ำอื่น (16) การขนย้ายจะเสริมด้วยการเปลี่ยน ( ที"+ส"):


ในอัลกอริธึมการขนย้ายแบบเลื่อนไปทางขวา จะมีการดำเนินการตามแนวคิดที่คล้ายกันในแต่ละขั้นตอน มีเพียงการขนย้ายเท่านั้นที่ทำให้แน่ใจได้ว่าบิตขวาสุดของ 01 จะถูกแทนที่ด้วย 10 (แทนที่จะเป็นบิตซ้ายสุด) จากนั้นบิตทั้งหมดทางด้านขวาของบิตนั้นจะถูกเลื่อนไปยังบิตที่มีนัยสำคัญน้อยที่สุด เหมือนแต่ก่อน การเปลี่ยนจะดำเนินการเฉพาะในกรณีที่มีหน่วยที่สามารถเลื่อนไปทางขวาได้ การดำเนินการที่พิจารณาจะแสดงโดยตัวอย่างต่อไปนี้ของการดำเนินการวนซ้ำสองครั้งติดต่อกันของอัลกอริธึมนี้ โดยที่การวนซ้ำหนึ่งครั้ง (3) ดำเนินการเฉพาะการขนย้าย (T") เท่านั้น และในการวนซ้ำอื่น (4) การขนย้ายจะเสริมด้วยการเปลี่ยน ( ที"+ส"):

ควรสังเกตว่าการวนซ้ำของอัลกอริธึมทั้งสองสามารถเขียนในรูปแบบการบวกได้หากชุดค่าผสมไบนารีถูกตีความว่าเป็นจำนวนเต็มในระบบตัวเลขฐาน 2 โดยเฉพาะอย่างยิ่งสำหรับอัลกอริธึมการขนย้ายที่มีการเลื่อนไปทางขวาแต่ละชุดค่าผสมไบนารีถัดไป (B" n ,…B" j , …B" 1) สามารถหาได้จากชุดค่าผสมปัจจุบัน (B n,…B j,…B 1) เสมอโดยดำเนินการบวกจำนวนเต็มโดยใช้สูตรบวกต่อไปนี้:



ในสูตรบวกนี้ เลขยกกำลังของ twos f และ t แทนจำนวนเลขศูนย์ลำดับต่ำของชุดค่าผสมไบนารีปัจจุบันและจำนวนหลักในแถวทางด้านซ้ายตามลำดับ ตัวอย่างเช่น สำหรับชุดค่าผสมไบนารีที่ 4 (001110) ของ n=6 หลัก f =1 และ t =3 ดังนั้น การคำนวณชุดค่าผสมไบนารีถัดไปโดยใช้สูตรบวกในการวนซ้ำ 5 จะให้ผลลัพธ์ต่อไปนี้ เทียบเท่ากับการดำเนินการขนย้ายและการดำเนินการกะ:



สำหรับการวิเคราะห์เปรียบเทียบของอัลกอริธึมการขนย้ายที่พิจารณากับการเลื่อนซ้ายและขวา แนะนำให้เปรียบเทียบลำดับของชุดค่าผสมไบนารีที่พวกมันสร้างขึ้นในการวนซ้ำ ตารางต่อไปนี้แสดงลำดับสองลำดับของการรวมไบนารีของ 4 องค์ประกอบของ 2 ซึ่งได้มาจากอัลกอริธึมการเลื่อนด้านซ้าย (TSL) และด้านขวา (TSR) ตามลำดับ:

เมื่อเปรียบเทียบ 2 ซีเควนซ์นี้ จะเห็นว่าเป็นกระจกมองข้าง ซึ่งหมายความว่าชุดค่าผสมไบนารีสองชุดใด ๆ ที่อยู่ในระยะห่างเท่ากันจากปลายด้านตรงข้ามกันของลำดับจะเป็นภาพสะท้อนของกันและกัน กล่าวคือ เกิดขึ้นพร้อมกันเมื่อมีการย้อนกลับการจัดทำดัชนีของบิตในบิตใด ๆ ตัวอย่างเช่น รูปแบบไบนารีที่สองจากจุดเริ่มต้นของลำดับ TSL (0101) เป็นภาพสะท้อนของรูปแบบไบนารี (1010) ซึ่งเป็นรูปแบบที่สองจากจุดสิ้นสุดของลำดับ TSR โดยทั่วไป ผลรวมไบนารี่ใดๆ ที่มีหมายเลข i ของลำดับหนึ่งจะเป็นภาพสะท้อนของการรวมกันแบบไบนารี่ที่มีหมายเลข (ni+1) ของลำดับอื่น ความสัมพันธ์ระหว่างลำดับเหล่านี้เป็นผลมาจากลักษณะสมมาตรของการขนย้ายและการดำเนินการกะในอัลกอริธึมที่พิจารณาทั้งสองสำหรับการแจกแจงชุดค่าผสมไบนารี


ควรสังเกตว่ารูปแบบไบนารี่สามารถใช้เพื่อบันทึกชุดค่าผสมที่มีการทำซ้ำขององค์ประกอบได้ ในการทำเช่นนี้มีความจำเป็นต้องสร้างการติดต่อแบบหนึ่งต่อหนึ่งระหว่างชุดค่าผสมที่มีการทำซ้ำและชุดค่าผสมแบบไบนารีซึ่งสร้างขึ้นดังนี้ ปล่อยให้มีการรวมกันตามอำเภอใจกับการทำซ้ำ ซึ่งได้มาโดยการเลือก m องค์ประกอบที่แตกต่างจากองค์ประกอบ n ของชุดการสร้าง ในการสร้างการจับคู่ที่ต้องการ ก่อนอื่นคุณต้องเพิ่มองค์ประกอบทั้งหมดของชุดการขึ้นรูป (cat) ลงในการรวมกัน จากนั้นเรียงลำดับผลลัพธ์การต่อข้อมูล (เรียงลำดับ) เพื่อให้องค์ประกอบที่เหมือนกันทั้งหมดอยู่เคียงข้างกัน ผลลัพธ์ที่ได้คือลำดับขององค์ประกอบ (n+m) โดยมีองค์ประกอบที่เหมือนกัน n กลุ่ม จะมีช่องว่างทั้งหมด (n+m1) ระหว่างองค์ประกอบ โดยจะมีช่องว่าง (n1) ระหว่างกลุ่มขององค์ประกอบที่เหมือนกัน และช่องว่าง m ระหว่างองค์ประกอบภายในกลุ่ม เพื่อความชัดเจน คุณสามารถใส่สัญลักษณ์ “|” ลงในช่องว่างที่ระบุได้ และตามลำดับ หากตอนนี้เราจับคู่ 1 กับช่องว่างระหว่างกลุ่ม (|) และ 0 กับช่องว่างอื่นๆ ทั้งหมด () เราจะได้ผลลัพธ์แบบไบนารี่ มันถูกสร้างขึ้นโดยชุดไบนารี่ของบิต (n+m1) โดยที่ (n1) เป็นบิตหนึ่งและ m บิตศูนย์ ซึ่งเป็นตำแหน่งที่สอดคล้องกับชุดค่าผสมดั้งเดิมที่มีการซ้ำขององค์ประกอบ n ถึง m เทคนิคการแปลงที่พิจารณาจะแสดงโดยตัวอย่างต่อไปนี้ของการสร้างชุดค่าผสมไบนารี (1001101) โดยใช้การรวมกันกับการซ้ำ (BBD) ซึ่งองค์ประกอบต่างๆ จะถูกเลือกจากชุดการสร้างของตัวอักษรละตินห้าตัวแรก:


โดยทั่วไป จำนวนของชุดไบนารี่ดังกล่าวจะกำหนดจำนวนวิธีในการจัดเรียง (n1) ชุด (หรือ m ศูนย์) เป็นเลขฐานสอง (n+m1) ค่านี้เห็นได้ชัดว่าเท่ากับจำนวนของชุดค่าผสมจาก (n+m1) คูณ (n1) หรือโดย m นั่นคือ C(n+m1,n1) หรือ C(n+m1,m) ซึ่งเท่ากับ จำนวนชุดค่าผสมที่มีการซ้ำ f( n,m) ของ n องค์ประกอบ แต่ละ m ดังนั้น โดยมีความสอดคล้องกันแบบหนึ่งต่อหนึ่งระหว่างชุดค่าผสมที่มีการทำซ้ำและชุดค่าผสมแบบไบนารี เป็นเรื่องถูกต้องตามกฎหมายที่จะลดการแจงนับของการรวมกันด้วยการทำซ้ำไปจนถึงการแจงนับของชุดค่าผสมไบนารี ตัวอย่างเช่น การใช้อัลกอริธึมการขนย้ายที่มีการเลื่อนไปทางซ้ายหรือขวา หลังจากนี้ คุณจะต้องคืนค่าชุดค่าผสมที่จำเป็นด้วยการทำซ้ำโดยใช้ชุดค่าผสมไบนารีที่ได้ ซึ่งสามารถทำได้โดยใช้เทคนิคการกู้คืนต่อไปนี้


ปล่อยให้เซตหลักจากองค์ประกอบที่รวมกับการซ้ำของ m ไม่จำเป็นต้องสร้างองค์ประกอบที่แตกต่างกัน จะถูกจัดเรียงในลักษณะที่กำหนดเอง เพื่อให้แต่ละองค์ประกอบมีหมายเลขซีเรียลที่แน่นอนตั้งแต่ 1 ถึง n ให้เราใช้การแจงนับของชุดค่าผสมไบนารีของ (n+m1) หลักไบนารี โดยที่ (n1) หนึ่ง และ m เป็นศูนย์ ผลรวมไบนารี่แต่ละค่าสามารถเสริมทางด้านซ้ายด้วยเลขหลักหน่วยสมมติ และเลขหลักหน่วยทั้งหมดสามารถกำหนดหมายเลขจากซ้ายไปขวาด้วยจำนวนเต็มตั้งแต่ 1 ถึง n จากนั้นจำนวนศูนย์ในแถวหลังจากแต่ละหน่วย i-th ของชุดค่าผสมไบนารีจะเท่ากับจำนวนอินสแตนซ์ขององค์ประกอบ i-th ของชุดหลักในชุดค่าผสมที่สอดคล้องกันพร้อมการทำซ้ำ เทคนิคที่พิจารณาจะแสดงโดยตัวอย่างต่อไปนี้ โดยการใช้ชุดค่าผสมไบนารี (1001101) คืนค่าการรวมกันกับการซ้ำของ BBD องค์ประกอบที่เลือกจากชุดการสร้างของตัวอักษรละตินห้าตัวแรกเขียนตามลำดับตัวอักษร และส่วนที่ซ้อนทับจะระบุองค์ประกอบที่ไม่มีอยู่ในชุดค่าผสมนี้:

ด้วยการดำเนินการที่คล้ายกันในเงื่อนไขของตัวอย่างนี้ คุณสามารถแสดงรายการชุดค่าผสมไบนารี่ทั้งหมด 35 ชุดที่สร้างชุดไบนารี่ 7 บิต โดยมี 4 ชุดและศูนย์ 3 ตัว และคืนค่าชุดค่าผสมที่สอดคล้องกันด้วยการทำซ้ำ 5 องค์ประกอบจาก 3 รายการ

ฤดูหนาวใกล้เข้ามาแล้ว Khoma และ Suslik ตัดสินใจตุนถั่ว ตลอดทั้งวันพวกเขาวิ่งไปที่โรงนาและบรรทุกฝักหลายอัน: โคมาสี่อันและซัสลิกสองอัน ในตอนเย็นพวกเขานับฝักทั้งหมดที่พวกเขาเก็บเกี่ยวได้ และสงสัยว่าตอนนี้จะแบ่งถั่วเหล่านี้อย่างไร Khoma แย้งว่าถ้าเขาลากได้มากเป็นสองเท่าของ Suslik เขาก็ควรจะได้ถั่วเป็นสองเท่า Suslik คัดค้านอย่างสมเหตุสมผลว่า ประการแรก ความเร็วของ Khoma นั้นต่ำกว่า Suslik อย่างเห็นได้ชัด และอย่างที่สอง ใครจะรู้ บางที Khoma อาจจะวิ่งหนีไปเพียงครั้งเดียวหรือสองครั้ง และเวลาที่เหลือเขาก็ไม่ได้ใช้งาน...

ช่วยให้เพื่อนของคุณเข้าใจสถานการณ์ที่ยากลำบากนี้อย่างน้อยก็เพียงเล็กน้อย พิจารณาตัวเลือกที่เป็นไปได้ทั้งหมดสำหรับจำนวนพ็อดที่ Suslik นำมาและจำนวนโคมา

ป้อนข้อมูล

ในบรรทัดแรกจะมีเลขคู่ธรรมชาติ M – จำนวนพ็อดที่ถูกขโมย 2 ≤ M ≤ 1,000

เอาท์พุต

การผสมที่เป็นไปได้ทั้งหมดของปริมาณพ็อดที่ Suslik และ Khoma นำมารวมกัน หนึ่งรายการต่อบรรทัด แต่ละชุดแสดงถึงจำนวนเต็มที่ไม่ใช่ลบสองตัวคั่นด้วยช่องว่าง: ตัวเลขแรกคือจำนวนพ็อดที่ Suslik นำมา และตัวที่สองคือ Khoma จัดเรียงชุดค่าผสมตามลำดับจากมากไปหาน้อยของหมายเลขแรก

การทดสอบ

ป้อนข้อมูล เอาท์พุต
6 \\ 6 \; 0 \\ 2 \; 4
11 \\ 11\;0 \\ 7\;4 \\ 3\;8
18 \\ 18\;0 \\ 14\;4 \\ 10\;8 \\ 6\;12 \\ 2\;16

รหัสโปรแกรม

#รวม

ใช้เนมสเปซมาตรฐาน ;

int หลัก()(

int ก, ข = 0;

ซิน >> ก ;

ในขณะที่ (ก >= 0 ) (

ศาล<< a << " " << b << "\n" ;

ก -= 4 ; ข += 4 ;

กลับ 0 ;

การแก้ปัญหา

ให้ a เป็นจำนวนฝักที่โฮมานำมา และ b เป็นจำนวนฝักที่ Suslik นำมา เนื่องจากตามเงื่อนไขของปัญหา โคมาบรรทุกพ็อดได้เพียงสี่พ็อด เราจะพิจารณา a = a-4 และ b = b + 4 เพื่อแจกแจงชุดค่าผสมที่เป็นไปได้ทั้งหมดของจำนวนพ็อดที่ Suslik และ Khoma นำมา ลองใช้ลูปด้วย ในขณะที่ซึ่งจะทำซ้ำการกระทำที่อธิบายไว้ข้างต้นจนกระทั่ง \geq 0 ในคำตอบเราจะพิมพ์จำนวนพ็อดที่เพื่อนนำมารวมกันที่เป็นไปได้ทั้งหมด หนึ่งรายการต่อบรรทัด เรียงลำดับจากมากไปหาน้อยของหมายเลขแรก

อัลกอริธึมเชิงผสมถูกใช้ค่อนข้างบ่อย คุณสามารถค้นหาข้อมูลมากมายเกี่ยวกับอัลกอริธึมเชิงผสมได้บนอินเทอร์เน็ต อย่างไรก็ตาม อินเทอร์เน็ตภาษารัสเซียส่วนใหญ่ก่อให้เกิดปัญหาที่ง่ายที่สุดของการแจงนับอย่างต่อเนื่อง (การสร้าง) ของวัตถุเชิงผสมในลูป ตัวอย่างเช่น:

ตัวอย่าง

// ชุดค่าผสมของ 3 จาก 52 สำหรับ (int i1 = 0; i1< 50; ++i1) for (int i2 = i1+1; i2 < 51; ++i2) for (int i3 = i2+1; i3 < 52; ++i3) // ...

ดัชนีการรวมกัน

การรวมกัน การเรียงสับเปลี่ยน การจัดเรียง และออบเจ็กต์เชิงรวมอื่นๆ แต่ละค่าสามารถเชื่อมโยงกับดัชนีได้ ซึ่งเป็นตัวเลขที่ปรากฏขึ้นเมื่อวนซ้ำผ่านอัลกอริธึมนี้

ที่นี่เราจะดูปัญหาที่ซับซ้อนมากขึ้นซึ่งเป็นวิธีแก้ปัญหาที่ฉันไม่พบใน RuNet (อย่างไรก็ตามฉันจะให้ลิงค์เดียว แต่สูตรนั้นไม่ถูกต้องอย่างชัดเจน) - ขึ้นอยู่กับชุดค่าผสมนั้นเอง (ในกรณีนี้คือชุดของ ตัวเลขสามตัว) ค้นหาดัชนีของมัน

มีตัวเลือกให้ค้นหา "head-on" เราเปิดตัวนับการรวมใช้อัลกอริทึมด้านบนแล้วลองทุกอย่างจนกว่าจะถึงตัวเลือกที่ต้องการ ตัวเลือกนี้มีความซับซ้อนด้านเวลาสูงมาก ดังนั้นเราจะละทิ้งตัวเลือกนี้
สมมติว่าอินพุตมีตัวเลข i1, i2, i3 ก่อนอื่น เราต้องจัดเรียงพวกมันตามลำดับจากน้อยไปมาก (โปรดทราบว่าอัลกอริธึมการสร้างตามที่ระบุข้างต้นจะสร้างพวกมันในรูปแบบที่เรียงลำดับเสมอ แม้ว่าแนวคิดของ "การรวมกัน" จะบอกเป็นนัยถึงลำดับโดยพลการก็ตาม)

ให้เราสมมติเพื่อความแน่นอนหลังจากเรียงลำดับ i1 = 3, i2 = 7, i3 = 12
ซึ่งหมายความว่าเรา "ผ่าน" ชุดค่าผสมทั้งหมดที่ i1 เท่ากับ 0, 1 และ 2
สำหรับ i1 = 0 เราได้ใช้ค่าผสม C(2, 51) เนื่องจากดัชนี i1, i2 ใช้ค่าผสมของตัวเลข 2 ตัวจากทั้งหมด 51 ตัว
สำหรับ i1 = 1 เราใช้วิธีผสม C(2, 50)
สำหรับ i1 = 2 เราใช้ชุดค่าผสม C(2, 49)
โดยรวมแล้ว เราผ่าน SUM (จาก n = 0 ถึง n = i1-1) C(2, 51-n)
สำหรับ i1 = 3 ลองพิจารณาชุดค่าผสมที่เราดำเนินการขณะดำเนินการผ่านดัชนี i2 (และสำหรับเราเริ่มต้นด้วย i2 = i1+1 = 4)
เมื่อ i2 = 4, ชุดค่าผสม C(1, 47) ผ่านการรวมกัน เมื่อ i2 = 5, ชุดค่าผสม C(1, 46) ผ่านการรวมกัน เมื่อ i2 = 6, ชุดค่าผสม C(1, 45) ผ่านการรวมกัน
จากการเปรียบเทียบโดยสมบูรณ์ สำหรับ i2 = 7 เราจะพิจารณาชุดค่าผสมที่ดัชนี i3 วิ่งผ่าน
เราได้รับสูตรทั่วไป:
ดัชนีรวมที่ต้องการ = SUM (จาก n = 0 ถึง i1-1) C(2, 51-n) + SUM (จาก n = i1+1 ถึง i2-1) C(1, 51-n) + SUM (จาก n = i2+1 ถึง i3-1) C (0, 51-n)

ดัชนีย่อย

ในเชิงผสมผสานมีวัตถุที่ซับซ้อนมากขึ้น - การแบ่งพาร์ติชันออกเป็นส่วนย่อย ตัวอย่างเช่น การแยกชุดองค์ประกอบ 52 องค์ประกอบออกเป็นชุดย่อย 3 ชุด ได้แก่ องค์ประกอบ 2, 3 และ 47 ตามลำดับ โดยที่ลำดับขององค์ประกอบภายในแต่ละชุดย่อยนั้นไม่สำคัญ (อย่างไรก็ตาม การรวมกันของ 2 จาก 52 เป็นเพียงกรณีพิเศษของการแยกออกเป็นสองชุดย่อยของ 2 และ 50 องค์ประกอบตามลำดับ)

อัลกอริธึมการสร้างโดยทั่วไปคือเราสร้างชุดค่าผสม 2 จาก 52 และสำหรับแต่ละชุดดังกล่าวในลูปที่ซ้อนกัน เราจะสร้างชุดค่าผสมของ 3 จาก 50 และตรวจสอบว่าดัชนี (i3, i4, i5) ในชุดค่าผสมที่ซ้อนกันทำ ไม่ตรงกับดัชนี (i1, i2) ในชุดค่าผสมภายนอก:

รหัสซี++

// การรวมกันภายนอกสำหรับ (int i1 = 0; i1< 51; ++i1) for (int i2 = i1+1; i2 < 52; ++i2) // ВНУТРЕННЕЕ СОЧЕТАНИЕ for (int i3 = 0; i3 < 50; ++i3) if (i3 != i1 && i3 != i2) for (int i4 = i3+1; i4 < 51; ++i4) if (i4 != i1 && i4 != i2) for (int i5 = i4+1; i5 < 52; ++i5) if (i5 != i1 && i5 != i2) // ...


ขอย้ำอีกครั้งว่าแต่ละพาร์ติชั่นนั้นมีดัชนีของตัวเอง
ปรากฎว่าอัลกอริทึมของเราในการค้นหาดัชนีการรวมกันสามารถแก้ไขได้เพื่อค้นหาดัชนีพาร์ติชัน
ควรสังเกตว่าเราต้องจัดเรียงดัชนีใน "ชุดค่าผสมภายนอก" i1, i2 กันเองและดัชนี i3, i4, i5 กันเอง แต่เป็นอิสระจากสองตัวแรก
ควรคำนึงด้วยว่าใน "ชุดค่าผสมที่ซ้อนกัน" เรากำลังทำงานกับชุดองค์ประกอบ 50 องค์ประกอบเป็นหลัก แต่ดัชนี i3, i4, i5 จำเป็นต้อง "เลื่อน" ในลักษณะบางอย่างเพื่อไม่ให้เปลี่ยนจาก 0 ถึง 51 แต่จาก 0 ถึง 49:

รหัสซี++

ถ้า (i3 >= i1) --i3; ถ้า (i3 >= i2) --i2; // คล้ายกับ i4, i5


(กล่าวคือ เราตัดดัชนี i1, i2 ออกจากชุดองค์ประกอบ 52 องค์ประกอบของเรา จากนั้นเลื่อนชุดที่เหลือเพื่อปิดรู ในขณะที่ดัชนี i3-i5 ถูกเลื่อน)
ควรคำนึงว่าภายในชุดค่าผสม "ภายนอก" แต่ละชุดเรามีชุดค่าผสม "ซ้อน" C (3, 50) ทุกประการ
จากนั้นอัลกอริทึมจะลดลงดังต่อไปนี้:
COMBINATION_INDEX (i1, i2 จาก 52) * COMBINATION_NUMBER BY_3_OF_50 + COMBINATION_INDEX (i3, i4, i5 จาก 50 หลังการเปลี่ยนดัชนี)

นำอัลกอริธึมมาสู่ความซับซ้อนอย่างต่อเนื่อง

ฉันควรทราบทันทีว่าสูตรมี "ข้อผิดพลาด" เกิดขึ้นหากเช่น i1 = 0 (เรานับผลรวมสำหรับ n = จาก 0 ถึง -1) หรือ i2 = 1 (เรานับผลรวมตั้งแต่ 1 ถึง 0) ที่จริงแล้ว ในกรณีเช่นนี้ ควรใช้ผลรวมที่สอดคล้องกันเท่ากับศูนย์ และผลลัพธ์จะถูกต้อง
ฉันควรใส่ใจกับความซับซ้อนของเวลาในอัลกอริธึมของเราด้วย: มันมีความซับซ้อนเชิงเส้น โดยมีเงื่อนไขว่าคุณถือว่า C เป็นเวลาคงที่ นี่ดีกว่าการใช้กำลังดุร้ายอยู่แล้ว
แต่จริงๆแล้ว (ในกรณีของเรา 52) ไม่มีอะไรขัดขวางเราไม่ให้ลดอัลกอริทึมให้กลายเป็นความซับซ้อนคงที่ ในการทำเช่นนี้เราจะใช้ความรู้ทางคณิตศาสตร์และคำนวณจำนวนทั้งหมดเชิงวิเคราะห์
ตัวอย่างเช่น จำนวนชุดค่าผสม C(2, K) หากคุณ "ขยาย" ในรูปของสูตร K! / ((K-2)! * 2!) ลดเป็นพหุนามของดีกรีที่ 2 และเนื่องจากเรามีมันอยู่ใต้เครื่องหมายผลรวม เราจึงใช้สูตรสำหรับผลรวมของกำลัง N ของตัวเลขในอนุกรมธรรมชาติได้ (ดูวิกิพีเดีย) และรับพหุนามตัวเดียวของดีกรีที่ 3 ซึ่งเห็นได้ชัดว่ามีความซับซ้อนของเวลาอย่างต่อเนื่อง (ยิ่งกว่านั้น “ข้อผิดพลาด” ที่ผมอ้างถึงตอนต้นคำบรรยายไม่ได้แสดงออกมาแต่อย่างใด สูตรยังคงถูกต้อง)
ฉันทำซ้ำสิ่งนี้ สำหรับมิติคงที่ของชุดฐาน. อย่างไรก็ตาม ฉันแน่ใจว่าด้วยความช่วยเหลือของการเขียนโปรแกรมเมตา คุณสามารถ "สอน" คอมไพลเลอร์เพื่อให้มันทำงานให้คุณได้

โค้ดตัวอย่างสำหรับการแยกดัชนีด้วย 2, 3, 47

int get_split_2_3_47_index(int ​​​​i1, int i2, int i3, int i4, int i5) ( // ดัชนีของการรวมกันของ 2 จาก 52 คูณด้วย C(3, 50) int offset = ((52*51 - (51-i1) *(52-i1)) / 2 + (i2 - i1 - 1)) * 19600; // “สร้างดัชนีใหม่” กลุ่มภายในเพื่อให้หมายเลขเป็น 0...49 ถ้า (i3 > = i1) --i3; ถ้า (i3 >= i2) --i3; ถ้า (i4 >= i1) --i4; ถ้า (i4 >= i2) --i4; ถ้า (i5 >= i1) --i5 ; if (i5 >= i2) --i5; // ตอนนี้เพิ่มดัชนีของการรวมกันโดย 3 // 0: // SUM สำหรับ n = 0 โดย i3-1 COMBINATIONS (2, 49-n) // = SUM สำหรับ m = 50-i3 คูณ 49 (m * (m-1) / 2) ออฟเซ็ต += (19600 - (((49-i3)*(50-i3)*(99-2*i3)) / 6 - ((49-i3)*(50-i3 )) / 2) / 2); // 1: // SUM สำหรับ n = i3+1 ถึง i4-1 ชุดค่าผสม (1, 49-n) ออฟเซ็ต += (( (48-i3)*(49-i3) - (49-i4)*(50-i4)) / 2); // 2: // SUM สำหรับ n = i4+1 ถึง i5-1 (1) ออฟเซ็ต + = (i5 - i4 - 1); ส่งคืนออฟเซ็ต ; )

คำหลัง

ในโปรแกรมจำลองโป๊กเกอร์ของฉัน (Texas Hold'em) ฉันต้องการคำนวณและจัดเก็บความน่าจะเป็นที่จะชนะล่วงหน้าสำหรับไพ่ในมือของฉัน (2 ใบ) และไพ่ฟลอปทั้งหมด (ไพ่ 3 ใบบนโต๊ะ) ซึ่งสอดคล้องกับการหาร เซ็ตย่อย 52 เซ็ตคูณ 2, 3, 47
คำนวณและบันทึกไว้
แต่เมื่อถึงเวลาต้องอ่านข้อมูลจากไฟล์สำหรับชุดค่าผสมที่เฉพาะเจาะจง ฉันไม่ต้องการคำนวณบางอย่างเป็นเวลานานหรือค้นหาในไฟล์กิกะไบต์ ตอนนี้ฉันแค่กำหนดออฟเซ็ตในไฟล์และอ่านสิ่งที่ฉันต้องการโดยตรง

โดยทั่วไป ฉันจะแบ่งอัลกอริธึมเชิงผสมออกเป็นคลาสต่อไปนี้:

  • การสร้างวัตถุเชิงผสมในรอบเดียว (ทุกอย่างเรียบง่ายที่นี่ ฉันยกตัวอย่าง)
  • การย้ายไปยังวัตถุเชิงผสมถัดไป (หรือก่อนหน้า) โดยรู้วัตถุก่อนหน้า (ตัววนซ้ำแบบเดินหน้า/ถอยหลังซึ่งแสดงเป็นเงื่อนไข C ++) - ที่นี่คุณสามารถจดบันทึกตำราเรียนของ T. I. Fedoryaeva ซึ่งจัดเตรียมอัลกอริธึมความซับซ้อนของเวลาคงที่สำหรับการเรียงสับเปลี่ยน และตัวอย่างอื่น ๆ สามารถพบได้ใน RuNet แต่สำหรับการเรียงสับเปลี่ยนเท่านั้น - แต่มันน่าสนใจที่จะเห็นอัลกอริธึมที่คล้ายกันสำหรับวัตถุเชิงผสมอื่น ๆ
  • การค้นหาดัชนีของวัตถุ ไม่มีตัวอย่างเลย ยกเว้นคู่มือของ Fedoryaeva ยิ่งไปกว่านั้นคือความซับซ้อนเชิงเส้นและเพื่อการเรียงสับเปลี่ยนเท่านั้น
  • การค้นหาวัตถุตามดัชนี
คงจะน่าสนใจที่จะมีหนังสืออ้างอิงเกี่ยวกับอัลกอริธึมเชิงรวมสำหรับวัตถุเชิงรวมทั้งหมด รวมถึงการเรียงสับเปลี่ยน การรวมกัน ตำแหน่ง ชุดย่อย การรวมกันที่มีการทำซ้ำ ตำแหน่งที่มีการทำซ้ำ

จำนวนชุดค่าผสม

การผสมผสานจาก nโดย เคเรียกว่าชุด เคองค์ประกอบที่เลือกจากข้อมูล nองค์ประกอบ ชุดที่แตกต่างกันตามลำดับองค์ประกอบเท่านั้น (แต่ไม่อยู่ในองค์ประกอบ) จะถือว่าเหมือนกัน ด้วยเหตุนี้ชุดค่าผสมจึงแตกต่างจากตำแหน่ง

สูตรที่ชัดเจน

จำนวนชุดค่าผสมของ nโดย เค เท่ากับสัมประสิทธิ์ทวินาม

สำหรับค่าคงที่ nการสร้างฟังก์ชันของจำนวนชุดค่าผสมที่มีการซ้ำจาก nโดย เคเป็น:

ฟังก์ชันการสร้างสองมิติของจำนวนชุดค่าผสมที่มีการซ้ำคือ:

ลิงค์

  • อาร์. สแตนลีย์การรวมกันเชิงแจงนับ - อ.: มีร์, 1990.
  • คำนวณจำนวนชุดค่าผสมออนไลน์

มูลนิธิวิกิมีเดีย 2010.

ดูว่า "จำนวนชุดค่าผสม" ในพจนานุกรมอื่นคืออะไร:

    70 เจ็ดสิบ 67 68 69 70 71 72 73 40 50 60 70 80 90 100 การแยกตัวประกอบ: 2×5×7 สัญกรณ์โรมัน: LXX ไบนารี: 100 0110 ... Wikipedia

    ตัวเลขไลท์ ตัวเลขแบบมีเงื่อนไขที่แสดงออกถึงลักษณะภายนอกโดยไม่ซ้ำกัน สภาพระหว่างการถ่ายภาพ (โดยปกติคือความสว่างของวัตถุและความไวแสงของวัสดุถ่ายภาพที่ใช้) สามารถเลือกค่า E.h. ได้หลายครั้ง รวมหมายเลขรูรับแสง... ... พจนานุกรมโพลีเทคนิคสารานุกรมขนาดใหญ่

    รูปแบบของตัวเลขที่แยกวัตถุสองชิ้นออกจากกันโดยสัมพันธ์กับวัตถุชิ้นเดียวและสัมพันธ์กับวัตถุหลายชิ้น แบบฟอร์มนี้ไม่มีอยู่ในรัสเซียยุคใหม่ แต่อิทธิพลที่เหลืออยู่ยังคงอยู่ ดังนั้นการรวมกันของสองตาราง (cf. พหูพจน์... ... พจนานุกรมคำศัพท์ทางภาษา

    Combinatorial Mathematics, Combinatorics, สาขาวิชาคณิตศาสตร์ที่อุทิศให้กับการแก้ปัญหาการเลือกและการจัดเรียงองค์ประกอบขององค์ประกอบที่แน่นอนซึ่งมักจะมีขอบเขตจำกัด ซึ่งกำหนดตามกฎที่กำหนด กฎแต่ละข้อดังกล่าวจะกำหนดวิธีการก่อสร้าง... ... สารานุกรมคณิตศาสตร์

    ในทางคณิตศาสตร์เชิงผสมผสาน การรวมกันของ by คือชุดขององค์ประกอบที่เลือกจากชุดที่กำหนดซึ่งมีองค์ประกอบต่างกัน ชุดที่แตกต่างกันตามลำดับองค์ประกอบเท่านั้น (แต่ไม่อยู่ในองค์ประกอบ) จะถือว่าเหมือนกัน ชุดค่าผสมเหล่านี้ ... ... Wikipedia

    มีส่วนร่วมในการศึกษาเหตุการณ์ที่เกิดขึ้นซึ่งไม่ทราบแน่ชัด ช่วยให้เราสามารถตัดสินความสมเหตุสมผลของการคาดหวังให้เกิดเหตุการณ์บางอย่างขึ้นเมื่อเทียบกับเหตุการณ์อื่น ๆ แม้ว่าการกำหนดค่าตัวเลขให้กับความน่าจะเป็นของเหตุการณ์มักจะไม่จำเป็นก็ตาม... ... สารานุกรมถ่านหิน

    1) เช่นเดียวกับการวิเคราะห์เชิงคณิตศาสตร์เชิงผสม 2) ส่วนหนึ่งของคณิตศาสตร์ระดับประถมศึกษาที่เกี่ยวข้องกับการศึกษาจำนวนชุดค่าผสมภายใต้เงื่อนไขบางประการที่สามารถประกอบขึ้นจากชุดวัตถุที่มีขอบเขตจำกัดที่กำหนด... ... สารานุกรมผู้ยิ่งใหญ่แห่งสหภาพโซเวียต

    - (ความขัดแย้งของกรีกที่ไม่คาดคิดแปลก) ในแง่กว้าง: ข้อความที่แตกต่างอย่างมากจากความคิดเห็นที่เป็นที่ยอมรับโดยทั่วไปและการปฏิเสธสิ่งที่ดูเหมือนว่า "ถูกต้องโดยไม่มีเงื่อนไข"; ในความหมายที่แคบกว่านั้น ก็มี 2 ประโยคที่แย้งกัน สำหรับ... ... สารานุกรมปรัชญา

    - (หรือหลักการของการรวมและการยกเว้น) สูตรเชิงผสมที่ช่วยให้คุณกำหนดจำนวนเชิงนับของการรวมของเซตจำกัดจำนวนจำกัด ซึ่งในกรณีทั่วไปสามารถตัดกันเองได้ ... Wikipedia

    ทฤษฎีทางคณิตศาสตร์ที่เกี่ยวข้องกับการกำหนดจำนวนวิธีต่างๆ ในการกระจายวัตถุที่กำหนดตามลำดับที่ทราบ มีความสำคัญอย่างยิ่งในทฤษฎีสมการและทฤษฎีความน่าจะเป็น งานที่ง่ายที่สุดประเภทนี้คือ... ... พจนานุกรมสารานุกรม F.A. บร็อคเฮาส์ และ ไอ.เอ. เอโฟรน

หนังสือ

  • หนังสือเรียนภาษาอังกฤษ. ในสองส่วน ตอนที่ 2, N. A. Bonk, G. A. Kotiy, N. A. Lukyanova หนังสือเล่มนี้เป็นส่วนที่สองของหนังสือเรียนภาษาอังกฤษ ประกอบด้วยบทเรียน 20 บท หนังสือไวยากรณ์ทีละบทเรียน และตารางไวยากรณ์อ้างอิง ปริมาณคำศัพท์ใหม่...