انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید

نویسنده موضوع: درخواست الگوریتم برای ضرب و تقسیم اعشاری  (دفعات بازدید: 5709 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین احسان☺ -

  • Hero Member
  • *
  • ارسال: 937
  • جنسیت : پسر
  • !no power geek
درخواست الگوریتم برای ضرب و تقسیم اعشاری
« : 13 اردیبهشت 1392، 11:19 ب‌ظ »
سلام خدمت همه ی برنامه نویسایه گرامی از دوستان کسی میتونه یه الگوریتم واسه ضرب و تقسیم اعشاری معرفی کنه که از حالت محاسبه دستی سریع تر باشه؟البته اگه وجود داره.اگه بشه کمک خیلی بزرگی به من کردین.

آفلاین محمدرضا ح.

  • High Hero Member
  • *
  • ارسال: 3117
  • جنسیت : پسر
  • Your Future is our Past!
پاسخ : درخواست الگوریتم برای ضرب و تقسیم اعشاری
« پاسخ #1 : 13 اردیبهشت 1392، 11:49 ب‌ظ »
این که اعشاری ضرب و تقسیم بشه ، بستگی به چند چیز داره :

۱- زبان مورد استفاده

۲- نوع متغیر. مثلا متغیری که برای اعداد صحیح هست مثل تابع جزء صحیح میمونه (کلاس چندمی؟) مثلا فرض میکنم متغیر i از نوع عدد صحیح هست، و وقتی مثلا مقدار 3.233 رو بهش میدی ، اون رو بصورت

[i]=i



فرض میکنه. یعنی جزءصحیح i برابرست با i . ولی اگه از نوع اعشاری باشه، اینطور نیست و میشه i=i .

چه زبانی رو میخوای کار کنی؟ بعضی وقتها به متغیرها هیچ نوعی نسبت داده نمیشه (نمونش Haskell که هم میتونی نوعش رو تعیین کنی و هم بدون تعیین نوع متغیر باهاش کار کنی :) ) این مواقع میشه اعشار بهش داد و ازش خروجی اعشاری گرفت. ولی بعضی وقتها مجبور به تعیین نوع متغیر هستی که اون موقع باید نوعی رو تعیین کنی که اعشار هم قبول کنه (به عنوان ورودی).
قاضی : تو السالوادور چه کار میکردی؟
چه‌گوارا : آفتاب میگرفتم
قاضی : پس چرا ساختمان دادگستری رو منفجر کردی؟
چه‌گوارا : جلوی آفتاب رو گرفته بود

آفلاین vandu

  • Hero Member
  • *
  • ارسال: 741
  • جنسیت : پسر
پاسخ : درخواست الگوریتم برای ضرب و تقسیم اعشاری
« پاسخ #2 : 14 اردیبهشت 1392، 12:04 ق‌ظ »
الگوریتم رو برای چه کاری میخواید؟
Nothing is particularly hard if you divide it into small jobs

Henry Ford

آفلاین سلمان م.

  • ناظر انجمن
  • *
  • ارسال: 4106
  • جنسیت : پسر
  • GNU Operating System - سیستم عامل گنو
پاسخ : درخواست الگوریتم برای ضرب و تقسیم اعشاری
« پاسخ #3 : 14 اردیبهشت 1392، 09:36 ق‌ظ »
من منظورت رو از سوالت نفهمیدم. :)

آفلاین r_m1232002

  • Full Member
  • *
  • ارسال: 143
پاسخ : درخواست الگوریتم برای ضرب و تقسیم اعشاری
« پاسخ #4 : 14 اردیبهشت 1392، 11:33 ق‌ظ »
سلام

بهتره هدفت از این سوال رو هم بگی تا در صورت امکان بهتر بتونیم بهت کمک کنیم. اگه هدفت اینه که توی برنامه نویسی بتونی به سریع ترین شکل ممکن دو عدد اعشاری رو در هم ضرب کنی باید بدونی که سریع ترین راه استفاده از الگوریتم های بهینه نیست بلکه استفاده از دستورات خود CPU در مورد اعمال اعشاری هست. به طور مثال برای ضرب اعشاری در CPU های کامپیوترهای شخصی از دستور FMUL در زبان اسمبلی استفاده میشه که این سریع ترین روش برای ضرب دو عدد اعشاری بر روی یک کامپیوتر هست. این روش توسط تمامی کامپایلر های جدید پشتیبانی میشه و به همین دلیل سریع ترین روش برای ضرب دو عدد اعشاری در یک زبان برنامه نویسی سطح بالا همون استفاده از عملگر ضرب خود زبان هست. یعنی مثلا در زبان C به راحت ترین شکل نوشتن  Value = 1.0 * 2.0 سریع ترین روش برای ضرب دو عدد اعشاری 1 و 2 هم هست.

اما اگه هدفت حل یک تمرین درسی یا کنجکاوی شخصی خودت یا هر چیز دیگه ای هست بهتره هدفت رو بیشتر توضیح بدی تا متناسب با اون بتونیم راهنمایی بهتری کنیم.

آفلاین احسان☺ -

  • Hero Member
  • *
  • ارسال: 937
  • جنسیت : پسر
  • !no power geek
پاسخ : درخواست الگوریتم برای ضرب و تقسیم اعشاری
« پاسخ #5 : 14 اردیبهشت 1392، 01:10 ب‌ظ »
این که اعشاری ضرب و تقسیم بشه ، بستگی به چند چیز داره :

۱- زبان مورد استفاده

۲- نوع متغیر. مثلا متغیری که برای اعداد صحیح هست مثل تابع جزء صحیح میمونه (کلاس چندمی؟) مثلا فرض میکنم متغیر i از نوع عدد صحیح هست، و وقتی مثلا مقدار 3.233 رو بهش میدی ، اون رو بصورت

[i]=i



فرض میکنه. یعنی جزءصحیح i برابرست با i . ولی اگه از نوع اعشاری باشه، اینطور نیست و میشه i=i .

چه زبانی رو میخوای کار کنی؟ بعضی وقتها به متغیرها هیچ نوعی نسبت داده نمیشه (نمونش Haskell که هم میتونی نوعش رو تعیین کنی و هم بدون تعیین نوع متغیر باهاش کار کنی :) ) این مواقع میشه اعشار بهش داد و ازش خروجی اعشاری گرفت. ولی بعضی وقتها مجبور به تعیین نوع متغیر هستی که اون موقع باید نوعی رو تعیین کنی که اعشار هم قبول کنه (به عنوان ورودی).
:o :o :o :o :o :o :o :o :o :o ](*,) ](*,) ](*,)
اینا که گفتید یعنی چی؟من که هیچی نفهمیدم البته بازم ممنون از توضیحات ولی اگه میشه زیر دیپلم توضیح بدید(سوم تجربی)فعلا واسه کنکور و تمرینات کتاب درسی میخوام البته دارم به صورت لاکپشتی پایتون هم میخونم.ممنو از بقیه دوستان هم.کاش دکمه +1 من فعال میشد.

آفلاین محمدرضا ح.

  • High Hero Member
  • *
  • ارسال: 3117
  • جنسیت : پسر
  • Your Future is our Past!
پاسخ : درخواست الگوریتم برای ضرب و تقسیم اعشاری
« پاسخ #6 : 14 اردیبهشت 1392، 01:40 ب‌ظ »
خب فکر کنم ریاضیات تجربی هم جزء صحیح رو داشته باشه ، اگر نداره ، توی مدرسه از دوستانی که ریاضی میخونن کتاب حسابانشون رو بگیر و یا بخواه ازشون جزء صحیح رو برات توضیح بدن.

من توضیحم خیلی کلی بود. این پست هم خیلی خیلی خوب توضیح داد :

سلام

بهتره هدفت از این سوال رو هم بگی تا در صورت امکان بهتر بتونیم بهت کمک کنیم. اگه هدفت اینه که توی برنامه نویسی بتونی به سریع ترین شکل ممکن دو عدد اعشاری رو در هم ضرب کنی باید بدونی که سریع ترین راه استفاده از الگوریتم های بهینه نیست بلکه استفاده از دستورات خود CPU در مورد اعمال اعشاری هست. به طور مثال برای ضرب اعشاری در CPU های کامپیوترهای شخصی از دستور FMUL در زبان اسمبلی استفاده میشه که این سریع ترین روش برای ضرب دو عدد اعشاری بر روی یک کامپیوتر هست. این روش توسط تمامی کامپایلر های جدید پشتیبانی میشه و به همین دلیل سریع ترین روش برای ضرب دو عدد اعشاری در یک زبان برنامه نویسی سطح بالا همون استفاده از عملگر ضرب خود زبان هست. یعنی مثلا در زبان C به راحت ترین شکل نوشتن  Value = 1.0 * 2.0 سریع ترین روش برای ضرب دو عدد اعشاری 1 و 2 هم هست.

اما اگه هدفت حل یک تمرین درسی یا کنجکاوی شخصی خودت یا هر چیز دیگه ای هست بهتره هدفت رو بیشتر توضیح بدی تا متناسب با اون بتونیم راهنمایی بهتری کنیم.

و اما در مورد پایتون ، زبان خوبی رو شروع کردی. میتونی با استفاده از اون به جاهای خوبی برسی :)
قاضی : تو السالوادور چه کار میکردی؟
چه‌گوارا : آفتاب میگرفتم
قاضی : پس چرا ساختمان دادگستری رو منفجر کردی؟
چه‌گوارا : جلوی آفتاب رو گرفته بود

آفلاین r_m1232002

  • Full Member
  • *
  • ارسال: 143
پاسخ : درخواست الگوریتم برای ضرب و تقسیم اعشاری
« پاسخ #7 : 14 اردیبهشت 1392، 03:12 ب‌ظ »
فعلا واسه کنکور و تمرینات کتاب درسی میخوام

اگه هدفت اینه که بتونی محاسبات جبری رو برای کنکور سریع تر انجام بدی بهتره به دنبال الگوریتم های ضرب و تقسیم نباشی بلکه دنبال تکنیک های محاسبات ذهنی سریع بگرد.

کتابهای زیادی در این رابطه نوشته شدن که معمولا مجموعه ای بزرگ از تکنیک های متنوع هستند. اگه چند تا از تکنیک های پراستفاده اونها رو یاد بگیری میتونه باعث افزایش سرعت محاسباتت بشه.

آفلاین dr.b4ne

  • Sr. Member
  • *
  • ارسال: 265
  • جنسیت : پسر
پاسخ : درخواست الگوریتم برای ضرب و تقسیم اعشاری
« پاسخ #8 : 14 اردیبهشت 1392، 04:57 ب‌ظ »
الگوریتم که به زبان پیاده سازیش بستگی نداره  !

این کارا ترینه برای ضرب

http://en.wikipedia.org/wiki/Multiplication_algorithm

آفلاین احسان☺ -

  • Hero Member
  • *
  • ارسال: 937
  • جنسیت : پسر
  • !no power geek
پاسخ : درخواست الگوریتم برای ضرب و تقسیم اعشاری
« پاسخ #9 : 14 اردیبهشت 1392، 05:17 ب‌ظ »
ممنون از همگی