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

Вниз

Пятничные задачки. Сogito ergo sum.   Найти похожие ветки 

 
MBo ©   (2005-10-07 08:14) [0]

1. На маленьком острове стоит прожектор, луч которого освещает
отрезок поверхности моря длиной 1 км. Прожектор вращается с периодом 1 мин.
При какой минимальной скорости катер может незаметно подплыть к острову?

2. Начальная скорость снаряда зенитной пушки V. Какую форму имеет зона безопасности для самолетов?

3. Вася Пупкин получил два предложения о работе.
Фирма "Рога и Копыта" предлагает ему 18000$ в год с увеличением каждый год
на 2000$, а ООО "ЗюЗюЗю" предлагает тот же стартап с увеличением каждые полгода
на 500$. Куда ему лучше податься?

4. У ювелира было много серебряных колечек. Толщина колечка в сечении 0.5 мм.
Он сделал две цепочки, одна длиной 326 мм, вторая 426 мм.
Сколько всего колечек было, если на длинную он израсходовал
на 40 колечек больше, чем на короткую?

5. Металлический стержень согнут посередине под прямым угом и подвешен
на шарнире за один из концов. Найти угол между верхним отрезком и вертикалью.

6. Два автомобиля отправились одновременно из A в B по одной дороге с разными,
но постоянными скоростями, выражающимися натур. числами. Разность скоростей -
простое число. Расстояние от А до В 100 км. Через 2 часа расстояние от А до медленного
автомобиля было впятеро больше расстояния от В до второго автомобиля.
Найти скорости.

7. Три точки  A,В,С находятся на прямом берегу последовательно на расстоянии 50 и 50 м друг от друга.
Одновременно из B к С поплыл Петя, а из A к B - Вася с Тузиком. Тузик догнал Петю,
повернул назад и вышел на берег в точке B одновременно с Васей, а Петя в тот же момент
вышел в точке С. Скорости постоянны. Сколько проплыл Тузик?

8. Дан указатель на начало односвязного списка. Написать функцию, которая обращает его
за линейное время с использованием О(1) памяти

9. Написать функцию, которая производит циклический сдвиг строки длиной N
на расстояние M влево за время O(N) с использованием O(1) памяти.
Пример: при N=9,M=3 строка abcdefghi превращается в defghiabc

10. Любопытная задача, уже когда-то задавалась McSimm-ом:
Введение: известна задача о ханойских башнях:
Имеется 3 стержня, на левый надето N дисков уменьшающегося размера.
Требуется переложить их на правый с соблюдением правила - на каждом
шаге перкладывается один диск, на больший диск можно класть только меньший.
Например, для 3-х дисков кратчайшая последовательность такова
(номера стержней, откуда и куда идет перекладывание через черточку):
1-3 1-2 3-2 1-3 2-1 2-3 1-3
Кто еще не сталкивался с исходной задачей, может попробовать силы в ее
самостоятельном решении.

Собственно основная задача:
Составить алгоритм решения задачи для ПРОИЗВОЛЬНОГО допустимого начального
расположения дисков.


 
КаПиБаРа ©   (2005-10-07 08:25) [1]

1. 1км/мин


 
MBo ©   (2005-10-07 08:48) [2]

>КаПиБаРа ©   (07.10.05 08:25) [1]
>1. 1км/мин

нет


 
КаПиБаРа ©   (2005-10-07 08:51) [3]

MBo ©   (07.10.05 8:48) [2]
Понял. Не дурак :)


 
palva ©   (2005-10-07 09:13) [4]

2. Когда-то решал эту задачу в плоском варианте. Безопасная зона - все, что выше параболоида вращения (перевернутого).


 
MBo ©   (2005-10-07 09:20) [5]

>palva ©   (07.10.05 09:13) [4]
Ну эта задача рассчитана на тех, кто не сталкивался с получением огибающей семейства траекторий. В первый раз это интересно бывает вывести.


 
palva ©   (2005-10-07 09:20) [6]

5. pi/4 - arctg(1/2)


 
Sergey_Masloff   (2005-10-07 09:28) [7]

5) 18.4 градуса примерно? Ну tg = 1/3


 
КаПиБаРа ©   (2005-10-07 09:29) [8]

palva ©   (07.10.05 9:20) [6]
arctg(1/3)=18,43 градуса я тоже получил. Только не хватило ума в общем виде формулу вывести.


 
MBo ©   (2005-10-07 09:31) [9]

>palva ©   (07.10.05 09:20) [6]
>5. pi/4 - arctg(1/2)
>Sergey_Masloff   (07.10.05 09:28) [7]
>5) 18.4 градуса примерно? Ну tg = 1/3

Да, верно. Разные записи, но результат одинаковый.
Решается через моменты сил или на пальцах - через положение центра тяжести на одной вертикали с шарниром.


 
Rentgen ©   (2005-10-07 09:31) [10]


> 3. Вася Пупкин получил два предложения о работе.
> Фирма "Рога и Копыта" предлагает ему 18000$ в год с увеличением
> каждый год
> на 2000$, а ООО "ЗюЗюЗю" предлагает тот же стартап с увеличением
> каждые полгода
> на 500$. Куда ему лучше податься?


Повышение зарплаты в Рогах будет всегда больше в два раза. А вот что ему выбрать, это надо смотреть.

P.S.
Или слишком легко или опечатка?


 
MBo ©   (2005-10-07 09:37) [11]

>Rentgen ©   (07.10.05 09:31) [10]
Нетрудно, но не очевидно. Так куда Васе слать резюме?


 
Dok_3D ©   (2005-10-07 09:39) [12]

2 Rentgen ©   (07.10.05 09:31) [10]
Или слишком легко или опечатка?

Ни то, ни другое.
Это твоя невнимательность  :)


 
SvetaK   (2005-10-07 09:45) [13]

3. Если Вася меняет работу каждый год ,то ему лучше податься в  ООО "ЗюЗюЗю"  .Tогда он там за первый год заработает на 500*6=3000$ больше.


 
svetaK   (2005-10-07 09:49) [14]

ПАРДОН ПОТОРОПИЛАСЬ Tогда он там за первый год заработает на 500$ больше.


 
Кабан   (2005-10-07 09:52) [15]

нигде вроде не сказано, что на 500 повышается зарплата в каждом месяце, или я чего то не понимаю :)


 
Кабан   (2005-10-07 09:53) [16]

я бы послал в рога и копыта


 
КаПиБаРа ©   (2005-10-07 09:54) [17]

3. Если ежемесячную зарплату увеличивают на 2000 и 500, то в ООО "ЗюЗюЗю"


 
syte_ser78 ©   (2005-10-07 10:03) [18]

Rentgen ©   (07.10.05 9:31) [10]
Думаю тут смысл не столько в том что год или полгода, а в том что в первом случае  - фирма во втором ООО
Я выбираю ООО (хоть что такое "фирма" не понятно).


 
MBo ©   (2005-10-07 10:03) [19]

>Если ежемесячную зарплату увеличивают на 2000 и 500
нет, годовую


 
MBo ©   (2005-10-07 10:05) [20]

>syte_ser78 ©   (07.10.05 10:03) [18]
нет, форма собственности не имеет значения, названия я от фонаря написал


 
Sergey_Masloff   (2005-10-07 10:05) [21]

8) с колес наверное можно почистить

unit LList;

interface
 uses Classes, SysUtils;

type
 PNode = ^TNode;
 TNode = record
   Data : Pointer;
   Next : PNode;
 end;

var
 List : PNode;

function ReverseList(AList : PNode): PNode;
procedure PrintList(AList : PNode; ATarget : TStrings);

implementation

function ReverseList(AList : PNode): PNode;
var
 pPrev, pCur, pNext : PNode;
begin
 if AList^.Next = nil then
   Result := AList
 else begin
   pPrev := AList;
   pCur  := AList^.Next;
   AList.Next := nil;
   while (pNext <> nil) do
   begin
     pNext := pCur^.Next;
     pCur^.Next := pPrev;
     pPrev := pCur;
     pCur := pNext;
   end;
   Result := pPrev;
 end;
end;

procedure PrintList(AList : PNode; ATarget : TStrings);
var
 Node : PNode;
begin
 if AList <> nil then
 begin
   Node := AList;
   while Node^.Next <> nil  do
   begin
     ATarget.Add(IntToStr(Integer(Node^.Data)));
     Node := Node^.Next;
   end;
   ATarget.Add(IntToStr(Integer(Node^.Data)));
 end;
end;

end.


 
Кабан   (2005-10-07 10:07) [22]

6. 42 и 40


 
Fishka   (2005-10-07 10:16) [23]

6. 8 пар решений
(40,42) (35,43) (30,44) (25,45) (20,46) (15,47) (10,48) (5,49)


 
VICTOR_   (2005-10-07 10:51) [24]

4.
300 колечек


 
VICTOR_   (2005-10-07 11:14) [25]

1.
Рискну предположить
2/PI = 0.64


 
MBo ©   (2005-10-07 11:32) [26]

>MBo ©   (07.10.05 10:03) [19]
>Если ежемесячную зарплату увеличивают на 2000 и 500
>нет, годовую

уточню формулировку для 3 задачи, как описано в книжке:
1 предлагает 18000 в год, и каждый последующий год годовое
содержание будет увеличиваться на 2000
2 предлагает 18000 в год, и каждый полгода повышение зарплаты на 500 долларов, таким образом, за второе полугодие получит 9500.

>Кабан   (07.10.05 10:07) [22]
>6. 42 и 40

Да

>Fishka   (07.10.05 10:16) [23]
разность - простое число должна быть

VICTOR_   (07.10.05 10:51) [24]
4.300 колече

Да


 
Кабан   (2005-10-07 11:41) [27]

2 MBo
тогда пойду, где не 500 увеличивают
задача сначала не совсем корректно сформулирована была


 
MBo ©   (2005-10-07 12:21) [28]

>Кабан   (07.10.05 11:41) [27]
>тогда пойду, где не 500 увеличивают
>задача сначала не совсем корректно сформулирована была

