Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.03.26;
Скачать: [xml.tar.bz2];

Вниз

Пятничные задачки, в основном простенькие   Найти похожие ветки 

 
MBo ©   (2006-03-03 08:19) [0]

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

2.  В числе 45579 каждая последующая цифра не меньше предыдущей.
Сколько подобных натуральных чисел в диапазоне до миллиона?

3. Из набора {1,2,3,4,5} выбираются 4 цифры, из них составляется
четырехзначное число. Найти сумму всех возможных перестановок.

4. Дорожку длиной 3 и шириной 1 можно замостить плитками единичной
ширины и целочисленной длины 4-мя способами: (1 1 1), (1 2), (2 1), (3)
Сколько способов укладки существует для дорожки длиной N?

5. В правильном пятиугольнике проведены все диагонали, так что внутри образуется
звезда. Какую долю площади пятиугольника занимает звезда?

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

7. Решить криптарифм
EVE
---  = 0,TALKTALKTALK(TALK)...
DID
Дробь несократима, каждой цифре соответствует одна буква, решение единственно.

8. На сковородку помещается 2 котлеты. Котлета обжаривается с одной стороны 10 минут.
За какое минимальное время можно пожарить 3 котлеты?

9. В аптеку доставили 10 флаконов по 1000 таблеток известного веса в каждом.
Через некоторое время пришло сообщение, что в некоторых флаконах таблетки на 10 мг
тяжелее, что превышает допустимую дозу. Возможно ли за 1 взвешивание
на аптекарских весах узнать, какие флаконы бракованные?

10. Три солдата подвели трёх бандитов к переправе.
На переправе лодка, вмещающая не более двух человек.
Как им всем переправиться, если:
- грести может любой
- одних бандитов оставлять можно и в лодке и на берегу (не убегут)
- никогда ни на одном берегу (включая тех кто в лодке у берега) не должно быть бандитов больше, чем солдат
Сколько раз лодка переплывёт реку?

11. В урне лежит 1 шар. С вероятноcтью 1/2 он белый.
Я положил туда же ещё один шар - точно белый.
Затем снова сунул руку и достал один шар, он - белый.
Какова вероятность, что оставшийся в урне шар белый?

12. В 5-этажной хрущевке живет шофер A. В том же доме живут и родные братья
шофера А - все шоферы, с именами B, C, D.
У шофера А небольшая двухкомнатная квартира на втором этаже,
в которой всего пара дверей;
У шофера B на первом этаже комнат вдвое больше, а дверей - три;
У шофера C на третьем этаже квартирка трехкомнатная, зато дверей целых шесть,
а у братьев шофера D, живущего на верхнем этаже,
суммарное число окон равно суммарному числу дверей.
А теперь вопрос - на каком этаже живет теща водилы A?

13. Для натуральных чисел определена последовательность:
Если N четно, то следующее число N/2
Если N нечетно, то след. член последовательности  3N + 1
Например, начав с 13, получаем такой ряд:
13 > 40 > 20 > 10 > 5 > 16 > 8 > 4 > 2 > 1
Написать  программу, выясняющую, для какого начального числа
в пределах миллиона генерируется самая длинная последовательность, заканчивающаяся единицей.


 
TUser ©   (2006-03-03 08:33) [1]

2. 90. 0 - не натуральное.


 
TUser ©   (2006-03-03 08:34) [2]

56, извините


 
КаПиБаРа ©   (2006-03-03 08:39) [3]

10/ 11 раз


 
MBo ©   (2006-03-03 08:39) [4]

>TUser ©   (03.03.06 08:34) [2]
>56, извините

Возможно, я плохо сформулировал условие 2.
Попробую так:
Найти количество чисел, не превышающих 1000000, каждая последующая десятичная цифра в которых не меньше предыдущей. Например, 323 - не подходит, а 333, 334  - подходят


 
КаПиБаРа ©   (2006-03-03 08:42) [5]

11. 0,75


 
КаПиБаРа ©   (2006-03-03 08:43) [6]

8. 20 минут


 
Bless ©   (2006-03-03 09:15) [7]

