Russian Qt Forum
Ноябрь 22, 2024, 18:01 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 ... 18 19 [20]   Вниз
  Печать  
Автор Тема: Задачки  (Прочитано 199439 раз)
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #285 : Ноябрь 22, 2012, 20:13 »

Всё ухожу.. Как приду, допишу.. Но думаю и так понятно?
Хмм... пока ничего содержательного я не увидел.
Хотя впрочем сачкануть и увильнуть от работы у научных работников в крови. Бросит эдак небрежно "мол, очевидно, элементарно" - и ушьется гулять с собачкой. А пахарь-программист потом все это разгребай  Улыбающийся

Сейчас накатаю код.. моментик.
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #286 : Ноябрь 23, 2012, 00:26 »

Или ещё проще:

Вектор v3 будет всегда лежать внутри острого угла между векторами v1 и v2 если выполняется условие:

sign([v1, v3]_z) == sign([v1, v2]_z) == sign([v3, v2]_z)

где [vi, vj]_z - z - компонента векторного произведения векторов vi и vj, а sign - знак.

Код
C++ (Qt)
template <class T>
struct vector2d
{
   vector2d(const T &_x = 1.0, const T &_y = 1.0)
       : x(_x), y(_y) {}
 
   T x;
   T y;
};
 
template <class T>
inline int sign(T x) { return (x >= 0) ? 1 : -1; }
 
template <class T>
inline bool is_contains(const vector2d<T> &v1, const vector2d<T> &v2, const vector2d<T> &v3) {
 
   int sign_v1_v2 = sign(v1.x*v2.y - v1.y*v2.x);
   int sign_v1_v3 = sign(v1.x*v3.y - v1.y*v3.x);
   int sign_v3_v2 = sign(v3.x*v2.y - v3.y*v2.x);
 
   return ((sign_v1_v2 == sign_v1_v3) && (sign_v1_v2 == sign_v3_v2));
}
 
« Последнее редактирование: Ноябрь 23, 2012, 00:33 от m_ax » Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #287 : Ноябрь 23, 2012, 00:50 »

это называется левым поворотом если не ошибаюсь. например используется в методе Грэхема [построения выпуклой оболочки точек].
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #288 : Ноябрь 23, 2012, 09:05 »

Вектор v3 будет всегда лежать внутри острого угла между векторами v1 и v2 если выполняется условие:
Верно, только не "острого" а "внутреннего"

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

Однако для примера со стрелками часов есть и другое (более простое) решение  Улыбающийся

 
Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #289 : Август 02, 2013, 19:56 »

Задачка:

Попугай, которому 110 лет, спросил старого крокодила: "Сколько тебе лет?" Крокодил, привыкший выражаться сложно и запутанно, ответил: "Мне сейчас в 10 раз больше лет, чем было тебе тогда, когда мне было столько же лет, сколько тебе ceйчас". Сколько лет крокодилу?)
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
_OLEGator_
Гость
« Ответ #290 : Август 02, 2013, 20:17 »

200
Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #291 : Август 02, 2013, 20:27 »

200

Правильно, _OLEGator_ Смеющийся
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
_OLEGator_
Гость
« Ответ #292 : Август 02, 2013, 20:31 »

Задачка для 5 класса?)
Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #293 : Август 02, 2013, 20:32 »

Задачка для 5 класса?)

Да где то так, да..
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #294 : Август 02, 2013, 20:41 »

Задачка для 5 класса?)

Да где то так, да..

Но есть и  посложнее (не 5-ый класс):

Некая община регулирует рождаемость детей следующим своеобразным способом: каждая пара родителей продолжает рожать детей до тех пор, пока не родится сын. Как только это случится, дальнейшее прибавление в семье прекращается. Каково соотношение между мальчиками и девочками в общине, если в обычных условиях, когда рождаемость никак не регулируется, 51% родившихся детей - мальчики?   
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #295 : Август 04, 2013, 06:20 »

Но есть и  посложнее (не 5-ый класс):
А 6-й  Улыбающийся

Пусть есть 100 семей. Тогда пацанов тоже 100. А общее число детей

100 + 100 * 0.49 + 100 * 0.49 * 0.49 + ...

Суммв убывающей геометрической прогрессии S = 100 / (1 - 0.49). Итого пацанов все тот же 51%
Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #296 : Август 04, 2013, 10:10 »

Итого пацанов все тот же 51%

Правильно)
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
deMax
Хакер
*****
Offline Offline

Сообщений: 600



Просмотр профиля
« Ответ #297 : Октябрь 17, 2013, 09:47 »

Есть доска 8х8 - из нее с противоположных углов вырезают две клетки. Есть доминушки размером 1х2. Как ими полностью замостить данную доску?
Никак, каждая доминошка всегда закрывает 2 клетки - черную и белую, а мы удали 2 черных/белых.

Цитировать
Некая община регулирует рождаемость детей следующим своеобразным способом: каждая пара родителей продолжает рожать детей до тех пор, пока не родится сын. Как только это случится, дальнейшее прибавление в семье прекращается. Каково соотношение между мальчиками и девочками в общине, если в обычных условиях, когда рождаемость никак не регулируется, 51% родившихся детей - мальчики? 
51%, так как хотят они дальше рожать или нет, а шансы появления мальчика не изменяются.
« Последнее редактирование: Октябрь 17, 2013, 14:15 от deMax » Записан
Страниц: 1 ... 18 19 [20]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.106 секунд. Запросов: 23.