Да вот так уж она была дана в источнике.
Насчет: "таким образом, за второе полугодие получит 9500"  - этого в условии не было, но подразумевалось в объяснении.
Собственно, говоря, если совершенно корректно сформулировать условие - никакого подвоха не будет ;)
Ну ладно, неудачная эта задача получилась.


 
GuAV ©   (2005-10-07 12:59) [29]

8.
procedure RotateLeft(var S: string; Count: Integer);
var
 I, J, B, Len, Replaced: Integer;
 Ch: Char;
begin
 Len := Length(S);
 B := 0;
 Replaced := 0;
 repeat
   Inc(B);
   Ch := S[B];
   J := B;
   repeat
     I := J;
     J := ((I + Count - 1) mod Len) + 1;
     if (J <> B) then
       S[I] := S[J]
     else
       S[I] := Ch;
     Inc(Replaced);
   until J = B;
 until Replaced = Len;
end;

procedure TForm1.Button1Click(Sender: TObject);
var S: string; I: Integer;
begin
 S := Edit1.Text;
 I := StrToInt(Edit2.Text);
 RotateLeft(S, I);
 Edit3.Text := S;
end;


 
Труп Васи Доброго ©   (2005-10-07 13:07) [30]

Я не пойму чего думать? 2000 в год по любому больше чем 500 за полгода=1000в год.
Если не так - объясните, я работу сменю.


 
default ©   (2005-10-07 13:09) [31]

7. 50(1+sqrt(2))
8. тривиальность
9. классика!


 
MBo ©   (2005-10-07 13:11) [32]

VICTOR_   (07.10.05 11:14) [25]
1.Рискну предположить 2/PI = 0.64

нет

>Sergey_Masloff

Рабочий цикл - правильный, обвязка не вполне корректная (не иниц. PNext, проверка AList.Next на входе без проверки самого AList).

Если это подправить, получится что-то вроде:


function RevList(Head: PNode): PNode;
var
 Temp, RevHead: PNode;
begin
 RevHead := nil;
 while Head <> nil do begin
   Temp := Head.Next;
   Head.Next := RevHead;
   RevHead := Head;
   Head := Temp;
 end;
 Result := RevHead;
end;


 
MBo ©   (2005-10-07 13:19) [33]

default ©   (07.10.05 13:09) [31]
7. 50(1+sqrt(2))

Да.

8. тривиальность

Ой ли?
Уверен, что большая часть программистов напишет это за несколько минут?
Если ты учился на программистской специальности, то подобные вещи наверняка проходились/задавались. Практической пользы от манипулирования односвязными списками, конечно, мало, но мыслить алгоритмически это приучает в какой-то мере.

9. классика!
Чтобы это стало классикой, сначала ведь кто-то должен был придумать, верно? ;)


 
default ©   (2005-10-07 13:24) [34]

MBo ©   (07.10.05 13:19) [33]
по 8 честно сказать с первых секунд было видно решение...я не считаю это своей заслугой скорее заслугой задачи...
9. в "Жемчужинах программирования" это задача есть, она великолепна!


 
GuAV ©   (2005-10-07 13:29) [35]

GuAV ©   (07.10.05 12:59) [29]

> 8.

Точнее это было 9


 
REP ©   (2005-10-07 13:48) [36]

3.
ЗюЗюЗю
1 полугодие 1г  9000
2 полугодие 1г  9500
1 полугодие 2г 10000
2 полугодие 2г 10500
---------------------
                    39000

Рога
1 год 18000
2 год 20000
---------------
        38000


 
MBo ©   (2005-10-07 14:17) [37]

GuAV ©   (07.10.05 12:59) [29]
9.

Трудно воспринимается, но "упаковка" красивая.


 
default ©   (2005-10-07 14:30) [38]

MBo ©   (07.10.05 14:17) [37]
да, неплохо бы словами объяснил
примерно суть такая(буквы отфени взяты)
слева стоит то что ставится на своё место справа то что затирается
d    c
b    d
k    b
e    k
то есть то что встало на предыдущем шаге на своём место можно затирать(в исходной позиции) на следующем шаге другим элементов для установки его на новое место

кстати, у Вас в ответе какой алгоритм?


 
Прынц   (2005-10-07 15:03) [39]

парни расслдабтесь и идите пить пиво, сегодня ж тяпница!


 
default ©   (2005-10-07 15:14) [40]

GuAV ©   (07.10.05 12:59) [29]
по-моему нифига не линеен
расскажи алгоритм на словах



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

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

Наверх




Память: 0.56 MB
Время: 0.047 c
1-1128314099
NikNet
2005-10-03 08:34
2005.10.30
Как быстро сравнить два TBITMAP?


2-1128502645
Гость22
2005-10-05 12:57
2005.10.30
Как сделать, чтоб при вводе в Edit е, после 5-го и 10-го...


2-1127728356
SMATMP
2005-09-26 13:52
2005.10.30
Bitmap.PixelFormat


2-1128592873
leonidus
2005-10-06 14:01
2005.10.30
ANSI код символа EOF


14-1128580186
Мазут Береговой
2005-10-06 10:29
2005.10.30
Сделал открытие века! Такой вот я непоседа!





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