سلام دوستان شاید سوالم خیلی مبتدی باشه، آخه تازه کارم
می خوام ریشه ی n ام یک عدد رو بدون استفاده از توابع (مثلا pow) یا هت ( ^) بدست بیارم، یکم فوریه اگه ممکنه زود
بازم می گم از توابع نمی خوام استفاده کنم
ممنون
مرسی اشکان جان روش جالبیه اما برنامه نویسیش چی می شه؟
ببین من خیلی این ور اون ور و گشتم به این نتیجه رسیدم که ریشه ی یه عدد یه چیزی بین 1 و نصف اون عدده
خوب؟ حالا ما باید بگیم
for i=1 to (textbox1.text/2
)
که تکست باکس 1 همون عددیه که باید جذرش رو پیدا کنیم
بعد احتمالا یه for یا if دیگه هم می خواد که اگه حاصلضرب فرجه در عددی بین 1 تا نصف عدد زیر رادیکال (I ) برابر عدد زیر رادیکال شد بگه که این ریشه ی n ام عدد زیر رادیکاله
نمی دونم تونستم منظورمو برسونم یا نه
لطفا اگه توضیح می دید در حد مبتدی باشه آخه این دومین برنامه ایه که دارم می نویسم !
ببین این یه روش تکراری هست یعنی یه حلقه بنویس مثلا 10 بار با استفاده ار فرمول با فرض مثلا مقدار اولیه مشخص برای ریشه 3 مثلا عدد 1.5 شروع کنه و 1.5 رو بزاره توی فرمول عددی که به دست میاره برای بار دوم بزاره تو فرمول و تا 10 بار عدد آخری نزدیکترین عدد به ریشه عدد 3 میشه هرچی تکرار بیشتر باشه خطا کمتره(البته خطای محاسباتی کامپیوتر ممکنه باعث بشه خطا بعد از تکرارهای زیاد دوباره اضافه بشه).
نه فکر نمی کنم تقریبی باشه، باید وقتی حاصلضرب عددی بین 1 تا نصف عددی که جذ رش رو می خوایم x ریشه (فرجه) = خود عددی که می خوایم ازش جذر بگیریم بشه اون وقت i رو (که عددی بین 1 تا نصف عددی که جذرش رو می خوایم هست) به ما نشون بده !
مثلا :
اگه ما جذر 8 با ریشه ی 3 رو ( در واقع یعنی ریشه ی سوم 8 رو بخواهیم) باید اینجوری بشه ...
ما ( کامپیوتر) باید یه عددی از 1 تا 4 پیدا کنیم که اگه 3 بار در خودش ضرب بشه ، بشه 8
که این عدد 2 هست !
حالا اگه براتون امکان داره بگید من چه کدی تو vb.net بنویسم که اینو بم بده
این که چیکار باید بکنم رو خودم پیدا کردم کد شو می خوام
tnx
این روشی که من گفتم اونی نیست که تو میخوایی و من روشی واسه کار تو ندارم.
دوست من کلا الگوریتم بدست آوردن ریشه n ام از همین روش Newton-Raphson اثبات میشه و تمام ریشه ها تقریبی خواهد بود . پس خیالت رو راحت کنم که پیدا کردن ریشه ها تقریبیه و دقیق نخواهد بود ! لینک :
http://en.wikipedia.org/wiki/Nth_root_algorithm
همینطور میبینی که طبق الگوریتم باید از توان رسوندن هم استفاده کنی !!
چرا تقریبی ؟؟ همه میدونن که ریشه سوم عدد 8 ، عدد 2 هست . اگر چه طبق تعریف قرار باشه 8 رو به توان یک سوم برسونیم مطعمعنا جواب دقیقی نمیگیریم !! چون یک سوم خودش یک عددیه که قسمت اعشاریش پایان پذیر نیست پس مطمعنا عدد 2 با دقت بدست نخواهد اومد ! شما مجبور هستی توی برنامه ات امکان گرد کردن اعداد رو بگذاری و اونها رو به نزدیک ترین عدد ممکن گرد کنی تا جواب هات درست دربیاد (البته نه واسه همه جواب ها چون اونطور خیلی از جواب ها غلط درمیان چون همشون عدد صحیح میشن !!)
من یک راه حل رو بهت ارائه میدم . نگران نباش . فقط اول امیدوارم برات مسله جا افتاده باشه . اگر حله بگو من ادامه بدم !
در ضمن اشکان جان روش پیشنهادی شما کاملا درسته ! همون طور که میبینی از روش Newton-Raphson در الگوریتم استفاده شده . در واقع این روش Newton-Raphson برای پیدا کردن ریشه های تقریبی معادله f(x)=0 بکار میره . دیگر روشهای تکرار و تقریب هم نیاز به توان رسوندن دارند . همینطور تمام جواب های روشهای مشابه مثل BIsection هم تقریبی هست و دقیق نیست !
نکته 1 : من نگفتم روش ایشون اشتباهه ، گفتم اونی که قراره من ببرم سر کلاس نیست !
نکته 2 : منظورم از تقریب اینه که مثلا یکی بیاد حلقه رو تا 10 بنویسه یکی تا 100 یکی ...
باید حلقه از یک تا نصف عددی که باید جذر بده باشه ! ( که این یک عدد ثابت و مشخصه)
نکته 3 اینه که چرا اینقدر حاشیه میرید؟ اگه کدی دارید بسم الله ، من سعی می کنم یه جوری مسله رو واسه خودم جا بندازم ;)
نکته 4 : به فوری بودن قضیه توجه خاص داشته باشید
نکته آخر : موفق باشید