Великое переполнение millis()

sva_khv
Offline
Зарегистрирован: 19.12.2016

ЕвгенийП пишет:

Добрый день!

Правильно ли я понимаю?

Если использовать конструкцию с ВЫЧИТАНИЕМ то при наступлении ВЕЛИКОГО ПЕРЕПОЛНЕНИЯ millis() результатом будет ОГРОМНОЕ число. Но так как тип UNSIGNED LONG оно будет ПОЛОЖИТЕЛЬНОЕ, и по любому  БОЛЬШЕ нашего интервала. Единственное что  с большой вероятностью случиться - это то что интервал  получиться меньше чем мы задали константой на неопределенную величину. Если это не критично (в болшинстве случаев интервал контролируем по принципу не более чем ... ) то и бог с ним. Если же важна точная длительность интервала то применяем дополнительные меры для контроля значения millis() или используем другие алгоритмы.

b707
Онлайн
Зарегистрирован: 26.05.2017

sva_khv пишет:

 

Добрый день!

Правильно ли я понимаю?

Если использовать конструкцию с ВЫЧИТАНИЕМ то при наступлении ВЕЛИКОГО ПЕРЕПОЛНЕНИЯ millis() результатом будет ОГРОМНОЕ число.

Неправильно. Если использовать вычитание, то до перполнения, во время и после - ВСЕГДА будет правильный результат. То есть если вы задали интервал в 300 миллисекунд, то даже если начало интервала попадет до переполнения, а конец после - при вычитании вы получите именно 300 и никак иначе.

Вообще, вместо теоретических умствований - просто напишите тестовую программку в 10 строчек и убедитесь сами.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

b707 пишет:

maxvalin,  ваш "пример" из сообщения #35 по смыслу полностью аналогичен тому тексту Евгения. что вы просите обьяснить.

А код Евгения кажется сложным, потому что он не предназначен быть заготовкой скетчей для новичков. Он написан для того, чтобы наглядно показать разницу между сложением и вычитанием миллис. Поэтому в нем нет комментрариев "вставлять свой код сюда" - это не шаблон для ваших скетчей, это пособие для изучения.

А что касается книжек - их же тыщи. Мне в свое время очень понравился Монк - правда не уверен, что с него стоит начинать. Мне он понравился именно тем, что книжка не начинается с элементарщины, как большинство других.

А еще вот длинные список по IT книжкам на самые разные темы. Можно посмотреть оглавление, почитать выложенные для просмотра главы - чтобы решить стоит ли искать эту книжку целиком или нет:

http://it-ebooks.info/

Только не спрашивайте, где потом эти книги скачать :)  - это сами

 


О! Так вот на чьих прошивках летают Коптеры )))

sadman41
Онлайн
Зарегистрирован: 19.10.2016

Главное - штоб на прошивках АлексаГувера не начали летать...

b707
Онлайн
Зарегистрирован: 26.05.2017

ua6em пишет:

О! Так вот на чьих прошивках летают Коптеры )))

книга по ссылке, ИМХО, как раз менее интересна, чем та. что я советовал выше. Ваша слишком начальная - таких много. Моя начально-продвинутая - это куда интереснее

maxvalin
Offline
Зарегистрирован: 22.02.2016

Другого способа не нашел как отписаться от темы.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

b707 пишет:

ua6em пишет:

О! Так вот на чьих прошивках летают Коптеры )))

книга по ссылке, ИМХО, как раз менее интересна, чем та. что я советовал выше. Ваша слишком начальная - таких много. Моя начально-продвинутая - это куда интереснее

Так вроде как перевод этой книги...

sva_khv
Offline
Зарегистрирован: 19.12.2016

b707 пишет:

sva_khv пишет:

Добрый день!

Правильно ли я понимаю? ...

Неправильно. Если использовать вычитание, то до перполнения, во время и после - ВСЕГДА будет правильный результат. ....

 

Поставил опыты с вычитаением беззнаковых целых в которых уменшаемое МЕНЬШЕ вычитаемого.

