Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.04.2013, 15:43   #711
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Да, действительно, производительность такая же, но запись короче и нагляднее.

Кстати, странно, я этот Frac тоже мучал, но у меня не получалось. И я, кстати, использовал TDoubleHelper.Frac.

Последний раз редактировалось Sibedir; 15.04.2013 в 15:47.
Sibedir вне форума Ответить с цитированием
Старый 16.04.2013, 22:10   #712
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Принесли Вам пиццу. Вам разрешается сделать 6 разрезов по-прямой. На какое максимальное кол-во кусков Вы можете разрезать пиццу? (Куски могут быть <>)
Poma][a вне форума Ответить с цитированием
Старый 16.04.2013, 22:18   #713
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,323
По умолчанию

Poma][a, 22?
Алго:
разрез - кол-во кусков
1 разрез - 2 куска
2 разрез - 4 куска
3 разрез (пересекает предыдущие два в разных точках) - 7
и тд, т.е. каждый следующий должен пересекать предыдущие в разных точках (а не в пересечении нескольких предыдущих разрезов).


Цитата:
Сообщение от Poma][a Посмотреть сообщение
Верно! А где пруф?
Уже добавил.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 16.04.2013 в 22:22.
BDA вне форума Ответить с цитированием
Старый 16.04.2013, 22:19   #714
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Верно! А где пруф?
Poma][a вне форума Ответить с цитированием
Старый 16.04.2013, 22:27   #715
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Кстати почти баян, одна девица уже просила алгоритм нахождения максимального количества кусков полученных n разрезами или что-то в этом духе. В прошлом году кажись, в разделах для начинающих
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 16.04.2013, 22:35   #716
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Аватар,
Спасибо!, вот и сама тема :тыц (надо будет почитать на досуге )

Цитата:
Уже добавил.
Угу!
Poma][a вне форума Ответить с цитированием
Старый 22.04.2013, 16:34   #717
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

И так задача :
Найти число от 1 до N включительно такое, что в разложении его на простые множители кол-во множителей максимально. Если таких числе несколько, выбрать максимальное из них.
Например, найдем разложение на простые множители чисел от 1 до 7. Числа 2, 3, 5 и 7 простые, в их разложении по 1-му множителю. В разложении числа 1 ноль простых множителей. В разложении чисел 4 = 2 * 2 и 6 = 2 * 3 по 2 простых множителя. Значит ответом задачи для N = 7 будет являться число 6.
Poma][a вне форума Ответить с цитированием
Старый 22.04.2013, 18:51   #718
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
Найти число от 1 до N включительно такое, что в разложении его на простые множители кол-во множителей максимально. Если таких числе несколько, выбрать максимальное из них.
Ответ: K=floor(log2(N)) - количество множителей. D3 = floor(log_3/2(N/2^K)) - степень тройки в целевом числе, D2=K-D3 - степень двойки. Число - 2^D2 * 3^D3.

Последний раз редактировалось Abstraction; 22.04.2013 в 18:55.
Abstraction вне форума Ответить с цитированием
Старый 22.04.2013, 19:04   #719
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

[SPOILER]Мне кажется, что Вы слегка перемудрили. Вы совершенно верно заметили что существует связь между ответом и степенями двойки (и если уж выкладывать все карты на стол, то и тройка имеет своё место в решении). Мне кажется, что Вы неправильно высчитываете кол-во 3-к.. Поэтому не могли бы Вы представить Ваше решение в словесной форме или же переписать всё написанное в посте#729 в Pascale'подном синтаксисе (что опровергнуть либо подтвердить мои догадки) [/SPOILER]
Poma][a вне форума Ответить с цитированием
Старый 22.04.2013, 19:24   #720
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Моё решение и так в словесной форме, как бы. Но пожалуйста:
По очевидным причинам, искомое число имеет вид 2^a * 3^b. Поскольку любой простой множитель больше 4 можно заменить на две двойки, уменьшив число и увеличив количество множителей. Также очевидно, что a+b = K = floor(log2(N)), так как 2^K <= N < 2^(K+1). Искомое число также максимально, то есть при том же количестве множителей его нельзя увеличить: 2^a * 3^b <= N < 2^(a-1) * 3^(b+1). Поделив на 2^K и взяв логарифм по основанию 3/2, имеем: b <= log_3/2(N/2^K) < b+1, что даёт b = floor(log_3/2(N/2^K)) и a = K-b. Разумеется, точное вычисление этого выражения на компьютере может быть затруднено, особенно при больших N - возможна ошибка на единицу.
Abstraction вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
интересные проги kipish Софт 85 18.12.2022 01:03
Текст на картинках SunLight Microsoft Office Word 2 08.08.2007 12:59