سلام
دوستان ممنون میشم کمکم کنید و این مسئله رو راهنماییم کنید
برنامه اي بنويسيد كه عدد مثبت A را خوانده و جذر آنرا از رابطه "نيوتن رافسون" تا زمانيكه قدر مطلق تفاضل دو ريشه متوالي آن عدد، كوچكتر از 0/0001 شود، محاسبه و نتيجه نهائي را چاپ كند.
و باید از رابطه زیر استفاده کنم:
http://s3.picofile.com/file/8363775818/1.png
من کدی پیدا کردم ولی متوجهش نشدم :(
public static float Compute(float Number)
{
// define variable sqrRoot to hold the approximate square root
float sqrRoot = 0;
// define temporary variable temp to hold prior value of iteration
float temp = 0;
// divide variable num by 2 to start the iterative process
// and assign the quotient to temp
temp = Number/2;
// open a while() loop that continues as long as num >= 0.0
while (Number >= 0.0) // <<<< you might reconsider this condition: iteration count?
{
// construct the main iterative statement
sqrRoot = temp - (temp * temp - Number) / (2 * temp);
// open an if block to check if the absolute value of the difference of
// variables temp and sqrRoot is below a small sentinel value such as 0.0001
// if this condition is true then break the loop
float value;
value = Math.abs(temp - sqrRoot);
if (value < .0001)
// return sqrRoot as the answer
return sqrRoot; // <<<<< this is the line you needed to change
// if this condition is not true then assign sqrRoot to temp
else temp = sqrRoot;
} // close the while() loop
return Number; // <<<<< you will never reach this line
}
با سلام
اینطور که پیداس بیشتر سوال تون فهم ریاضی میخوادش تا دانش برنامه نویسی. چیز خاصی نداره.
چی رو می خواید متوجه بشید که متوجه نمیشید؟
یک فرمول دارید، اون رو ایجاد کردید. حالا تنها کافیه در آخر چندتا عدد بزارید و امتحانش کنید.
Number هم که معادل با همون عدد A هستش.
سلام @milad
بله بیشترش مفاهیم ریاضیه تا برنامه نویسی و مشکل منم همینه /:
sqrRoot = temp - (temp * temp - Number) / (2 * temp)
)اولا میخوام بدونم در کل درسته این کده؟ که با ورود عدد ۸ نتیجه ۲.۸۲۸۴۲۷ چاپ میشه
این مثال که کاملا درسته، کافیه با یک ماشین حساب هم کنارش بررسی کنید.
جذر 8 با ماشین حساب دقیقا همین عدد میشه.
sqrRoot = temp - (temp * temp - Number) / (2 * temp);
این بخش، دقیقا همون بخش ریاضیاتی برای این مسئله هستش.
در اینجا داره جذر عدد مورد نظر رو محاسبه میکنه، اما اینکه این فرمول از کجا اومده، با توجه به داده هایی که شما در ابتدای مسئله بیان کردید، من در نیافتم. مشخصا ً یک سری محاسبات از قبل صورت گرفته که این فرمول رو ایجاد کرده ولی برای من ناپیداست.
اما از کلیتش مشخصه که در اینجا داره یک ساختار تکرارشونده ایجاد میشه. که با حرکت حلقه مقدارش عوض میشه.
محاسبه جذر یک عدد روی کاغذ همینجوری ممکن نیستش، باید درک ریاضی داشته باشیم و فرمول های ریاضی رو بشناسیم.
برای فهم ریاضی مطلب فکر کنم بهتره برید سراغ این نشانی:
http://www.cs.utsa.edu/~wagner/CS3343/newton/sqrt.html
برای ریشه سوم فکر کنم اینها کمک تون کنند:
https://planetmath.org/NthRootByNewtonsMethod
https://github.com/jayemko/java-newton-raphson/blob/master/src/com/koceja/CSC143/NewtonRaphson/NewtonRaphson.java
https://androidexample.com/Finding_nth_Root_Of_A_Real_Number_Using_Newton_Raphson/index.php?view=article_discription&aid=131&aaid=151
فرمولی که توی لینک زیر دادی گمراه کننده است .
http://s3.picofile.com/file/8363775818/1.png
اگر کسی ریاضی ندونه عدد 1 رو جمع جبری (Xi) (ایکس اندیس i) میخونه در صورتی که این متغیر بیانگر مقدار ایکس و اندیس (n+1) هست .
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