Для себя понял откуда берется результат в таком случае. Просто прибавляем (занимаем)  к уменьшаемому с лева еще один разряд который равен 1. Это типа тот разряд в который уходит перепонение при сложении  :-)

И тогда легко понять и заранее посчитать результат. Пример в табличке для целого беззнакового однобайтового чила. При двух и четырех байтовом числе принцип тот же.

Что бы не переживать за переполнение millis() и точно представлять что будет с вычислениямив этот момент -  мне этого достаточно.  :-)

 

 

Logik
Offline
Зарегистрирован: 05.08.2014

sva_khv пишет:

b707 пишет:

sva_khv пишет:

Добрый день!

Правильно ли я понимаю? ...

Неправильно. Если использовать вычитание, то до перполнения, во время и после - ВСЕГДА будет правильный результат. ....

 

Поставил опыты с вычитаением беззнаковых целых ....

 

 

Вот так делать каждому, у кого голоса в голове шепчут "переполнение миллиса"!! Также и тем, у кого кредо "всегда лонг для миллиса".

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Pyotr пишет:

Ну вобщем дурная голова рукам покоя не дает..)

Покажу что получилось. Даже работает...

//кусок кода из wiring.c
#if defined(__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__)
ISR(TIM0_OVF_vect)
#else
ISR(TIMER0_OVF_vect)
#endif
{
/*	// copy these to local variables so they can be stored in registers
	// (volatile variables must be read from memory on every access)
	unsigned long m = timer0_millis;
	unsigned char f = timer0_fract;

	m += MILLIS_INC;
	f += FRACT_INC;
	if (f >= FRACT_MAX) {
		f -= FRACT_MAX;
		m += 1;
	}

	timer0_fract = f;
	timer0_millis = m;
	timer0_overflow_count++;
*/
    //допишем две строки
  TCNT0 = 5;//подводим счетчик.
  timer0_millis++;
}

unsigned long millis()
{
	unsigned long m;
	uint8_t oldSREG = SREG;

	// disable interrupts while we read timer0_millis or we might get an
	// inconsistent value (e.g. in the middle of a write to timer0_millis)
	cli();
	m = timer0_millis;
	SREG = oldSREG;

	return m;
}

unsigned long micros() {
/*	unsigned long m;
	uint8_t oldSREG = SREG, t;
	
	cli();
	m = timer0_overflow_count;
#if defined(TCNT0)
	t = TCNT0;
#elif defined(TCNT0L)
	t = TCNT0L;
#else
	#error TIMER 0 not defined
#endif

#ifdef TIFR0
	if ((TIFR0 & _BV(TOV0)) && (t < 255))
		m++;
#else
	if ((TIFR & _BV(TOV0)) && (t < 255))
		m++;
#endif

	SREG = oldSREG;
	
	return ((m << 8) + t) * (64 / clockCyclesPerMicrosecond());
*/
//новая функция
  unsigned int m;
  uint8_t oldSREG = SREG, t;
  t = TCNT0;//5-255
  cli();
  m = timer0_millis;
  SREG = oldSREG;
  return (((m & 0x3F) * 1000) + 4*(t-5));
}

void delay(unsigned long ms)
{
  /*	uint16_t start = (uint16_t)micros();
  
  	while (ms > 0) {
  		yield();
  		if (((uint16_t)micros() - start) >= 1000) {
  			ms--;
  			start += 1000;
  		}
  	}
  */
  //новая функция
  uint16_t k = 64000;
  uint32_t start = micros();
  uint32_t carrMicros = start;
  while (ms > 0) {
    yield();
    carrMicros = micros();
    if((carrMicros + k - start) % k >= 1000) {
      ms--;
      start = carrMicros;
    }
  }
}

Прерывание по переполнению ТС0 теперь каждые 1000 мкс. Было 1024 мкс. Обработчик стал короче.
millis() без изменения. Не "перескакивает".
micros() переполняется чез 64 мс.

Код показывает возвращаемые значения миллис и микрос

