بکندباز

“بر زدن بیرونی” (Out-shuffle)، که به آن “فارو شافل بیرونی” نیز گفته می‌شود، روشی دقیق برای بر زدن کارت‌هاست. در این روش، دسته کارت به دو نیم مساوی تقسیم می‌شود و سپس به صورت دقیق به هم بافته می‌شوند، به گونه‌ای که کارت بالای دسته کارت‌ها در جای خود باقی بماند.

با استفاده از یک لیست برای نمایش دسته کارت‌ها، یک بر زدن بیرونی به صورت زیر انجام می‌شود:

[1, 2, 3, 4, 5, 6, 7, 8] ➞ [1, 5, 2, 6, 3, 7, 4, 8]
#  کارت 1 در جایگاه اول باقی می‌ماند.

اگر این فرآیند را تکرار کنیم، دسته کارت در نهایت به ترتیب اصلی خود باز می‌گردد:

بر زدن 1:

[1, 2, 3, 4, 5, 6, 7, 8] ➞ [1, 5, 2, 6, 3, 7, 4, 8]

بر زدن 2:

[1, 5, 2, 6, 3, 7, 4, 8] ➞ [1, 3, 5, 7, 2, 4, 6, 8]

بر زدن 3:

[1, 3, 5, 7, 2, 4, 6, 8] ➞ [1, 2, 3, 4, 5, 6, 7, 8]
#به ترتیب اصلی بازگشت.

تابعی به نام shuffle_count بنویسید که یک عدد صحیح مثبت زوج num (نمایانگر تعداد کارت‌ها در دسته) بگیرد و تعداد بر زدن‌های بیرونی موردنیاز برای بازگشت دسته کارت به ترتیب اصلی را برگرداند.

نکات

  • تعداد کارت‌ها همیشه زوج و بزرگ‌تر از صفر است. بنابراین کوچک‌ترین اندازه ممکن برای دسته کارت‌ها 2 است.
self.assertEqual(shuffle_count(8), 3)
self.assertEqual(shuffle_count(14), 12)
self.assertEqual(shuffle_count(52), 8)
self.assertEqual(shuffle_count(38), 36)
self.assertEqual(shuffle_count(52), 8)
self.assertEqual(shuffle_count(70), 22)

پاسخ های کاربران به این تمرین

MarsBoy
امتیاز:‌ 3948
تصحیح اتوماتیک 0 0
‎پایتون‎
8 دي 1403

برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید

نظرات

*
*

تمرینات مرتبط