8. 30 мин


 
КаПиБаРа ©   (2006-03-03 09:18) [8]

Bless ©   (03.03.06 9:15) [7]
Точно


 
Bless ©   (2006-03-03 09:32) [9]

2. 499996


 
Bless ©   (2006-03-03 09:33) [10]

2. 499995


 
Alarm ©   (2006-03-03 10:41) [11]

>КаПиБаРа ©   (03.03.06 09:18) [8]
Bless ©   (03.03.06 9:15) [7]
Точно


КаПиБаРа ©   (03.03.06 08:43) [6]
8. 20 минут


ВЕРНО!!!


 
Alarm ©   (2006-03-03 10:42) [12]

:))


 
Progger   (2006-03-03 11:06) [13]

>Bless ©   (03.03.06 09:15) [7]
>8. 30 мин

>КаПиБаРа ©   (03.03.06 09:18) [8]
>Bless ©   (03.03.06 9:15) [7]
>Точно


Как ?? Одну недожареную есть?


 
Bless ©   (2006-03-03 11:40) [14]


> Как ?? Одну недожареную есть?


Ты их неправильно жаришь :)


 
Marser ©   (2006-03-03 11:44) [15]

> 1. Вася Пупкин оставил на столе три отпечатка донышка стакана,
> причем
> каждая окружность проходит через центры двух других. Петя
> Канарейкин считает,
> что площадь общей части трех кругов (этакий скругленный
> треугольник)
> составляет четверть площади круга, а Вася считает, что она
> больше четверти
> круга. Кто из них прав?

Меньше четверти.


 
Marser ©   (2006-03-03 11:44) [16]

> [15] Marser ©   (03.03.06 11:44)

Решение отзывается :-)


 
Progger   (2006-03-03 11:46) [17]


> Ты их неправильно жаришь :)

Влязят только две. Значит одна стр - 10мин + 2я стр. - 10 мин. + 20 мин - обе стороны невлезшей, третьей котлеты.
Неполучается 30 минут. Недожареное есть - глисты заведутся.


 
Bless ©   (2006-03-03 11:52) [18]


>  Недожареное есть - глисты заведутся.


Если так жарить обязательно заведутся. :)
Даю подсказку. У тебя получается 40 мин потому что сковороду используешь неоптимально: последние 20 минут ты пользуешь только половину "сковородной мощности".


 
Bless ©   (2006-03-03 11:53) [19]


> Marser ©   (03.03.06 11:44) [16]
>
> > [15] Marser ©   (03.03.06 11:44)
>
> Решение отзывается :-)


Кстати, Bless[9] и Bless[10] тоже отзываются.


 
Yar_Guest   (2006-03-03 12:05) [20]


> Progger   (03.03.06 11:46) [17]

типичная детская задача про котлеты. (точнее в 6-м классе решали)
даже в Юном Технике в каком-то фантастическом рассказе обыгрывалась.


 
troits ©   (2006-03-03 12:18) [21]

>Marser ©   (03.03.06 11:44) [15]
У меня тоже меньше четверти вышло.

S = (pi - sqrt(3))/2*R^2


 
Progger   (2006-03-03 12:26) [22]


> последние 20 минут ты пользуешь только половину "сковородной
> мощности".

Ну это понятно, котлета одна. А ты как используешь вторую половину сковородки?


 
Bless ©   (2006-03-03 12:35) [23]

Обозначим котлеты к1, к2, к3.
1) ложим на сковородку к1,к2
прошло 10 мин. Состояние котлет: к1, к2 поджарены с одной стороны, к3 - сырая
2) переворачивам к1, к2 - в сторонку, к3 - на сковородку.
прошло 10 мин. к1 - готова, к2 - с одной стороны, к3 - с одной стороны.
3) ложим к2, к3 недожаренными сторонами вниз.
прошло 10 мин. Все котлеты готовы.


 
Lenok   (2006-03-03 12:44) [24]

9. Можно.
Нужно всять из первого флакона 1 таблетку, из 2 - 2 и т.д.
Взвесить все вместе. По дельте будет понятно


 
Progger   (2006-03-03 12:45) [25]


> Все котлеты готовы.

Видимо я редко котлеты жарю. Я уж грешным делом подумал что ты их резать будешь.


 
MBo ©   (2006-03-03 12:59) [26]

>КаПиБаРа ©   (03.03.06 08:39) [3]
>10.   11 раз

Верно. А как так быстро нашел способ?

>Bless ©  
>8. 30 мин

Верно

>Marser ©   (03.03.06 11:44) [15]
>troits ©   (03.03.06 12:18) [21]

1. Да, меньше четверти. Отмечу, что это можно показать без расчета, красивым (в буквальном смысле) геометрическим построением

>Lenok   (03.03.06 12:44) [24]
>9.
Стоит чуть поподробнее расписать.
Например, что будет, если вес превышен на 30 мг - это первый и второй бракованные, или только третий?

Остальное пока неверно.


 
Lenok   (2006-03-03 13:53) [27]

9.
согласна :)
тогда следущий вариант
1фл-0 табл
2-1
3-2
4-4
5-8
10-512
т.е. используем 2 в степени (№флакона-2)
тогда неоднозначных ситуаций не будет
1бракован.-0г
2-10
3-20


 
MBo ©   (2006-03-03 13:56) [28]

>Lenok   (03.03.06 13:53) [27]
нет, с первого флакона нужно брать таблетки, поскольку нам неизвестно, сколько может быть бракованных флаконов и есть ли они вообще.
Собственно говоря, решение у тебя уже почти готово


 
Lenok   (2006-03-03 13:57) [29]

10.
учни, плиз
1 бандит оставлен на берегу. - не является ли это нарушением условия
"- никогда ни на одном берегу (включая тех кто в лодке у берега) не должно быть бандитов больше, чем солдат"
1>0


 
MBo ©   (2006-03-03 13:59) [30]

>1 бандит оставлен на берегу. - не является ли это нарушением условия
Нет, не является. Убежать он не может, а убивать некого.


 
SergP.   (2006-03-03 14:01) [31]


> 1. Да, меньше четверти. Отмечу, что это можно показать без
> расчета, красивым (в буквальном смысле) геометрическим построением


Блин... Я написал как, но не заполнил имя. Поэтому сообщение пропало.
Теперь напишу вкратце. Если сделать отну сторону "впуклой" то площадь треугольника будет ST=S/6

если оставшиеся 2 стороны тоже сделать впуклыми, то площадь треугольника уменьшится на Sp, но треугольник еще будет иметь некоторую площадь. т.е.  SP<ST
Значит площадь нужного треугольника SX=ST+SP/2, т.е.
SX<S/6+S/12
SX<S/4


 
Bless ©   (2006-03-03 14:07) [32]

2. 450018


 
MBo ©   (2006-03-03 14:11) [33]

Решение 1. без расчетов красивым построением из Гарднера:
Продолжим заполнение плоскости окружностями во все стороны. Получается, что круг составлен из 6 вогнутых треугольников и 12 "бананов" (линз). Четверть круга - полтора вогнутых треугольника и 3 банана. А искомый выпуклый тр-к состоит из одного вогнутого и трех бананов, так что его площадь меньше четверти круга на половинку вогнутого.


 
КаПиБаРа ©   (2006-03-03 14:12) [34]

MBo ©   (03.03.06 12:59) [26]
Верно. А как так быстро нашел способ?

На бумажке нарисовал, а потом посчитал количество стрелочек.


 
MBo ©   (2006-03-03 14:17) [35]

>Bless ©   (03.03.06 14:07) [32]
>2. 450018

Что-то у тебя все слишком много получается.
В пределах сотни таких чисел 54, в пределах тысячи - 219, т.е. доля уменьшается.


 
Lenok   (2006-03-03 14:29) [36]

10.
1)2b ->
2)1b <-
3)2b ->
4)1b <-
5)2c ->
6)1c1b <-
7)2c ->
8)1b <-
9)2b ->
10)1c <-
11)1c1b ->


 
SergP.   (2006-03-03 14:29) [37]


> "- никогда ни на одном берегу (включая тех кто в лодке у
> берега) не должно быть бандитов больше, чем солдат"