unsigned long a, b;
void setup() {
  {
  byte arr[256];
  for(word i=0; i<256; i++){
    arr[i] = millis();
    while(arr[i] == byte(millis()));//ждём пока "тикнет" millis()
  }
  Serial.begin(9600);
  for(word i=0; i<256; i++)  Serial.println(arr[i]); 
  }
  Serial.println(); 
  delay(5);//чтоб микрос() переполнился
  
  word arr[500];
  a = micros();//возвращает MAX=64000, шаг 4 мкс
  for(word i=0; i<500; i++)  arr[i] = micros();
  b = micros();
  
  for(word i=0; i<500; i++)  Serial.println(arr[i]); 
  Serial.println();
  Serial.println(a);
  Serial.println(b);
  Serial.println(float((b+64000u-a)%64000u)/500.);//длительность вызова микрос()=3.58мкс
}

void loop(){}

 

Уточните, надо править wiring.c ???

Pyotr
Offline
Зарегистрирован: 12.03.2014

ua6em пишет:

Уточните, надо править wiring.c ???

Так вроде в комментариях к коду я пометил, что нужно дописать, а что закомментировать. 
Но, повторюсь, что это только для ардуино 16МГц можно так по простому сделать.

Densl
Offline
Зарегистрирован: 28.11.2018

Что значит переполнение? Разве может регистр переполнится? Мне кажется такого не бывает. Или речь про переполнение long long? В общем ничего не понял...

sadman41
Онлайн
Зарегистрирован: 19.10.2016

Скоро Новый Год, а под Новый Год возможно всё...

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Densl пишет:
Разве может регистр переполнится?
Нет, конечно! Берёте восьмибитовый регистр и пихаете в него любое число, хоть дофигаллиард! Главное утрамбовать как следует - всё поместится!

А те, кто говорят, что памяти иногда не хватает - брешут! Им производители памяти приплачивают!

a5021
Offline
Зарегистрирован: 07.07.2013

Densl пишет:
Разве может регистр переполнится? Мне кажется такого не бывает.

Не могли бы вы рассказать, что вам еще кажется? Есть у меня ощущение, что это может оказаться крайне занимательным.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Pyotr пишет:

ua6em пишет:

Уточните, надо править wiring.c ???

Так вроде в комментариях к коду я пометил, что нужно дописать, а что закомментировать. 
Но, повторюсь, что это только для ардуино 16МГц можно так по простому сделать.

открыл в версии 1.8.5 там код несколько иной...
 

void delay(unsigned long ms)
{
/*	uint32_t start = micros();

	while (ms > 0) {
		yield();
		while ( ms > 0 && (micros() - start) >= 1000) {
			ms--;
			start += 1000;
		}
	}
*/

 

Densl
Offline
Зарегистрирован: 28.11.2018

ЕвгенийП пишет:

Densl пишет:
Разве может регистр переполнится?
Нет, конечно! Берёте восьмибитовый регистр и пихаете в него любое число, хоть дофигаллиард! Главное утрамбовать как следует - всё поместится!

А те, кто говорят, что памяти иногда не хватает - брешут! Им производители памяти приплачивают!


Там чего-то типа нужно больше суток для переполнения для обычной ардуинки миллисами. Но потом он должен сбросится я думаю. Ну ладно, рано мне так глубоко лезть.

b707
Онлайн
Зарегистрирован: 26.05.2017

Densl пишет:
Там чего-то типа нужно больше суток для переполнения

на самом деле почти 2 месяца.

Но как только вы начнете делать автономные устройства - быстро столкнетесь с тем. что это не так и долго

Pyotr
Offline
Зарегистрирован: 12.03.2014

ua6em пишет:

открыл в версии 1.8.5 там код несколько иной...
 

Я в 1.6.5 делал. Версии поновей даже не скачивал. Как я отстал)

