আমি যে অন্য চ্যালেঞ্জটি লিখছি তার জন্য, আমাকে যাচাই করা দরকার যে পরীক্ষার কেসগুলি সীমাবদ্ধ পূর্ণসংখ্যার সাথে সমাধানযোগ্য। বিশেষত, খালি খালি পূর্ণসংখ্যার পূর্ণ সংখ্যা Aএবং একটি পূর্ণসংখ্যার বিট প্রস্থের জন্য আমাকে নিম্নলিখিতগুলি যাচাই করতে হবে n:
- সকল পূর্ণসংখ্যার
aমধ্যেAসন্তুষ্ট-2**(n-1) <= a < 2**(n-1)না (এর সাথে representablen-বিট দুই এর সম্পূরক পূর্ণসংখ্যার)। - এর দৈর্ঘ্য এর
Aচেয়ে কম2**n। - এর সমষ্টি
Aসন্তুষ্ট-2**(n-1) <= sum(A) < 2**(n-1)। Aউপরোক্ত সমস্ত শর্ত পূরণে উপাদানগুলির সমস্ত সংমিশ্রণ ।
স্বাভাবিকভাবেই, আমি আপনাকে এই সমস্যার আউটসোর্স করার সিদ্ধান্ত নিয়েছি!
পূর্ণসংখ্যার একটি অ্যারে Aএবং ধনাত্মক পূর্ণসংখ্যার বিট প্রস্থ দেওয়া n, যাচাই করুন যা Aউপরের শর্তগুলিকে সন্তুষ্ট করে।
পরীক্ষার কেস
[0, 0, 0], 2: True
[0, 0, 0, 0], 2: False (violates #2)
[1, 2, 3, 4, 5], 8: True
[1, 2, 3, 4, 5], 2: False (violates all conditions)
[1, 2, 3, 4, 5], 5: True
[-3, 4, 1], 4: True
[10, 0, -10], 4: False (violates #1 and #4)
[27, -59, 20, 6, 10, 53, -21, 16], 8: False (violates #4)
[-34, 56, 41, -4, -14, -54, 30, 38], 16: True
[-38, -1, -11, 127, -35, -47, 28, 89, -8, -12, 77, 55, 75, 75, -80, -22], 7: False (violates #4)
[-123, -85, 6, 121, -5, 12, 52, 31, 64, 0, 6, 101, 128, -72, -123, 12], 12: True
রেফারেন্স বাস্তবায়ন (পাইথন 3)
#!/usr/bin/env python3
from itertools import combinations
from ast import literal_eval
def check_sum(L, n):
return -2**(n-1) <= sum(L) < 2**(n-1)
def check_len(L, n):
return len(L) < 2**n
def check_elems(L, n):
return all(-2**(n-1) <= a < 2**(n-1) for a in L)
A = literal_eval(input())
n = int(input())
OUTPUT_STR = "{}, {}: {}".format(A, n, "{}")
if not (check_elems(A, n) and check_len(A, n) and check_sum(A, n)):
print(OUTPUT_STR.format(False))
exit()
for k in range(1, len(A)):
for b in combinations(A, k):
if not check_sum(b, n):
print(OUTPUT_STR.format(False))
exit()
print(OUTPUT_STR.format(True))