คุณสามารถรับคำ 2 ตัวอักษรได้กี่คำจาก aabcccddef


14

(aa จะเป็นหนึ่งในหลาย ๆ bb จะไม่)

ฉันคิดว่ามันจะเป็น 10! / 8! แต่เห็นได้ชัดว่าฉันกำลังทำอะไรผิด ทุกคนสามารถช่วยฉันออกเพราะฉันนิ่งงัน


6
ขอบคุณที่แสดงให้เราเห็นสิ่งที่คุณพยายาม คุณช่วยอธิบายได้ไหมว่าทำไมคุณถึงคิดว่ามันจะเป็น 10! / 8! เช่นนี้อาจช่วยให้เราแก้ไขความเข้าใจผิดที่คุณมี? นี่เป็นคำถามจากหลักสูตรหรือตำราเรียนหรือไม่ ถ้าเป็นเช่นนั้นโปรดเพิ่ม[self-study]แท็กและอ่านของวิกิพีเดีย
Silverfish

(แม้ว่าผู้เขียนคำถามนี้ไม่ได้เพิ่มแท็ก "การศึกษาด้วยตนเอง" แต่ฉันคิดว่าคำถามนี้อยู่ในแนวทางการเรียนรู้ด้วยตนเองเช่นพวกเขาได้รับการดูแลเพื่อแสดงให้เราเห็นสิ่งที่พวกเขาพยายามและคำถามเองดูเหมือนชัดเจน มากพอคำตอบของ RoryT บ่งชี้ว่าอะไรคือข้อบกพร่องในการคิดหลังคำตอบ 10! / 8! แม้ว่าแน่นอนว่ามันจะดีถ้าโปสเตอร์ต้นฉบับสามารถยืนยันสิ่งนี้ได้)
Silverfish

1
บางคนลงคะแนนให้ปิดเรื่องนี้ว่า "ไม่ชัดเจน" ฉันไม่สามารถเห็นสิ่งที่ไม่ชัดเจนที่นี่และคำตอบที่ระบุบ่งชี้ว่าคำถามนั้นเข้าใจและชัดเจนเพียงพอ
kjetil b halvorsen

2
สำหรับการสร้างคำ 2 ตัวอักษรเหตุใด 'c' จึงปรากฏ 3 ครั้งในรายการตัวอักษรที่มี

3
@statman ฉันก็สังเกตเห็นสิ่งนี้ (ดูความคิดเห็นด้านล่าง) แต่ในการหวนกลับฉันชื่นชมความฉลาดของคำถาม setter รวมทั้งมัน แม้ว่ามันจะไม่ใช่สิ่งที่โหดร้าย แต่ก็ต้องใช้เวลาคิดเพิ่ม
Silverfish

คำตอบ:


22

คุณมี 6 ตัวอักษรที่แตกต่างกัน: a, b, c, d, e, f ซึ่งคุณสามารถสร้าง 6 x 5 = 30 คำด้วยตัวอักษรที่แตกต่างกันสองตัว นอกจากนี้คุณสามารถสร้าง 3 คำ aa, cc, dd ด้วยตัวอักษรเดียวกันสองครั้ง ดังนั้นจำนวนคำทั้งหมดคือ 30 + 3 = 33


17

ทางเลือกของวิธีการของ Zahava: มีวิธีในการจับคู่สองตัวอักษร af แต่มีไม่ได้ 2 B, E หรือ F ตัวอักษรเพื่อให้ "บีบี", "จ" และ "FF" จะไม่ได้ทำให้จำนวนคำ36 - 3 = 3362=36363=33

วิธีที่คุณพยายามเข้าถึงปัญหาดูเหมือนจะเพิกเฉยต่อความจริงที่ว่าไม่มีตัวอักษรที่แตกต่างกัน 10 ตัว หากคุณมี 10 ตัวอักษรที่แตกต่างกันแล้วคำตอบของคุณจะถูกต้อง


4
(+1) ความจริงที่ว่ามีตัวอักษรสิบตัวเป็นปลาเฮอริ่งแดงเล็กน้อยที่นี่เนื่องจากมีสามตัวคือ "C"! ในแง่ของจำนวนตัวอักษรสองตัวที่สามารถทำได้มันจะไม่สำคัญถ้า "C" ปรากฎห้าสิบครั้ง สิ่งที่ปรากฏในจดหมายฉบับเดียวกันมากกว่าสองฉบับนั้นซ้ำซ้อน
Silverfish

7

หากคุณไม่สามารถให้เหตุผลได้ด้วยวิธีที่ "ฉลาด" มักจะคุ้มค่าที่จะลองใช้กำลังดุร้าย ลองนึกภาพพยายามจดรายการคำที่เรียงตามตัวอักษรของคำทั้งหมดที่คุณสามารถทำได้

สามารถเริ่มต้นด้วย "A" ได้กี่รายการ ทว่า "A" สามารถตามด้วย A, B, C, D, E หรือ F ได้นั่นคือหกวิธี

สามารถเริ่มต้นด้วย "B" ได้กี่รายการ ที่สามารถตามด้วย A, C, D, E หรือ F ซึ่งเป็นเพียงห้าวิธีเนื่องจากไม่มี "B" ที่สอง

สามารถเริ่มต้นด้วย "C" ได้กี่รายการ เนื่องจาก "C" ปรากฏขึ้นสามครั้งในรายการของคุณจึงสามารถติดตามได้ด้วยตัวเองหรือตามตัวอักษรห้าตัวอื่น ๆ ดังนั้นเช่นเดียวกับ "A" มีหกวิธี โปรดทราบว่าเราไม่ได้รับวิธี "พิเศษ" ใด ๆ เพียงเพราะ "C" ปรากฏมากกว่าเวลา "A" สิ่งที่เกินกว่าลักษณะที่สองคือซ้ำซ้อน

หวังว่าเป็นที่ชัดเจนว่าตัวอักษรแต่ละตัวที่ปรากฏเพียงครั้งเดียวในรายการของคุณสามารถปรากฏที่จุดเริ่มต้นของห้าคำและตัวอักษรที่ปรากฏสองครั้งหรือมากกว่านั้นสามารถปรากฏที่จุดเริ่มต้นของหกคำ ตัวอักษรที่ปรากฏเพียงครั้งเดียวคือ "B", "E" และ "F" ซึ่งแต่ละตัวสามารถอยู่ที่จุดเริ่มต้นของคำห้าคำดังนั้นจึงทำให้ 5 + 5 + 5 = 15 คำ ตัวอักษรที่ปรากฏขึ้นสองครั้งหรือมากกว่านั้นคือ "A", "C" และ "D" ซึ่งแต่ละตัวสามารถอยู่ที่จุดเริ่มต้นของคำหกคำดังนั้นจึงทำให้ 6 + 6 + 6 = 18 คำ ทั้งหมดมี 15 + 18 = 33 คำ

นี่เป็นวิธีที่ยืดยาวกว่าวิธีอื่น ๆ แต่โดยการลองคิดถึงคำตอบในวิธีที่เป็นระบบนี้คุณอาจจะสามารถ "มองเห็น" หนึ่งในวิธีที่เร็วกว่า

โปรดทราบว่าถ้าเรื่องนี้ได้รับการเรียบเรียงเป็นคำถามที่น่าจะเป็นความชอบครั้งแรกของคุณอาจจะได้รับการวาดออกมาเป็นแผนภาพต้นไม้ มันจะเริ่มต้นด้วยหกกิ่งสำหรับตัวอักษรตัวแรก แต่สำหรับตัวอักษรตัวที่สองจะมีหกกิ่งออกมาจาก "A", "C" และ "D" (เพราะพวกเขาสามารถตามด้วยตัวอักษรหกตัวใดก็ได้) แต่มีเพียงห้าสาขาที่ออกมาจาก "B", "E" และ "F" (เพราะพวกเขาไม่สามารถติดตามได้ด้วยตนเอง) รูปแบบการแตกแขนงนี้มีประสิทธิภาพเช่นเดียวกับคำตอบของฉัน แต่คุณอาจต้องการที่จะมองเห็นมันในต้นไม้มากขึ้น


