Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Разное
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 31.10.2015, 18:53
Аватар для Pilot_Red
Pilot_Red Pilot_Red вне форума
Продвинутый
 
Регистрация: 01.11.2006
Адрес: Карелия
Сообщения: 702
Версия Delphi: D7
Репутация: 11581
По умолчанию немного математики

Доброго времени! Котелок окончательно высох, не могу элементарную задачу решить, в общем есть задача. Стрелка перемещается со скоростью n градусов в секунду, как узнать сколько шагов должна сделать стрелка, чтобы попасть в исходное положение?
Ответить с цитированием
  #2  
Старый 31.10.2015, 19:33
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Если под шагом подразумевается секунда, то 360/n. Или нужно целое число?
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #3  
Старый 31.10.2015, 19:36
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Оборот - 360, шаг - n, 360/n - это и есть искомое кол-во шагов
Ответить с цитированием
  #4  
Старый 31.10.2015, 19:40
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Строго говоря, если нужно целое число - то 360*x/n, где X - произвольное целое число. Таким образом первое, что приходит в голову - брутфорсить X в пределах от 1 до N. Потому что опять же, из этой же формулы следует, что за N полных оборотов оно всяко вернётся на место.
Фактически, это приводит к классическим задачам вычисления НОД/НОК для чисел 360 и N. Зная НОД, нужно поделить 360 на него. Зная НОК, надо поделить этот НОК на N. Разницы мало, ведь одно получается из другого.
Еще можно составить при старте таблицу преобразования приведенным выше методом и получать ответ мгновенно. При этом таблица симметрична относительно n=180 по очевидным причинам.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.

Последний раз редактировалось Bargest, 31.10.2015 в 20:18.
Ответить с цитированием
  #5  
Старый 31.10.2015, 22:31
Аватар для Pilot_Red
Pilot_Red Pilot_Red вне форума
Продвинутый
 
Регистрация: 01.11.2006
Адрес: Карелия
Сообщения: 702
Версия Delphi: D7
Репутация: 11581
По умолчанию

Да, нужно найти целое число, например если шаг равен 80 то чтобы стрелка вернулась в исходное положение нужно сделать 9 шагов
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 08:27.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter