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

Вниз

Пятничные задачки. Покумекаем? ;)   Найти похожие ветки 

 
MBo ©   (2005-10-21 10:23) [0]

1. Написать функцию, для данного Cardinal аргумента N
возвращающую наименьшее натуральное число, произведение цифр которого равно N.

2. На хуторе семь домов. Какие бы три дома вы ни выбрали,
расстояние хотя бы между одной парой равно 50 м.
Как могут располагаться дома?

3. Арбуз разрезали на 4 части. После того, как эти 4 части были съедены,
от них осталось 5 корок. Как такое могло быть? (корки не ломали,
никаких действий по дополнительной разделке частей не происходило,
только съедена мякоть-съедобная часть арбуза).

4.Сидят два человека напротив друг друга. Между ними картонка,
на которой с обеих сторон написаны два натуральных числа,
отличающихся на 1, и оба это знают.
Первый говорит:"я не знаю, какое число написано у тебя" второму.
Второй отвечает: "И я тоже не знаю, какое число написано у тебя".
Первый отвечает: "А я знаю, какое число написано у тебя!"
Второй отвечает: "И я знаю, какое число написано у тебя!"
Вопрос: какие числа были у них написаны??

5. Мальчик собирает изображения покемонов, которые кладут в пакетики
с печеньем. Всего разных покемонов - 100 штук. Сколько пакетиков
в среднем придётся купить родителям мальчика, чтобы он собрал всю коллекцию?
В каждый пакетик случайно и независимо от содержимого других пакетиков кладётся один покемон.

6. Было, но не решили:
Написать функцию - на вход поступает целое число N,
на выходе необходимо выдать максимальную целую
аппроксимацию кубического корня из N. Необходимо придумать
алгоритм, использую только операции +, -, и сравнения.
Нельзя использовать многократно вложенные циклы, операции *, /.
Скорость - не играет роли.

7. Тоже было, не решили:
Можно ли на обыкновенной бумаге в клетку нарисовать выпуклый
пятиугольник так, чтобы все его вершины были в узлах,
и больше ни одного узла ему не принадлежало?  

Пара родственных задач:

8.Один ёжик (ежиха) бежит с постоянной скоростью по прямой.
Когда расстояние до нее становится минимальным, в погоню за ней
устремляется ёжик, который бежит с той же скоростью и все время
держит курс на неё. Во сколько раз он сможет сократить расстояние до неё?

9. Когда самолет пролетает со скоростью V на высоте H прямо
над ракетной установкой, запускается ракета со скоростью U>V,
оборудованная системой наведения, так что ракета все время
выдерживает направление на самолет. Курс самолета не меняется.
Какое время потребуется для поражения цели?


 
Ega23 ©   (2005-10-21 10:44) [1]


> 4.


8 и 7 ?


 
umbra ©   (2005-10-21 11:03) [2]

> 2

На прямой


 
Ega23 ©   (2005-10-21 11:06) [3]


> 2.


Правильный шестиугольник с домами в вершинах и одним в середине.


 
VICTOR_   (2005-10-21 11:07) [4]

3. Повезло человеку, которій ел часть с 2 корками :)


 
Гость1   (2005-10-21 11:10) [5]

4: у первого игрока 2, у второго 3.

В случае, если числа натуральные, т.е. 1,2,...

Т.е. если у игрока 1, то он знает, какая цифра у другого.


 
Ломброзо ©   (2005-10-21 11:15) [6]

VICTOR_   (21.10.05 11:07)
3. Повезло человеку, которій ел часть с 2 корками :)


Три разреза по хорде с тем, чтобы они окружали макушку и хвостик што ли?


 
Loginov Dmitry ©   (2005-10-21 11:15) [7]

1:

function Task1(Val: Cardinal): string;
var
 I: Integer;
 J: Integer;
 Ex: Boolean;
 S: string;
 C: Char;
label
 111;
begin
 S := "";

 while true do
   for I := 9 downto 1 do
     if Val mod I = 0 then begin
       Ex := Val < 10;
       S := S + IntToStr(I);
       Val := Val div I;
       if Ex then goto 111;
       Break;
     end;
     
111:
 // Сортировка
 for I := 1 to Length(S) do begin
   C := S[I];
   for J := Length(S) downto I + 1 do
     if Ord(S[J]) < Ord(C) then begin
       S[I] := S[J];
       S[J] := C;
     end;
 end;
 Result := S;

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 ShowMessage(Task1(100));
end;

Ну как? Правильно?


 
Гость1   (2005-10-21 11:23) [8]

Для 1-й задачи.
А что делать с числом 121, например? :)


 
VICTOR_   (2005-10-21 11:33) [9]


> Три разреза по хорде с тем, чтобы они окружали макушку и
> хвостик што ли?

Угу :)


 
Loginov Dmitry ©   (2005-10-21 11:35) [10]


> Гость1   (21.10.05 11:23) [8]


Да, действительно, прога кроме чисел 100, 200, 400, 500, 1000.. мало что понимает :(.  Дык, задача нетривиальная.


 
Igorek ©   (2005-10-21 11:37) [11]

7. решали на рсдн в этюдах, могу дать ссылку :)


 
Loginov Dmitry ©   (2005-10-21 11:59) [12]


> Loginov Dmitry ©   (21.10.05 11:15) [7]


Break в цикле сортировки забыл (ну ладно, все равно не работает :)


 
Antonn ©   (2005-10-21 12:51) [13]

MBo ©   (21.10.05 10:23)
2 может так(1-дом, 0-огород:)):
1 1 0
1 1 1
0 1 1

?


 
MBo ©   (2005-10-21 13:04) [14]

>Гость1   (21.10.05 11:10) [5]
>Т.е. если у игрока 1, то он знает, какая цифра у другого.
А если у первого 3 или 4?


 
MBo ©   (2005-10-21 13:06) [15]

>Antonn ©   (21.10.05 12:51) [13]
Без картинок, тут, конечно, трудно судить. Четверки домов - квадраты?


 
MBo ©   (2005-10-21 13:11) [16]

>Гость1   (21.10.05 11:23) [8]
>Для 1-й задачи.А что делать с числом 121, например? :)

Замечание верное.
Для подобных случаев - ну пусть 0 выдает.


 
GuAV ©   (2005-10-21 13:13) [17]

1.
function TheLeastNaturalNumberProductOfDigitsOfWhichIsParameter(Value: Cardinal): Cardinal;
var
 A: array[2..9] of Cardinal;
 I, J: Integer;
begin
 for I := 9 downto 2 do
   A[I] := 0;

 for I := 9 downto 2 do
   while Value mod I = 0 do
   begin
     Value := Value div I;
     Inc(A[I]);
   end;

 if Value <> 1 then
   raise Exception.Create("Cannot produce a result."+
     "Probably, the argument has simple number disivors greater than 9");

 Result := 0;

 for I := 2 to 9 do
   for J := 1 to A[I] do
     Result := Result * 10 + I;

 if Result = 0 then
   Result := 1;
end;


 
GuAV ©   (2005-10-21 13:14) [18]


> if Value <> 1 then
>   raise Exception.Create("Cannot produce a result."+
>      "Probably, the argument has simple number
> disivors greater than 9");

Ну раз [16], то


 
Loginov Dmitry ©   (2005-10-21 13:14) [19]

2.
Нужно различные факторы учитывать:
1 - где находится хутор (мож, в Подмосковье, тогде все дома можно смело рядом ставить :)
2 - рельеф местности (если 2 домика разместить на холмах, то что-то получается)


 
GuAV ©   (2005-10-21 13:15) [20]


> if Value <> 1 then
>   raise Exception.Create("Cannot produce a result."+
>      "Probably, the argument has simple number
> disivors greater than 9");

 if Value <> 1 then
 begin
   Result := 0;
   Exit;
 end;


 
Loginov Dmitry ©   (2005-10-21 13:21) [21]


> GuAV ©   (21.10.05 13:13) [17]
>
> 1.
> function TheLeastNaturalNumberProductOfDigitsOfWhichIsParameter(Value:
>  Cardinal): Cardinal;

А ты такое имя не пробовал:
TheLeastNaturalNumberProductOfDigitsOfWhichIsParameter111111111111111111111111111111111111111111111111111111111111111111 111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

Прокатывает (ок. 300 символов)


 
MBo ©   (2005-10-21 13:25) [22]

>GuAV ©   (21.10.05 13:13) [17]
Чудесно!
[20] уже не играет роли, главное - идея краткого решения.

Сразу так стал делать?
А то я поначалу развесисто решал, с разложением на простые множители и их группировкой...

>Loginov Dmitry ©   (21.10.05 13:14) [19]
интересует возможность построения на плоскости.


 
MBo ©   (2005-10-21 13:32) [23]

В качестве наводки к решению [7] -

Известная задача - можно ли доску 8*8 с двумя вырезанными противоположными уголками замостить 31 доминошкой?
Доказательство - пусть доска шахматная, тогда каждая кость домино должна накрывать черную и белую клетки, а их число различно => размещение невозможно.

Неявно использованный здесь принцип можно применить и для красивого решения [7]


 
Гость1   (2005-10-21 13:58) [24]


> MBo ©   (21.10.05 13:04) [14]

Тогда нет решения. Я же сказал, что такое возможно только при 2 и 3.
Задача же так была поставлена? Найти цифры.

Т.е. изначально у 1-го игрока 2 варианта ответа 1 и 3.
Если бы была бы 1, то 2-й сказал бы, что он знает решение, однако, он сказал, что нет.
Таким образом, 1-й игрок делает вывод, что  у второго - 3.


 
Гость1   (2005-10-21 14:04) [25]

Насчет 7 я не понял.
> больше ни одного узла ему не принадлежало?


Что это значит? Что внутри пятиугольника не должно быть узлов? Или на ребрах не должно быть узлов?


 
GuAV ©   (2005-10-21 14:04) [26]


> Loginov Dmitry ©

IMHO следует давать глобальным идентификаторам по возможности осмысленные имена и желательно без сокращений.

Ктсати, в титрах одной игры видел номинацию the longest function name :-)


> Сразу так стал делать?

Первая мысль была разложить, но почти сразу понял, что это не то, т.к. 9 < 33 и цифр больше 9 нет. Перейдя от мыслей к коду, счразу написал [17].


 
Antonn ©   (2005-10-21 15:12) [27]

MBo ©   (21.10.05 13:06) [15]
Четверки домов - квадраты?

не, не не то, если по диагонали выбирать, то там sqrt(2)*50 будет...


 
oldman ©   (2005-10-21 15:34) [28]

3.
Вырезаем из центра арбуза цилиндр.
Остаток - на 3 ломтя.
На цилиндре - 2 корки.
:)))


 
oldman ©   (2005-10-21 15:41) [29]