kolyn
Offline
Зарегистрирован: 18.01.2019

  Мое мнение - корни проблемы Великого Пареполнения в начальной школе, а именно в числовой прямой, той самой бесконечной палке с 0 посередине, которая преследует нас всю оставшуюся жизнь. Любой из тех, кто пытается программировать что либо, наверняка слышал о  системах координат, отличных от Декартовых. Но когда мы пытаемся оперировать числами у нас перед глазами мимо воли возникает та самая пресловутая палка. И мы даже мысленно не можем ее изогнуть, тем более представить в виде спирали - вера не позволяет. Ведь она ПРЯМАЯ.

  Если бы мне пришлось объяснять 9-летнему ребенку принцип хранения чисел в памяти я бы начал не с арифметики в доп. коде и даже не с 0 и 1, битов и байтов. Да, это фундамент, но моя задача показать фассад здания и растолковать принцип работы его курантов.

   Я бы нарисовал циферблат. Секундный. С 0 наверху 1, 2, 3,... справа и ...57, 58, 59  слева. И сказал бы ему:" Представь, что есть тип беззнаковых целых "секунда". А циферблат - это место хранения этих секунд в компьютере (м. процессоре). И принимать он может только те значения, которые написаны на циферблате. Почему? Это сложно, пока просто прийми это как аксиому. Давай с тобой поставим точечку на 15 секундах. И прибавим еще 30. Давай сначала на бумажке. 15 + 30 = 45. А теперь на циферблате от  точечки 15 отсчитаем 30 и поставим еще одну точечку. На какой она циферке? Правильно, 45, так же как и на бумажечке. А к 45 + 20 на бумажечке = 65, а на циферблате на 5. Упс. Вот это и есть переполнение..."

   Так же объяснил бы и вычитание 15 - 20 = 55 (тип секунда) для  условного компьютера , но на бумажечке = -5, и сравнение - (45+20)<15 (сек)для компьютера, но (45+20 )> 15 для бумажечки (читай бесконечной цифровой палки). Протм к циферблату я бы приладил секундную стрелку от дешевых китайских часов, дрыгающихся раз/сек и сказал бы, что. что примерно так работает и millis() у нашего условного компьютера - мы всегда можем  узнать, на какую цифру указывает стрелочка. Только миллисов этих у нас не 60, а  4294967296 и слева от "0"  стоит число 4294967295.

   И только после этого  попытася бы объяснить, почему правильно сравнивать ЧИСЛО (типа секунда)  от метки до текущего millis() (разность) , а не пытаться поставить метку наперед (сумма), напоровшись на переполнение и некорректное сравнение.

   Ардуина для большинства лишь хобби. И в хобби приходят люди разного возраста, с разным уровнем подготовки (часто 0) Взрослому человеку с его  устоявшимися понятиями втолковать такие вещи труднее, чем ребенку. Поэтому проблема Великого Пареполнения вечна.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

kolyn пишет:

   Я бы нарисовал циферблат. 

Вы не первый. Уже рисовали, в т.ч. и на этом форуме. Кто б ещё читал :(

kolyn пишет:
мысленно не можем ее изогнуть, тем более представить в виде спирали - вера не позволяет. Ведь она ПРЯМАЯ.

Не клевещите на прямые! Прямая - это линия, имеющая перегиб в каждой точке! Именно так в советское время студенты-первокурсники доказывали, что линия партии прямая :)))

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

kolyn пишет:

  Мое мнение - корни проблемы Великого Пареполнения в начальной школе, а именно в числовой прямой, той самой бесконечной палке с 0 посередине, которая преследует нас всю оставшуюся жизнь...

Замечу, что не только этой проблемы, но и многих других.

Например, человеку от рождения присуще логарифмическое восприятие масштаба. Но в школе его принудительно переучивают на линейный. Причем, преуспевают в этом до такой степени, что естественный логарифмический масштаб уже представляется "человеку цивилизованному" чем-то невообразимо сложным.

ratman
Offline
Зарегистрирован: 11.10.2015

andriano пишет:

Замечу, что не только этой проблемы, но и многих других.