1
เป็นเรื่องจริงมาก ใช้กำลังดุร้าย (อาจเป็นไปได้กับ Inclusion-Exclusion Principle) เพื่อรับการประเมิน ballpark, ขอบเขตบนหรือขอบเขตล่างของคำตอบ
smci

3

วิธีการทางคณิตศาสตร์

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

  • การคำนวณผลิตภัณฑ์คาร์ทีเซียนระหว่างรายการของคุณและของตัวเอง
  • ลบเส้นทแยงมุม
  • สร้างชุดจากอาร์เรย์

ชุดคือชุดของวัตถุที่แตกต่างกันดังนั้นวัตถุจะไม่ถูกทำซ้ำ

แปลมันเป็น Python

from itertools import product
import numpy as np

letters = list("aabcccddef")
cartesianproduct = np.array(["".join(i) for i in product(letters,letters)]).reshape(10,10)


cartesianproduct

Out :
array([['aa', 'aa', 'ab', 'ac', 'ac', 'ac', 'ad', 'ad', 'ae', 'af'],
       ['aa', 'aa', 'ab', 'ac', 'ac', 'ac', 'ad', 'ad', 'ae', 'af'],
       ['ba', 'ba', 'bb', 'bc', 'bc', 'bc', 'bd', 'bd', 'be', 'bf'],
       ['ca', 'ca', 'cb', 'cc', 'cc', 'cc', 'cd', 'cd', 'ce', 'cf'],
       ['ca', 'ca', 'cb', 'cc', 'cc', 'cc', 'cd', 'cd', 'ce', 'cf'],
       ['ca', 'ca', 'cb', 'cc', 'cc', 'cc', 'cd', 'cd', 'ce', 'cf'],
       ['da', 'da', 'db', 'dc', 'dc', 'dc', 'dd', 'dd', 'de', 'df'],
       ['da', 'da', 'db', 'dc', 'dc', 'dc', 'dd', 'dd', 'de', 'df'],
       ['ea', 'ea', 'eb', 'ec', 'ec', 'ec', 'ed', 'ed', 'ee', 'ef'],
       ['fa', 'fa', 'fb', 'fc', 'fc', 'fc', 'fd', 'fd', 'fe', 'ff']], 
      dtype='|S2')

เราลบเส้นทแยงมุม

diagremv = np.array([ np.delete(arr,index) for index,arr in enumerate(cartesianproduct)]) 

diagremv

array([['aa', 'ab', 'ac', 'ac', 'ac', 'ad', 'ad', 'ae', 'af'],
       ['aa', 'ab', 'ac', 'ac', 'ac', 'ad', 'ad', 'ae', 'af'],
       ['ba', 'ba', 'bc', 'bc', 'bc', 'bd', 'bd', 'be', 'bf'],
       ['ca', 'ca', 'cb', 'cc', 'cc', 'cd', 'cd', 'ce', 'cf'],
       ['ca', 'ca', 'cb', 'cc', 'cc', 'cd', 'cd', 'ce', 'cf'],
       ['ca', 'ca', 'cb', 'cc', 'cc', 'cd', 'cd', 'ce', 'cf'],
       ['da', 'da', 'db', 'dc', 'dc', 'dc', 'dd', 'de', 'df'],
       ['da', 'da', 'db', 'dc', 'dc', 'dc', 'dd', 'de', 'df'],
       ['ea', 'ea', 'eb', 'ec', 'ec', 'ec', 'ed', 'ed', 'ef'],
       ['fa', 'fa', 'fb', 'fc', 'fc', 'fc', 'fd', 'fd', 'fe']], 
      dtype='|S2')

