برنامه ای به زبان پایتون بنویسید که x را خونده و بدون استفاده از عملگر ضرب عبارت زیر را محاسبه کنه هدف استفاده از عملگر شیف به چپ هستش لطفا دوستان روشی که استفاده میکنند را توضیح بدهند.
y= 31*x-17*x+5
برنامه ای به زبان پایتون بنویسید که x را خونده و بدون استفاده از عملگر ضرب عبارت زیر را محاسبه کنه هدف استفاده از عملگر شیف به چپ هستش لطفا دوستان روشی که استفاده میکنند را توضیح بدهند.
y= 31*x-17*x+5
سلام
یک راه محاسبۀ چنین عبارتی بدون استفاده از ضرب کد زیر است:
n = int (input ("Enter a number: "))
m1 = n
for i in range (1,31):
m1 = m1 + n
m2 = n
for i in range (1, 17):
m2 = m2 + n
print (m1-m2+5)
در واقع در این جا، ضرب را شبیهسازی کردهایم و به جای ضرب از حلقهها و جمع مکرر استفاده کردیم.
عملگر شیفت به چپ، عدد ورودی را ضرب در 2 به توان عدد شیفت میکند. یعنی مثلا اگر عدد 5 را 3 بار به چپ شیفت دهیم در واقع 5 را در 2 به توان 3 (8) ضرب کردهایم. توضیحات بیشتر دربارهی این عملگر:
https://wiki.python.org/moin/BitwiseOperators
در لینک زیر، عملگر ضرب با استفاده از شیفت به چپ، شبیهسازی شده است و مثالهایی هم از چهار زبان برنامهنویسی زده شده است. اما متاسفانه من نتوانستم این کار را در پایتون انجام دهم تا کد آن را برای شما بنویسم.
https://www.geeksforgeeks.org/multiplication-two-numbers-shift-operator/
اما بخش اول آن (ضرب یک عدد ورودی در 31) را در پایتون پیاده کرده و در لینک زیر قرار دادم:
https://ide.geeksforgeeks.org/sZq8w2ITKd
n = int (input ())
ans1 = 0
count = 0
m = 31
while m:
if m % 2 == 1:
ans1 += n << count
count += 1
m /= 2
print(ans1)
موفق باشید
پاسخ ها