2+2=5!!!

JavidFlasher

کاربر فعال
سلام

دوستان کسی میدونه جریان چیه ؟
حتی ضرب طرفین رو قبول میکنه اما تقسیم نه!!

مستقیم روش نمیشه بگه 4=5:green:
نباید هم روش بشه !:دی
PHP:
var a:Number = 4,b:Number = 5,c:Number = 1;
var Y:Boolean;
Y=c==(b-a);//next step ==>*(b-a)
trace(Y);
Y=c*(b-a)==(b-a)*(b-a);
trace(Y);
Y=c*b-c*a==b*b-2*(a*b)+a*a;//next step ==>-a^2 (a*a)
trace(Y);
Y=c*b-c*a-a*a==b*b-2*(a*b)+a*a-a*a;//next step ==>+ab +(a*b)
trace(Y);
Y=c*b-c*a-a*a+a*b==b*b-2*(a*b)+a*a-a*a+a*b;//next step ==>-cb -(c*b)
trace(Y);
Y=c*b-c*a-a*a+a*b-c*b==b*b-2*(a*b)+a*a-a*a+a*b-c*b;
trace(Y);
Y=a*(b-c-a)==b*(b-a-c);
trace(Y);
Y=a*(b-c-a)*(b-c-a)==b*(b-a-c)*(b-c-a);// *(b-c-a)
trace(Y);//!!! Even  True !!! :O
Y=a*(b-c-a)/(b-c-a)==b*(b-a-c)/(b-c-a);//  /(b-c-a)
trace(Y);//false....why ???? :O

نتیجه ش:
HTML:
true
true
true
true
true
true
true
true
 false
 
آخرین ویرایش:

aliamel

کاربر فعال
به نظرت جواب صفر تقسیم بر صفر میشه صفر ؟ کد زیر رو اجرا کن ببین جواب چی می ده :
PHP:
trace(a*(b-c-a)/(b-c-a));
یا اصلا این کد رو اجرا کن:
PHP:
trace((b-c-a)/(b-c-a));
 
آخرین ویرایش:

JavidFlasher

کاربر فعال
بله ممنون از پاسختون،تعریف نشدست

حتی Infinity رو قبول میکنه تساویشونو اما NaNنه!
من فکر میکردم حاصل بینهایته....
برمیگرده به ذات صفر....
چون تعریف نشده ست نمیتونیم در مورد تساویش نظر بدیم(در حد تعریف قانع میکنه!)

PHP:
trace(NaN==NaN);

اما باز قانع شدن سخته!!!چرا NaN=NaN؟؟؟
 
آخرین ویرایش:

aliamel

کاربر فعال
به نظر می رسه وقتی نتیجه محاسبات برابر NaN (مقدار نامشخص ) میشه از ادامه عملیات محاسباتی جلوگیری بعمل می یاد !
 

spryboy

کاربر فعال
اما باز قانع شدن سخته!!!چرا NaN=NaN؟؟؟

سلام دوستان

ببینید، این قضیه فقط مربوط میشه به نوع پیاده سازی EcmaScript ، و در زبانها و استانداردهای مختلف، متفاوته. خیلی نمیشه از دیدگاه ریاضی به اون نگاه کرد.

در EcmaScript به این صورت مطرح شده:
1- هر عملیاتی که باید یک مقدار عددی رو برگردونه اما امکانش نباشه، مقدار اون برابر میشه با NaN ، مثلا:
حاصل تقسیم صفر بر صفر برابر است با NaN
هر عملیات ریاضی که منتج به حاصل عددی نشه برابر میشه با NaN ، مثلا مجذور یک عدد منفی
هر عملیات ریاضی که شامل NaN باشد، مقدار NaN رو برمیگردونه، مثلا NaN+2
تبدیل (کست کردن) ناموفق مقداری از دیتا تایپ دیگری به Number

2- NaN با هیچ مقدار دیگری برابر نیست، از جمله NaN

همان طور که میدونید، NaN اختصار عبارت "Not a Number" است و به معنی "تعریف نشده" و یا "مقدار نامشخص" نیست، و فقط به معنی "عدد نبودن" است.

به خاطر دردسرهایی هم که ممکنه ایجاد کنه، در EcmaScript ، فانکشن گلوبال ()isNaN تعریف شده است تا بتونید روی اون مدیریت داشته باشید.
کد:
trace(0 / 0); // NaN
trace(Math.sqrt(-1)); // NaN
trace(Math.asin(2)); // NaN
trace(NaN * 5); // NaN
trace(NaN + 1); // NaN
trace(Number("abc")); // NaN
trace(NaN == undefined); //false
 trace(NaN == NaN); // false
کد:
var n:Number;
trace(n); // NaN
trace(isNaN(n)); //true
trace(n == NaN); // false!!!
موفق باشید
 
آخرین ویرایش:

JavidFlasher

کاربر فعال
سلام خیلی ممنون از پاسختون

همان طور که میدونید، NaN اختصار عبارت "Not a Number" است و به معنی "تعریف نشده" و یا "مقدار نامشخص" نیست، و فقط به معنی "عدد نبودن" است.

به نکته ی ظریفی اشاره کردین
حالا فهمیدم
NaN=NaNنیست به خاطر این که طرفین ممکنه هر چیز دیگه غیر عدد باشن مثل استرینگ و دیتا تایپ های دیگه...
 
آخرین ویرایش:

جدیدترین ارسال ها

بالا