Например, человеку от рождения присуще логарифмическое восприятие масштаба. Но в школе его принудительно переучивают на линейный. Причем, преуспевают в этом до такой степени, что естественный логарифмический масштаб уже представляется "человеку цивилизованному" чем-то невообразимо сложным.

А можно пример изначально логарифмического восприятия масштаба? Как-нибудь на "белочках и орешках"?

SLKH
Offline
Зарегистрирован: 17.08.2015

ratman пишет:

andriano пишет:

Замечу, что не только этой проблемы, но и многих других.

Например, человеку от рождения присуще логарифмическое восприятие масштаба. Но в школе его принудительно переучивают на линейный. Причем, преуспевают в этом до такой степени, что естественный логарифмический масштаб уже представляется "человеку цивилизованному" чем-то невообразимо сложным.

А можно пример изначально логарифмического восприятия масштаба? Как-нибудь на "белочках и орешках"?

Например, психологическое восприятие цены первой бутылки водки и последующих.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Как профессионал, скажу, если не хватило одной, пофиг, скока стоит вторая... 

Green
Offline
Зарегистрирован: 01.10.2015

А ещё есть выражение "две много, а три мало". Обратный логарифм получается.)

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Green пишет:

А ещё есть выражение "две много, а три мало". Обратный логарифм получается.)

Это и есть великое переполнение или "норма", которую все знают и все равно перебирают.

ВН
Онлайн
Зарегистрирован: 25.02.2016

ratman пишет:
А можно пример изначально логарифмического восприятия масштаба? Как-нибудь на "белочках и орешках"?

зрение, слух

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

Green
Offline
Зарегистрирован: 01.10.2015

Помнится старинный анекдот, когда профессор спрашивает у студентов мединститута "какая часть тела при возбуждении увеличивается в 10 раз". И это не то что вы подумали.)

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Этта зрачок, я знаю :-)

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

А то, что вы подумали, всего в 2,5 раза. 

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

ВН пишет:

ratman пишет:
А можно пример изначально логарифмического восприятия масштаба? Как-нибудь на "белочках и орешках"?

зрение, слух

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

И будете не правы. Там квадратичная зависимость. Естественна для человека это линейность, квадратичность и кубичность. Все это есть в природе и известно с древности. А степени и логарифмичность это искусственные математические понятия позворяющие человеку необъятный мир.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

ratman пишет:

А можно пример изначально логарифмического восприятия масштаба? Как-нибудь на "белочках и орешках"?

1. Кучку из трех орешков Вы легко отличите от кучки из двух орешков. А вот кучку из 100 орешков - вряд ли столь легко отличите от кучки в 99 орешков.

2. Ряд кучек 2-4-8-16-32-64 на газ воспринимается более равномерно возрастающей, чем ряд 2-4-6-8-10. В последнем случае "рост" визуально замедляется.

3. Если у Вас о спине бегают две белки, то Вы почувствуете, когда их станет, скажем, 6. Но если белок изначально было 20, то добавление еще 4 Вы вряд ли почувствуете.

4. Ну а в звуке - даже сомнений не вызывает: и дБ и октава (полутон) - единицы логарифмические. Правда, на слух к линейному масштабу не переучивают, поэтому в естественности логарифимческого никто и не сомневается.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

qwone пишет:

И будете не правы. Там квадратичная зависимость. Естественна для человека это линейность, квадратичность и кубичность. Все это есть в природе и известно с древности. А степени и логарифмичность это искусственные математические понятия позворяющие человеку необъятный мир.

Вы здесь 3 раза высказали ошибочные утверждения.

sadman41
Онлайн
Зарегистрирован: 19.10.2016

andriano пишет:

qwone пишет:

 Естественна для человека это линейность, квадратичность и кубичность.

Вы здесь 3 раза высказали ошибочные утверждения.

Пикассо с Малевичем могли бы с Вами не согласиться. Насчет Эвклида не уверен, правда.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Конечно могли БЫ, но ведь не сделали этого! )))

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

andriano пишет:

ratman пишет:

А можно пример изначально логарифмического восприятия масштаба? Как-нибудь на "белочках и орешках"?

1. Кучку из трех орешков Вы легко отличите от кучки из двух орешков. А вот кучку из 100 орешков - вряд ли столь легко отличите от кучки в 99 орешков.

2. Ряд кучек 2-4-8-16-32-64 на газ воспринимается более равномерно возрастающей, чем ряд 2-4-6-8-10. В последнем случае "рост" визуально замедляется.

3. Если у Вас о спине бегают две белки, то Вы почувствуете, когда их станет, скажем, 6. Но если белок изначально было 20, то добавление еще 4 Вы вряд ли почувствуете.

4. Ну а в звуке - даже сомнений не вызывает: и дБ и октава (полутон) - единицы логарифмические. Правда, на слух к линейному масштабу не переучивают, поэтому в естественности логарифимческого никто и не сомневается.


Сережа! Видит Б..г, мы часто спорим, но тут я неистово плюсую!!!!! +100500!!!!!

sadman41
Онлайн
Зарегистрирован: 19.10.2016

andriano пишет:

Конечно могли БЫ, но ведь не сделали этого! )))

Учитывая систематически подтверждаемые доказательства нелинейности сущности ряда величин, подтверждаемые экспериментами с водкой, я бы не стал так торопиться в выводах...

К слову - некоторые личности, как мне кажется, вовсе имеют бинарную систему восприятия. Например, это видно из системы их исчисления: них... и дох... ("ничтожно мало" и "достаточно много").

maxvalin
Offline
Зарегистрирован: 22.02.2016

Отключите от рассылок..

sva_khv
Offline
Зарегистрирован: 19.12.2016

 

kolyn пишет:
Мое мнение - корни проблемы Великого Пареполнения в начальной школе, а именно в числовой прямой, той самой бесконечной палке с 0 посередине, которая преследует нас всю оставшуюся жизнь. Любой из тех, кто пытается программировать что либо, наверняка слышал о  системах координат, отличных от Декартовых. Но когда мы пытаемся оперировать числами у нас перед глазами мимо воли возникает та самая пресловутая палка. И мы даже мысленно не можем ее изогнуть, тем более представить в виде спирали - вера не позволяет. Ведь она ПРЯМАЯ.

Позвольте сделать Вам замечание (только ради срача, а не для пользы дела)

Вот вы наезжаете на ПРЯМУЮ, а сами в примере для часов используете ОТРЕЗОК.

К тому что вы его изгибаете привращая в кривую и замыкаете в круг - притензий нет. :-) хороший пример.

Logik
Offline
Зарегистрирован: 05.08.2014

ВН пишет:

ratman пишет:
А можно пример изначально логарифмического восприятия масштаба? Как-нибудь на "белочках и орешках"?

зрение, слух

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

Зрение тож логарифмично. Почитайте про видимые звездные величины. Изменение линейно, на 1 величину, глазом при измерении приборами оказалось логарифмическим. И ДД глаза по свету давно превзойден телескопами. Фотоаппараты уступают глазу конечно по ДД, отсюда и ползут такие мысли. Но бытовая мылница (сорри, Ваш суперпрофиаппарат;) далеко не предел.

kolyn
Offline
Зарегистрирован: 18.01.2019

sva_khv пишет:

Позвольте сделать Вам замечание (только ради срача, а не для пользы дела)

Вот вы наезжаете на ПРЯМУЮ, а сами в примере для часов используете ОТРЕЗОК.

Кривая прямая

  Прошу прощения за рисунок "от ноги". Красным - то, как хранится безнаковый целый тип (секунда) в нашем  условном компьютере. Если быть совсем точным, на рисунке должна быть не окружность, а множество из 60 точек. Синим - числовая СПИРАЛЬ. Проекция синего на красное - то, что будет храниться в памяти а(сек)=-45==15==75. И если мы вдруг запишем в коде а(сек) = 75.4;  то Великое Нечто обязательно пошлет нас ... разбираться со своими ошибками. Это Нечто пытается сделать проекцию синего на красное, но там нет нужной точки, там пустота.

  Любой целочисленный тип можно представить в виде такой модели, нужно лишь правильно расставить точки на красной окружности. И тогда задачи из первого поста этой темы легко решить в уме.

