(aa sẽ là một trong nhiều, bb sẽ không)
Tôi nghĩ rằng nó sẽ là 10! / 8! Nhưng rõ ràng là tôi đang làm gì đó sai. Bất cứ ai có thể giúp tôi ra vì tôi bị bối rối.
(aa sẽ là một trong nhiều, bb sẽ không)
Tôi nghĩ rằng nó sẽ là 10! / 8! Nhưng rõ ràng là tôi đang làm gì đó sai. Bất cứ ai có thể giúp tôi ra vì tôi bị bối rối.
Câu trả lời:
Bạn có 6 chữ cái khác nhau: a, b, c, d, e, f trong đó bạn có thể tạo 6 x 5 = 30 từ với hai chữ cái khác nhau. Ngoài ra, bạn có thể tạo 3 từ aa, cc, dd với cùng một chữ cái hai lần. Vậy tổng số từ là 30 + 3 = 33.
Một phương pháp thay thế cho phương pháp của Zahava: có cách ghép hai trong số các chữ cái af. Tuy nhiên, không có 2 b, e hoặc f ký tự, vì vậy "bb", "ee" và "ff" không thể thực hiện được, làm cho số lượng từ 36 - 3 = 33 .
Cách bạn đã cố gắng tiếp cận vấn đề dường như bỏ qua thực tế là không có 10 chữ cái riêng biệt. Nếu bạn có 10 chữ cái riêng biệt thì câu trả lời của bạn sẽ chính xác.
Nếu bạn không thể giải thích nó theo cách "thông minh", thì thường đáng để thử sức mạnh vũ phu. Hãy tưởng tượng bạn đang cố gắng viết ra một danh sách theo thứ tự bảng chữ cái của tất cả các từ bạn có thể tạo ra.
Có bao nhiêu có thể bắt đầu với "A"? Vâng, "A" có thể được theo sau bởi A, B, C, D, E hoặc F, vì vậy đó là sáu cách.
Có bao nhiêu có thể bắt đầu với "B"? Điều đó có thể được theo sau bởi A, C, D, E hoặc F, chỉ có năm cách, vì không có chữ "B" thứ hai.
Có bao nhiêu có thể bắt đầu với "C"? Vì "C" xuất hiện ba lần trong danh sách của bạn, nên nó có thể được theo sau bởi chính nó hoặc bởi bất kỳ năm chữ cái nào khác, do đó, giống như với "A", có sáu cách. Lưu ý rằng chúng tôi không nhận được bất kỳ cách "phụ" nào chỉ vì "C" xuất hiện nhiều lần hơn "A"; bất cứ điều gì ngoài sự xuất hiện thứ hai là dư thừa.
Hy vọng rằng rõ ràng rằng mỗi chữ cái chỉ xuất hiện một lần trong danh sách của bạn có thể xuất hiện ở đầu năm từ và các chữ cái xuất hiện hai lần trở lên có thể xuất hiện ở đầu sáu từ. Các chữ cái chỉ xuất hiện một lần là "B", "E" và "F", mỗi chữ cái có thể ở đầu năm từ, do đó tạo ra 5 + 5 + 5 = 15 từ. Các chữ cái xuất hiện hai lần trở lên là "A", "C" và "D", mỗi chữ cái có thể ở đầu sáu từ, do đó tạo ra 6 + 6 + 6 = 18 từ. Tổng cộng có 15 + 18 = 33 từ.
Điều này dài dòng hơn các phương pháp khác, nhưng bằng cách cố gắng suy nghĩ về câu trả lời theo cách có hệ thống này, bạn có thể đã "phát hiện" một trong những phương pháp nhanh hơn.
Lưu ý rằng nếu điều này đã được đặt ra như một câu hỏi xác suất, thiên hướng đầu tiên của bạn có thể là vẽ sơ đồ cây . Nó sẽ bắt đầu với sáu nhánh cho chữ cái đầu tiên, nhưng đối với chữ cái thứ hai sẽ có sáu nhánh đi ra từ "A", "C" và "D" (bởi vì chúng có thể được theo sau bởi bất kỳ sáu chữ cái nào) nhưng chỉ có năm nhánh đi ra từ "B", "E" và "F" (vì chúng không thể được theo dõi bởi chính chúng). Mô hình phân nhánh này thực sự giống như trong câu trả lời của tôi, nhưng bạn có thể thích nghĩ về nó trực quan hơn trong một cái cây.
Từ quan điểm toán học, giải pháp là tập hợp các yếu tố của sản phẩm cartesian giữa danh sách và chính nó một khi đã loại bỏ đường chéo. Bạn có thể giải quyết vấn đề này bằng thuật toán này:
Một tập hợp là một tập hợp các đối tượng riêng biệt được xác định rõ, do đó các đối tượng không được lặp lại.
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')
Chúng tôi loại bỏ đường chéo
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')
Chúng tôi tính chiều dài của tập hợp các phần tử:
len(set(list(diagremv.flatten())))
Out: 33
Tôi nghĩ lý do một số người nghĩ rằng câu hỏi không rõ ràng là vì nó sử dụng thuật ngữ "từ 2 chữ cái". Theo cách mọi người đang tiếp cận một giải pháp, tất cả họ đều diễn giải "từ 2 chữ cái" có nghĩa là "cặp chữ cái". Là một người chơi Scrabble cuồng nhiệt, tôi ngay lập tức đặt câu hỏi có nghĩa là "Có bao nhiêu từ 2 chữ cái hợp pháp có thể được tạo ra từ những chữ cái này?" Và đó câu trả lời là - 12! Ít nhất, theo phiên bản mới nhất của Từ điển người chơi Scrabble (OSPD5). Các từ là aa, ab, ad, ae, ba, be, da, de, ed, ef, fa, và fe. (Xin lưu ý rằng thực tế là bạn chưa bao giờ nghe thấy nhiều từ này không phủ nhận tính hợp lệ của chúng!); O)
Chỉ là "2 nghĩa" của tôi.
Một cách khác để đếm mà không cần vũ lực:
Nếu chữ cái đầu tiên là a, c hoặc d, có 6 lựa chọn còn lại riêng biệt cho chữ cái thứ hai.
Nhưng nếu chữ cái đầu tiên là b, e hoặc f thì chỉ có 5 lựa chọn còn lại cho chữ cái thứ hai.
Vì vậy, có phân biệt hai chữ cái.
Có một vấn đề trong cách bạn đặt câu hỏi của bạn. Những hành động nào thực sự được cho phép trên dòng "aabcccddef" để lấy từ có 2 chữ cái? Chúng ta có thể thay thế cái sau hoặc chỉ vượt qua những thứ không cần thiết? Tôi đã tìm thấy hai câu trả lời có thể tùy thuộc vào điều kiện này:
1) Chúng ta có thể thay thế các chữ cái theo bất kỳ cách nào câu trả lời là 33 như đã đề cập trước đó. 30 cặp chữ cái khác nhau (6 * 5) và 3 cặp chữ cái tương tự.
2) Nếu chúng tôi không thể chuyển đổi vị trí chữ cái và chỉ có thể vượt qua, chúng tôi sẽ nhận được ít câu trả lời hơn. Hãy tính từ đầu đến cuối. Bắt đầu bằng "a", chúng tôi có 6 chữ cái là thứ hai, bắt đầu bằng "b" chỉ có 4. "c" cũng có 4, "d" - 3 và "e" - 1. Đó là 18 hoàn toàn.
Câu trả lời của tôi cho câu hỏi: Bạn có thể nhận được bao nhiêu từ 2 chữ cái từ aabcccddef
* // Điểm là câu hỏi đọc, "từ" không kết hợp các cặp. Sử dụng các từ, chữ cái sẽ phải xuất hiện hai lần để sử dụng từ nhiều hơn một lần, ví dụ, có hai trong số các chữ cái 'a' và hai trong số các chữ cái 'do đó, có thể viết' quảng cáo 'thành một từ hai lần.
[self-study]
thẻ và đọc wiki của nó .