Loading...
GogoK avatar GogoK 80 Точки

Математика за 1ви клас

Здравейте,

имам главоблъсканица с простите изчисления, малко помощ моля. -1-1-1=1 ?  -1+1+1= -3.. шаш!

int aa = - 1 - 1 - 1;                        Console.WriteLine(aa);                   Out:  -3
int bb = c - c - c;                           Console.WriteLine(bb);                   Out:   1

int a = -5;
int b = 5;
int c = -1;

int sumA = a - b;                           Console.WriteLine(sumA);             Out:  -10
int sumB = b - a;                           Console.WriteLine(sumB);             Out:  10
int sumC = a - a - a - a - a;            Console.WriteLine(sumC);             Out:  15  
int sumD = a + a;                          Console.WriteLine(sumD);             Out: -10
int sumE = c + c + c + c + c;         Console.WriteLine(sumE);              Out:  -5

Защо се получава така че 'a' и 'b' само с разменени позиции си променят резултата(при sumA и sumB), след като се извършва една и съща операция? Да кажем че при другите (C,D,E) може да се хване някаква идея макар че ми е абсурдна, но не разбирам за (A и B) какво се случва.

Който е наясно нека обясни моля да не гадая, че си чупих главата пак с задача заради тези.. Благодаря.

Тагове:
-2
Общи приказки 23/01/2015 04:12:27
oconne avatar oconne 113 Точки
Best Answer

Минуса и плюса могат да бъдат и унарни и бинарни операции.

В случая когато са унарни използваме следните правила:

    а) -(-х)=х, -(+х)=-х което е еквивалентно на -(х)=-х, +(-х)=-х, +(+х)=х.

Както виждаш '-' е обратима -(-х)=х.

    а.1) При това правило трябва да имаш предвид че като унарни опреции те са с по голям приоритет пред останалите.

     (Първо се изчисляват унарните там където се очаква такава интерпретация)

     Т.е    х-(-х) не е равно на -0, а е равно на х*2, или х-(-а) не е равно на -(х-а), а някои твърдят даже (х-а).

  а.2) Освен това '-' е дистрибутивен -(а+х)=-а-х;

  б) В общият случай бинарните операции не са комутативни т.е.  хОа \neаОх (при размяна на местата стойноста на израза се променя). Минуса е некумотативна, а плюса е комутативна опреция:

  б.1) Плюса е кумутативна: а+х=х+а;

  б.2) Минуса е некумотативна х-а \neа-х, доказателство: х-а=-(-х)-а=-(-х+а)=-(а-х), от тук се вижда -(а-х) не може да е равно на а-х (-А\neА при А\ne0), единствно ако а-х=0 или х=0, и а=0 е възможно равенство.

Това е много, много грубо доказателство  и дефиниця на правилата а)-б). Съществуват много по фини и изискани анализи на тези случаи в множеството на реалните числа. Но, пак е нещо като ориентир.

 

2
23/01/2015 12:58:14
GogoK avatar GogoK 80 Точки

Като цяло, след като присвоим отрицателна стойност в даден израз, той си запазва отрицателната стойност, но визуално при решението на задачата по напред, той губи знакът си(визуално) за отрицателна стойност.

int minusNomber = -1;     и вече пресвоил отрицателна стойност, но визуално няма знак "-" за него! И в последствие при мен заблудата беше "plusNomber - minusNomber"

И понеже на това ниво аз поне повече внимавам с синтаксиса на езика, приемам елементарната математика за даденост и започва и заблудата че ако израз няма знак за "-" той не може да е отрицателен макар и да го знаеш че е така. Отговорът ти е пред очите, но не достигаш до него, защото всичко останало ти е като китайски език, и допускаш че грешката ти е в синтаксиса на C#.

Както казах по горе, разбрах къде греша след като пуснах темата, но предполагам че и други може да имат подобен проблем затова и оставих темата, а не я изтрих.


Благодаря за обобщителния отговор!

0
oconne avatar oconne 113 Точки

Да, точно така, трябва да се прави разлика между име на променлива и нейната стойност, както в математическите изрази така и в програмният код. Абсурдно е да кръстим някоя променлива -х, т.е int -x; e неприемливо, дори забранено, за това както казваш ти, променливата крие своята стойност, т.е нейното име е само пълномощник или референция, но не и същност (стойност) .

0
Samuil.Petrow avatar Samuil.Petrow 1550 Точки

Не мога да разбера тролиш ли или си сериозен...

"-1-1-1=1 ?  -1+1+1= -3.. " - това къде го видя?

"Защо се получава така че 'a' и 'b' само с разменени позиции си променят резултата(при sumA и sumB), след като се извършва една и съща операция?" - Е как няма,  нали като умалителя е по-голям от умаляемото - разликата ще бъде отрицателно число и съответно при обратното - положително... Не можеш да прилагаш разместително свойство.

Мисля, че трябва да си починеш и да се наспиш... :)

 

2
23/01/2015 08:14:27
RoYaL avatar RoYaL Trainer 6849 Точки

Когато мислиш, че (5 - 3) == (3 - 5), chance are - 3,30 през нощта е :)

4
knoteva avatar knoteva 1081 Точки

Правилото, че минус плюс минус е равно на плюс? 5 - (-5)=5+5=10.

3
GogoK avatar GogoK 80 Точки

Аз до снощи не можех да влезна в Judge да пробвам системата, и бях останал с впечатление че трябва 1во да стигна до Лаб или до изпит за да имам права за там. Но видях колежка от моето ниво, която е пуснала тема за Piggy Bank. Та видях че има хора на изпита които имат на 1вата задача 0 или малко точки и ми беше чудно как... Вярно е че беше късно и математика за последно съм учил преди повече от 10г. , но се сетих за това което е казала "@knoteva "- (-5)=5" след като пуснах темата. Затова и редактирах поста си ..

 -1-1-1=1 ?  -1+1+1= -3.. шаш!
int aa = - 1 - 1 - 1;                        Console.WriteLine(aa);                   Out:  -3
int bb = c - c - c;                           Console.WriteLine(bb);                   Out:   1

за да събуди интерес малко повече.

Ако мислите че е глупава темата може и да е изтриете, но нито "тролвам" нито "спама". Мисля че тези които са изкарали по малак резултат на последният изпит, може и да са имали подобен проблем с решението. Затова и оставих темата... Ако смятате че е ненужна може и да е изтриете.

Айде със здраве и Благодаря за помощта!

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.