sva_khv
Offline
Зарегистрирован: 19.12.2016

kolyn пишет:
Это Нечто пытается сделать проекцию синего на красное, но там нет нужной точки, там пустота

Круто!  +1  

Вот за что не любил вышку в инстите -всякие там комплексные числа, операции  с матрицами и т.д. - все это вычислять научился и даже экзамены сдавал на 4-5. Но вот то что этого в реале не существует - меня очень сильно напрягало и не давало понять их суть. И никакие аналогии не помогали.

То ли дело програмирование - 0,1, разрядность - все четко детерминивано, все можно потрогать - красота!

Даже великое переполнение милис можно потрогать руками. :-)

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

sva_khv пишет:
комплексные числа, операции  с матрицами и т.д. ...  этого в реале не существует
А что, натуральные (или какие-то ещё) числа существуют в реале?

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

ЕвгенийП пишет:
А что, натуральные (или какие-то ещё) числа существуют в реале?

А пин Вы вводите что комплексными или матрицей.  Четыре натуральных числа :)))

ПС: Извините что немного не полно написал. ПИН у Банковской карточки . Регуляно требуют при расплате карточкой. Вот где очень сильно надо знать !! цифры  и не путать с буквами.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Да, пин то можно как угодно обозначать. Вопрос был не об обозначении пина.

SLKH
Offline
Зарегистрирован: 17.08.2015

sva_khv пишет:

kolyn пишет:
Это Нечто пытается сделать проекцию синего на красное, но там нет нужной точки, там пустота

Круто!  +1  

Вот за что не любил вышку в инстите -всякие там комплексные числа, операции  с матрицами и т.д. - все это вычислять научился и даже экзамены сдавал на 4-5. Но вот то что этого в реале не существует - меня очень сильно напрягало и не давало понять их суть. И никакие аналогии не помогали.

Всяко бывает. Мне вот когда-то пришлось применять в расчете гиперболические функции; до того они как-то не представлялись мне реальными.

sva_khv
Offline
Зарегистрирован: 19.12.2016

ЕвгенийП пишет:

sva_khv пишет:
комплексные числа, операции  с матрицами и т.д. ...  этого в реале не существует
А что, натуральные (или какие-то ещё) числа существуют в реале?

Сложил в кучку ардуинки - вот тебе и натуральное число. Сложил в кучку сгоревшие ардуинки (или другу ЦЕЛЫЕ :-) отдал)-  отрицательное целое число. Дробь - когда сломал ардуинку пополам (или в другой пропорции). А комплексное число - ?

/ хочу ардуинку но еще не купил, купила на али но посылка не пришла  :-)  /

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

sva_khv пишет:
Сложил в кучку ардуинки - вот тебе и натуральное число. Сложил в кучку сгоревшие ардуинки (или другу ЦЕЛЫЕ :-) отдал)-  отрицательное целое число. Дробь - когда сломал ардуинку пополам (или в другой пропорции). А комплексное число - ?

/ хочу ардуинку но еще не купил, купила на али но посылка не пришла  :-)  /

А здесь еще изящнее. Вот если бы Вы были сыном американского миллиардера, то у вас этих ардуинок было дофига. Или если бы нерельно разбагатели. А так и багатство у вас мнимое, и ардуинки мнимые. Так что эти комплесные числа нам с зомбоящеков льют потоком. А за эти действия платят реальные деньги. Но Вы же математику не знаете. Так что и комплексных чисел просто не видете в жизни. А раз не видете , то их нет для вас. 

sva_khv
Offline
Зарегистрирован: 19.12.2016

qwone пишет:
Так что эти комплесные числа нам с зомбоящеков льют потоком.

+100500

- Что там сегодня по телевизору?

- Комплексные числа!

:-))))