เราคำนวณความยาวของชุดองค์ประกอบ:

len(set(list(diagremv.flatten())))

Out: 33

1
ฉันชอบที่คุณทำให้วิธีการเดรัจฉานบังคับโดยอัตโนมัติและเป็นทางการ
Tim Seguine

2

ฉันคิดว่าเหตุผลที่บางคนคิดว่าคำถามนั้นไม่ชัดเจนเพราะมันใช้คำว่า "คำ 2 ตัวอักษร" เมื่อวิธีที่ทุกคนเข้าหาโซลูชันพวกเขาทั้งหมดตีความ "คำ 2 ตัวอักษร" เพื่อแปลความหมายเช่น "ตัวอักษรคู่" ในฐานะผู้เล่น Scrabble ตัวยงฉันจึงถามคำถามโดยทันทีว่า "มีตัวอักษร 2 ตัวที่ถูกต้องตามกฎหมายจากจดหมายเหล่านี้กี่ตัว?" และว่าคำตอบคือ - 12! อย่างน้อยตามเวอร์ชั่นล่าสุดของพจนานุกรม Scrabble Players Dictionary (OSPD5) ฉบับล่าสุด คำคือ aa, ab, ad, ae, ba, be, da, de, ed, ef, fa, และ fe (โปรดจำไว้ว่าความจริงที่ว่าคุณไม่เคยได้ยินคำศัพท์เหล่านี้จำนวนมากไม่ส่งผลต่อความถูกต้องของพวกเขา!); o)

แค่ "ความรู้สึก 2" ของฉัน


1

วิธีการนับอื่นที่ไม่มีแรงเดรัจฉาน:

หากตัวอักษรตัวแรกคือ a, c หรือ d มีตัวเลือกที่เหลืออยู่ 6 ตัวเลือกที่ชัดเจนสำหรับตัวอักษรตัวที่สอง

แต่ถ้าตัวอักษรตัวแรกคือ b, e หรือ f มีเพียง 5 ตัวเลือกที่เหลือสำหรับจดหมายฉบับที่สอง

ดังนั้นจึงมี 36+35=33 คำสองตัวอักษรที่แตกต่างกัน


0

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

1) เราสามารถแทนที่ตัวอักษรในวิธีใดก็ได้คำตอบเป็น 33 ตามที่ได้กล่าวไว้ก่อนหน้านี้ ตัวอักษรที่ต่างกัน 30 คู่ (6 * 5) และตัวอักษรที่คล้ายกัน 3 คู่

2) หากเราไม่สามารถเปลี่ยนตำแหน่งของตัวอักษรและข้ามได้เพียงอย่างเดียวเราจะได้คำตอบน้อยกว่ามาก ลองนับตั้งแต่ต้นจนจบ เริ่มต้นด้วย "a" เรามีตัวอักษร 6 ตัวให้เป็นตัวที่สองเริ่มต้นด้วย "b" แค่ 4 "c" ก็มี 4, "d" - 3 และ "e" - 1 นั่นคือ 18 ทั้งหมด


-1

คำตอบสำหรับคำถามของฉัน: คุณสามารถได้คำสองคำจาก aabcccddef ได้กี่คำ

  1. AA; 2. ab; 3. โฆษณา 4. ae; 5. โฆษณา 6. ba; 7. เป็น; 8. de; 9. ฟะ; 10. fe

* // ประเด็นคือคำถามที่อ่านว่า "คำ" ไม่ใช่การรวมกันของคู่ การใช้คำที่ตัวอักษรจะต้องปรากฏสองครั้งเพื่อใช้คำมากกว่าหนึ่งครั้งตัวอย่างเช่นมีตัวอักษร 'a' สองตัวและสองตัวอักษร 'd' ดังนั้นจึงเป็นไปได้ที่จะเขียน 'ad' เป็นคำสองครั้ง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.