7.
можно, НО
один угол=180 градусов :)))
Примерно так:
А ---- В
 |      \
C ------D
     E


 
VICTOR_   (2005-10-21 16:10) [30]


> 7.
> можно, НО
> один угол=180 градусов :)))
> Примерно так:
> А ---- В
>  |      \
> C ------D
>      E

В таком случае данную фигуру можно назвать и N(напр. 100 угольником), только я в ней вижу только 4 угла :(


 
oldman ©   (2005-10-21 16:15) [31]


> VICTOR_   (21.10.05 16:10) [30]


Тогда НЕЛЬЗЯ!!!
Доказывать лень - демагогии на 5 листов...


 
MBo ©   (2005-10-21 16:17) [32]

>Что это значит? Что внутри пятиугольника не должно быть узлов? Или на ребрах не должно быть узлов?

И внутри, и на ребрах


 
oldman ©   (2005-10-21 16:23) [33]

7
рисуем линию
|
от не можем нарисовать:
/
|
или
-
|
дальше можем только (А)
-
|  \
или (В)
    -
 /
|
рассматриваем А
что бы получить выпуклый рисуем
 -
|   \
    |
или
 -
|   \
   --
выпуклого (без узла внутри) не получается
рассматривая В приходим к тому же результату...


 
oldman ©   (2005-10-21 16:31) [34]

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


 
SergP.   (2005-10-21 16:59) [35]


> 6. Было, но не решили:
> Написать функцию - на вход поступает целое число N,
> на выходе необходимо выдать максимальную целую
> аппроксимацию кубического корня из N. Необходимо придумать
> алгоритм, использую только операции +, -, и сравнения.
> Нельзя использовать многократно вложенные циклы, операции
> *, /.
> Скорость - не играет роли.



function cuberoot(n:integer):integer;
var
 a,b:integer;
begin
 a:=0;
 b:=0;
 Result:=-1;
 while b<=n do
    begin
    inc(Result);
    b:=b+a+a+a+Result+Result+Result+1;
    a:=a+Result+Result+1;
    end;
end;


 
default ©   (2005-10-21 17:08) [36]

4. 3,4


 
MBo ©   (2005-10-21 17:09) [37]

>Вырезаем из центра арбуза цилиндр.
>Остаток - на 3 ломтя.
>На цилиндре - 2 корки.
Да

>SergP.   (21.10.05 16:59) [35]
Все верно

oldman [33, 34]
Что-то непонятно пока...


 
MBo ©   (2005-10-21 17:10) [38]

>default ©   (21.10.05 17:08) [36]
>4. 3,4

Нет, Гость1 прав, только 2 и 3 подходит.


 
oldman ©   (2005-10-21 17:48) [39]


> MBo ©   (21.10.05 17:09) [37]
> oldman [33, 34]
> Что-то непонятно пока...


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


 
Sandman29 ©   (2005-10-21 17:51) [40]

>то же самое - никакой математики, чистая умозрительная логика...

Я бы даже сказал больше - ограниченный перебор



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

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

Наверх




Память: 0.56 MB
Время: 0.045 c
14-1129904930
Unicum
2005-10-21 18:28
2005.11.13
Симуляция испарения калпи


2-1129791899
kyn66
2005-10-20 11:04
2005.11.13
Как присвоить значения одной переменной другой (TStringList)


1-1130149453
-==EVGEN==-
2005-10-24 14:24
2005.11.13
Как открыть определенный узел в TreeView


14-1129913106
default
2005-10-21 20:45
2005.11.13
Доказательство FAT теоремы


11-1110981835
Vladimyr
2005-03-16 17:03
2005.11.13
QueryEndSession - как чуток подождать?..





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский