সাজানো ক্রমে তিনটি ডাইস রোল (1-6 থেকে পূর্ণসংখ্যার মানগুলি) দেওয়া (যাতে অবিচ্ছেদ্য হতে পারে), একটি অভিন্ন বিতরণের মাধ্যমে তাদের দুটি ফর্সা ডাইসের যোগফলে রূপান্তর করুন ।
তিন থেকে একটির জন্য উত্তরগুলি সমস্তটি সংক্ষিপ্ত করে রাখে, মডেল 6 The শেষ ফলাফলটি পুরোপুরি সমতল বিতরণ, যেখানে ছয় সংখ্যার প্রত্যেকেরই সমান সম্ভাবনা থাকে (ঠিক এককভাবে মারা যাওয়ার মতো)।
তিনটি থেকে একের জন্য এটি করা সহজ, সমস্তগুলিকে 6 মডিউলগুলি সংশ্লেষ করে শেষ ফলাফলটি একটি পুরোপুরি সমতল বিতরণ, যেখানে ছয় সংখ্যার প্রত্যেকেরই সমান সম্ভাবনা থাকে (ঠিক এককভাবে মারা যাওয়ার মতো)। আপনার চ্যালেঞ্জটি তিন-টু-দুজনের জন্য একই কাজ করা do
স্ট্যান্ডআপমথের তিনটি পৃথক ডাইস ধাঁধা দ্বারা অনুপ্রাণিত । একটি ফলোআপ "সমাধান" ভিডিওও পোস্ট করা হয়েছিল, তবে একটি উপায় বা অন্য কোনওভাবে "কমনীয়তা" সম্পর্কে তর্ক করা কিছুটা বিষয়ভিত্তিক। অক্ষর গণনা হয় না।:D
নির্দেশনা
এমন একটি প্রোগ্রাম বা ফাংশন লিখুন যা তিনটি সাজানো পূর্ণসংখ্যা / সংখ্যা, 1-6 স্বীকৃতি দেয় এবং আউটপুটগুলি দেয় বা একটি একক পূর্ণসংখ্যকে 2-12 দেয়, যেমন 216 সম্ভাব্য ইনপুটগুলির জন্য আউটপুটগুলি বিতরণ করা হয়:
222222
333333333333
444444444444444444
555555555555555555555555
666666666666666666666666666666
777777777777777777777777777777777777
888888888888888888888888888888
999999999999999999999999
AAAAAAAAAAAAAAAAAA
BBBBBBBBBBBB
CCCCCC
(আমি একক অক্ষর ধরে রাখতে হেক্স ব্যবহার করেছি; দশমিক আউটপুট ভাল)
পাশা অবিচ্ছিন্ন কারণ, তাদের কাছে কোনও অভ্যন্তরীণ ক্রম নেই, সুতরাং সাজানো ইনপুট। আপনি কেবল "তৃতীয়টি বাদ দিতে" পারবেন না কারণ এটি দ্ব্যর্থক হবে।
বিস্তারিত
- স্কোর হ'ল বাইটে প্রোগ্রামের দৈর্ঘ্য
- প্রোগ্রামটি এমন কোনও ফাংশন হতে পারে যা বলা যায় কোনওরকম, বা এক্সিকিউটেবল স্ক্রিপ্ট যা স্টিডিনের কাছ থেকে পড়ে বা যা কিছু সন্তুষ্ট।
- অন্য উত্স থেকে এন্ট্রপি পেয়ে কোনও "পুনরায় তালিকাভুক্ত" নয়
উদাহরণ (এবং পরীক্ষা)
কোনও ধরণের সম্ভাব্যতা পরীক্ষা করার পরিবর্তে, তিনটি পাশার 216 (6³) কেস কেটে ফেলা যথেষ্ট সহজ এবং আপনার ফাংশনটি প্রতিটি মানকে যতবার করা উচিত তার চেয়ে বহুগুণ ফেরত দেয় তা জোর দিয়ে বলা যায়। এটি অভিন্ন পরামিতিগুলির সাথে ডাকা হবে (যেমন কেসগুলি 1, 2, 3
এবং 3, 2, 1
, ... পৃথক পৃথক বলে ধরা হয় এবং এগুলি (নির্বিচারে রূপান্তরিত হয় 1, 2, 3
))।
পাইথনের নীচে উদাহরণের উত্তর (অত্যন্ত নিষ্ঠুর শক্তি এবং অদক্ষ) এবং পরীক্ষার স্যুট সরবরাহ করা হয়েছে। আশা করি পরীক্ষার বিটগুলি আপনার পছন্দের ভাষাটিতে পোর্ট করার পক্ষে যথেষ্ট স্পষ্ট, যদিও স্টিডিন / স্টাডআউট করা কিছুটা আলাদা হবে। টেস্টিং কোডটি কেবল পরীক্ষার জন্য এবং স্কোর না করার জন্য (যদিও আপনি এটি আপনার ভাষা বা I / O পদ্ধতির অন্য ব্যবহারকারীদের জন্য সরবরাহ করতে চান তবে এটি কার্যকর হতে পারে)।
# 6x6 lists of numbers with digits sorted
LUT = [
[[124], [133, 166], [346], [223, 355], [256], [115, 445]],
[[233, 266], [125], [224, 455], [134], [116, 446], [356]],
[[126], [111, 333, 555, 225], [234], [144, 366], [456], [135]],
[[112, 244], [235], [334, 466], [145], [226, 556], [136]],
[[146], [122, 155], [236], [113, 344], [245], [335, 566]],
[[246], [123], [114, 336], [345], [222, 444, 666, 255], [156]],
]
def three2two(rolls):
look_for = int('{}{}{}'.format(*sorted(rolls)))
for i in range(6):
for j in range(6):
if look_for in LUT[i][j]:
return i + j + 2
# fair distribution of the sum of two dice multiplied by 6 (because each should be hit 6x)
expected_counts = {
2: 6, 12: 6,
3: 12, 11: 12,
4: 18, 10: 18,
5: 24, 9: 24,
6: 30, 8: 30,
7: 36,
}
d = [1, 2, 3, 4, 5, 6]
for i in d:
for j in d:
for k in d:
ijk = sorted([i, j, k])
result = three2two(ijk)
expected_counts[result] -= 1
for key in expected_counts:
assert expected_counts[key] == 0
(a+b+c)%6+1
এবং (a*b*c)%7
অবারিত ডাইসের এক ট্রিপলকে অভিন্ন একক ডাই রোলে রূপান্তরিত করুন, তবে দুর্ভাগ্যক্রমে সম্ভবত সম্ভাব্যভাবে স্বাধীন নয়।