А разве такое возможно если тех и других по 3 человека, а в лодку только 2 влазит?


 
Lenok   (2006-03-03 14:31) [38]

SergP.   (03.03.06 14:29) [37]
проверь :) Lenok   (03.03.06 14:29) [36]
получается


 
SergP.   (2006-03-03 14:33) [39]


> SergP.   (03.03.06 14:29) [37]


> Lenok   (03.03.06 14:29) [36]


Блин. Понял...


 
Bless ©   (2006-03-03 14:48) [40]


> MBo ©   (03.03.06 14:17) [35]
> Что-то у тебя все слишком много получается.


Угу, уже нашел прокол в рассуждениях.


 
Bless ©   (2006-03-03 15:35) [41]


> MBo ©   (03.03.06 14:17) [35]
>
> >Bless ©   (03.03.06 14:07) [32]
> >2. 450018
>
> Что-то у тебя все слишком много получается.
> В пределах сотни таких чисел 54,


т.е. числа 0...9 тоже удовлетворяют условию?


 
Bless ©   (2006-03-03 15:40) [42]


> т.е. числа 0...9 тоже удовлетворяют условию?


с 1 по 9, конечно же.


 
MBo ©   (2006-03-03 15:57) [43]

>Bless
>с 1 по 9, конечно же.
Да.


 
oldman ©   (2006-03-03 16:01) [44]

1. А если центры окружностей расположены на одной прямой, то площадь "скругленного треугольника" вообще равна 0...
(т.е. он отсутствует. Общая часть - точка. Центр средней окружности)
:(


 
MBo ©   (2006-03-03 16:25) [45]

Хочу заметить, что 12 задача, за которую никто не брался -  не бред шизофреника, как это может показаться
;)

>oldman ©   (03.03.06 16:01) [44]
центры каждой из трех окружностей лежат на двух других, т.е. условие вполне однозначно


 
Yar_Guest   (2006-03-03 16:37) [46]


> MBo ©   (03.03.06 16:25) [45]
> Хочу заметить, что 12 задача, за которую никто не брался
> -  не бред шизофреника, как это может показаться
> ;)

свободен 4-й этаж, но про тещу никак не пойму


 
default ©   (2006-03-03 16:42) [47]

11. 1/2


 
MBo ©   (2006-03-03 16:52) [48]

>но про тещу никак не пойму
Там еще много информации дано, и не вся она лишняя ;)

>default ©   (03.03.06 16:42) [47]
>11. 1/2

Неверно, как и ранее данный ответ 3/4.


 
default ©   (2006-03-03 16:52) [49]

3. 399960


 
default ©   (2006-03-03 16:53) [50]

MBo ©   (03.03.06 16:52) [48]
сейчас поясню тогда(может свою ошибку увижу если она есть)


 
Yar_Guest   (2006-03-03 16:54) [51]

11. 0,25 ?


 
Bless ©   (2006-03-03 16:55) [52]

2. 3003+1287+495+165+45+9 = 5004
Жду элегантного решения :)


 
MU ©   (2006-03-03 16:59) [53]


> MBo ©   (03.03.06 16:52) [48]
> >но про тещу никак не пойму
> Там еще много информации дано, и не вся она лишняя ;)

небольшое уточнение условия
 
правильно ли я понимаю

"а у братьев шофера D, живущего на верхнем этаже,
суммарное число окон равно суммарному числу дверей. "
A дверей + B дверей + C дверей = А окон + B окон + C окон = 12?


 
MU ©   (2006-03-03 17:00) [54]

> MBo ©   (03.03.06 16:52) [48]

Извините, ошибся...
A дверей + B дверей + C дверей = А окон + B окон + C окон = 11?


 
MBo ©   (2006-03-03 17:02) [55]

>default ©   (03.03.06 16:52) [49]
>3. 399960

верно.

>Bless ©   (03.03.06 16:55) [52]
>2. 3003+1287+495+165+45+9 = 5004
>Жду элегантного решения :)

Верно (C(15,6)-1)


 
Bless ©   (2006-03-03 17:03) [56]

А в чем прикол 13 задачи? Алгоритм тривиальный вроде.


 
MBo ©   (2006-03-03 17:06) [57]

>MU
Таких глобальных уточнений - не будет ;)
Мелкие - возможны.


 
MU ©   (2006-03-03 17:08) [58]

> MBo ©   (03.03.06 17:06) [57]
  Не ожидал задеть что-то глобальное, сорри :)


 
Lenok   (2006-03-03 17:10) [59]

11. 3/8


 
MBo ©   (2006-03-03 17:13) [60]

>Bless ©   (03.03.06 17:03) [56]
>А в чем прикол 13 задачи? Алгоритм тривиальный вроде.
В ней нет приколов. Просто смастерить эффективный алгоритм, если интересно, конечно.


 
MBo ©   (2006-03-03 17:15) [61]

>Lenok   (03.03.06 17:10) [59]
>11. 3/8

Нет.

Про таблетки дорешаешь?


 
Bless ©   (2006-03-03 17:19) [62]


> MBo ©   (03.03.06 17:02) [55]

> >Bless ©   (03.03.06 16:55) [52]
> >2. 3003+1287+495+165+45+9 = 5004
> >Жду элегантного решения :)
>
> Верно (C(15,6)-1)


Куда уж элегантнее :)
А как пришли к такой формуле?


 
Bless ©   (2006-03-03 17:24) [63]

>Просто смастерить эффективный алгоритм, если интересно, конечно.

Про эффективность в условии ничего не было. :)
Ну ладно. А на что считаем критерием оптимальности?
В смысле, можно массив на 1 000 000 завести?


 
data ©   (2006-03-03 17:26) [64]

11. 6/7 ?


 
Lenok   (2006-03-03 17:28) [65]

11. а на вид такая простая задачка :)

думала ... Если взвешивать и таблетки из последнего флакона (любое кол-во) получиться неодназначная ситуация
чего-то недопонимаю, наверно, подскажешь?


 
default ©   (2006-03-03 17:29) [66]

data ©   (03.03.06 17:26) [64]
нет
я понял в чём дело скоро напишу


 
Yar_Guest   (2006-03-03 17:30) [67]

9. про талетки просто
из i-го флаконо береме 2^(i-1) таблеток и взвешиваем

это естественно, что таблетки "однородно" бракованные по флакону :)


 
data ©   (2006-03-03 17:30) [68]


> default ©   (03.03.06 17:29) [66]


давай)))


 
default ©   (2006-03-03 17:33) [69]

11. 2/3 ёшкин кот!!!


 
default ©   (2006-03-03 17:34) [70]


procedure TForm1.Button1Click(Sender: TObject);
var
 i, c, K: Cardinal;
begin
 Randomize;
 c := 0;
 K := 0;
 for i := 0 to N do
   case Random(4) of
     0..1: begin  // взят положенный белый шар
             Inc(K);
             if Random(2) = 0 then Inc(c);
           end;
     2:   begin // исходный шар взят и оказался белым
            Inc(K);
            Inc(c);
          end;
   end;
 Caption := FloatToStr(c/K);
end;

святое моделирование даст экспериментальное убеждение
логику можно брать как слепок с кода модели


 
Lenok   (2006-03-03 17:36) [71]

:)
действительно укладываемся :)
2^0
..

2^9

стормозила :(


 
MBo ©   (2006-03-03 17:37) [72]

>data ©   (03.03.06 17:26) [64]
>1. 6/7 ?

нет

>Bless ©   (03.03.06 17:24) [63]
>Ну ладно. А на что считаем критерием оптимальности?
Трудно сказать. Наверно, скорость при разумном использовании памяти. Прямая реализация у меня на A64 3500+ считает около 4 секунд


 
oldman ©   (2006-03-03 17:37) [73]

Если 4 брата - водилы, то теща, имхо, давно уже нигде не живет :)))
Вернее, находится на кладбище. Сектор 26а. Могила 574. Спросить Марью Петровну...


 
Lenok   (2006-03-03 17:41) [74]


> default ©   (03.03.06 17:33) [69]

точно!


 
MBo ©   (2006-03-03 17:43) [75]

> default ©   (03.03.06 17:33) [69]
> 11. 2/3 ёшкин кот!!!

Вот именно! ;)))

9. Про таблетки.
Как уже говорили, берем из каждого флакона в геом. прогрессии 1,2, ...512
перевес (деленный на 10 мг) записываем в виде двоичного числа, и единичные биты указывают, какие флаконы плохие.


 
mrcat ©   (2006-03-03 18:44) [76]

7. EVE = 212; DID = 606;


 
default ©   (2006-03-03 19:00) [77]

4. 2^(N-1)


 
default ©   (2006-03-03 19:28) [78]

13. массив бит, индекс - натуральное число
    перебираем все натуральные числа(до миллиона)
    для, примера, пусть начнём с 13
"13 > 40 > 20 > 10 > 5 > 16 > 8 > 4 > 2 > 1"

получив 40 соображаем что длина цикла для сорока заведомо меньше чем длина цикла для 13 и выставляем для 40 нулевой бит говорящий что это число обрабатывать на длину цикла не надо и тд
держим в переменной какой-то максимальную текущую длину....
вообщем что-то совсем хилая задача...


 
MBo ©   (2006-03-03 21:22) [79]

>mrcat ©   (03.03.06 18:44) [76]
>7. EVE = 212; DID = 606;
ОК, только это второе решение, которое появляется, если снять условие несократимости дроби

>default ©   (03.03.06 19:00) [77]
>4. 2^(N-1)

Да. Задача эквивалентна расстановке скобок в сумме N единиц.


 
VICTOR_   (2006-03-04 01:34) [80]

12.
A+B+C=11
2+3+6=11
? - A

Ответ.
На втором(A=2). Очевидно вместе с зятем A :)
P.S.Коротко объясню логику. Так как написан не бред шизофреника, то пытаемся читать между строчек формулы для математика :)


 
VICTOR_   (2006-03-04 02:47) [81]

1.
Не прав ни Петя, ни Вася
0,5pi-sqrt(3)/2 < 0,25pi
То есть площади данной фигуры меньше четверти круга


 
VICTOR_   (2006-03-04 02:51) [82]

1.
Пропустил, уже решена :(


 
default ©   (2006-03-04 10:26) [83]

5. 1-sqr(tg(Pi/5))=~0.47


 
SergP.   (2006-03-04 15:55) [84]

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

Моя прога нашла возможно это число что нам нужно:
910107   Длина последовательности 475


function GetChislo:integer;
var
 count:integer;
 procedure rq(cnt:integer;ch:integer);
 begin
 if (ch<1000000) and (cnt>count) then begin
                count:=cnt;
                result:=ch;
                form1.Memo1.Lines.Add(inttostr(ch)+"=="+inttostr(count));
                Application.ProcessMessages;
                   end;
 if ch<100000000 then  // Ограничение на числа из последовательности
   begin
     inc(cnt);
     if (ch>4) and (((ch-1) mod 3) = 0) and ((((ch-1) div 3) mod 2)=1)
     then rq(cnt,(ch-1) div 3);
     rq(cnt,ch*2);
   end;
 end;
begin
 count:=0;
 rq(0,1);
end;


но существует проблема на ограничение чисел которые могут встречаться в последовательности.


 
mrcat ©   (2006-03-04 22:31) [85]

>79] MBo ©   (03.03.06 21:22)

Забыл добавить в алгоритм условие сократимости :)

EVE = 242; DID = 303;


 
Bless ©   (2006-03-06 09:01) [86]

> MBo ©   (03.03.06 17:02) [55]
> Верно (C(15,6)-1)

Расскажи, как получается эта формула, плз. А то я решал иначе, длиннее.


 
MBo ©   (2006-03-06 09:56) [87]

>mrcat ©   (04.03.06 22:31) [85]
>EVE = 242; DID = 303;

Все правильно

>SergP.   (04.03.06 15:55) [84]
У меня прямой расчет такой:

function Leng(m: Int64): Integer;
begin
 Result := 0;
 while m <> 1 do begin
   if Odd(m) then
     m := 3 * m + 1
   else
     m := m div 2;
   Inc(Result);
 end;
end;

procedure TForm1.Button5Click(Sender: TObject);
var
 m, l, lm, nm: Integer;
begin
 lm := 0;
 nm := 0;
 for m := 1 to 1000000 do begin
   l := Leng(m);
   if l >= lm then begin
     lm := l;
     nm := m;
   end;
 end;
 Caption := Format("Longest chain %d started at %d", [lm, nm]);
end;


837799 524

>Bless ©   (06.03.06 09:01) [86]
>Расскажи, как получается эта формула, плз. А то я решал иначе, длиннее.
Я тоже длинно решал, с рисованием ступенчатых графиков. Попробую обобщить с помощью первоисточника:

Рассмотрим "генератор" неубывающего десятичного числа из последовательности битов, что-то вроде конечного автомата.
Стартовая (текущая) десятичная цифра числа (не последовательности!)  - 0. Идем по бинарной последовательности.
Единичный бит означает увеличение текущей цифры на 1, нулевой бит - вывод текущей цифры.
Например, 110010 приводит к трехзначному числу 223

бит    тек.цифра     вывод
---       0
1          1
1          2
0          2                2
0          2                2
1          3
0          3                3


Понятно, что для вывода N-значных чисел в последовательности должно быть N нулей, а единиц может быть до 9.
Таким образом, для вывода 6-значных чисел нужно узнать число бинарных строк длиной 15, содержащих 6 нулей. Это С(15,6) (единица отнимается, если исключать 0)


 
Bless ©   (2006-03-06 10:33) [88]

[87]
Красиво, однако


 
default ©   (2006-03-06 11:43) [89]

[83] верно?
по 6 хотел спросить что значит бросить наудачу точку на плоскость?
а то могут получаться разные решения из-за разного толкования как в парадоксах Бертрана с хордами


 
Bless ©   (2006-03-06 11:43) [90]

Кстати, а существуют ли достаточно эффективные алгоритмы вычисления выражений типа C(N, M) для машины?


 
SergP.   (2006-03-06 12:46) [91]


> MBo ©   (06.03.06 09:56) [87]


М-да... Если использовать int64 то и моим способом ИМХО найдется 837799 524, но это будет слишком долго. и поэтому неэффективно...
А прямым способом просто было как-то неинтерестно... И к тому же так как была задана такая задача я подумал что и решать ее нужно не "в лоб"...
Хотя попробую еще подумать... Может что-то и получится...


 
MBo ©   (2006-03-06 13:28) [92]

>default ©   (06.03.06 11:43) [89]
>[83] верно?

Да, верно, пропустил ранее.

>по 6 хотел спросить что значит бросить наудачу точку на плоскость?
Для бесконечной плоскости, конечно, трудно толково определить это.
Ну пусть будет хорошим приближением что-то вроде MaxInt*(Random*2-1) по каждой координате.

>Bless ©   (06.03.06 11:43) [90]
>Кстати, а существуют ли достаточно эффективные алгоритмы вычисления выражений типа C(N, M) для машины?

Не знаю.
Если нужно много разных C(n,k), то разумно будет построить половинку треугольника Паскаля, а если нет возможности хранить таблицу, то придется что-то подобное делать:

function C(n, k: Integer): Int64;
 var
   i: Integer;
 begin
   Result := 1;
   if k < n - k then
     k := n - k;
   for i := k + 1 to n do
     Result := Result * i;
   for i := 2 to n - k do
     Result := Result div i;
 end;



Страницы: 1 2 3 вся ветка

Форум: "Прочее";
Текущий архив: 2006.03.26;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.69 MB
Время: 0.04 c
2-1141732156
VitV
2006-03-07 14:49
2006.03.26
DBCtrlGri - существует замена?


15-1141655767
nightwalker
2006-03-06 17:36
2006.03.26
VB.NET vs. Delphi


15-1141408225
ZeFiR
2006-03-03 20:50
2006.03.26
бесплатный хостинг со своим доменом


2-1142263597
VitV
2006-03-13 18:26
2006.03.26
Interbase. Пусто поле....


15-1141520170
постигаю
2006-03-05 03:56
2006.03.26
загрузка во фреймы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский