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

Вниз

Пятничная разминка заскорузлых нейронов и аксонов :)   Найти похожие ветки 

 
palva ©   (2005-02-12 12:49) [40]

default ©   (12.02.05 01:20) [34]
> хочешь какую-нить задачку порешать?

Конечно, хочу, но не всё понимаю. Вот, например, 6. Что значит найти точку? Указать ее координаты? Геометрически построить ее несложно. Нужно описать окружность вокруг треугольника, образуемого вершинами столбов, и через центр этой окружности перпендкулярно плоскости треугольника провести прямую до пересечения с плоскостью земли. Если это пересечение окажется внутри двора, то это и будет искомая точка P. Будет ли такой ответ решением задачи?


 
palva ©   (2005-02-12 13:08) [41]

8. 65/Sqrt(2)
Правильно?


 
default ©   (2005-02-12 13:09) [42]

опс, глупость в [39] сморозил


 
Alx2 ©   (2005-02-12 13:14) [43]

9. точки (1/2,1/4) или (-1/2,1/4) площадь = 4/3
S = 1/48*(1/x0+4*x0)^3 где x0 - абсцисса точки из которой проводится нормаль.

4. (3-sqrt(2))/3 * ctg(3/8*Pi)


 
palva ©   (2005-02-12 13:47) [44]

12.
{$APPTYPE CONSOLE}
const
 dic: String="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
 N = 5;
 K = 3;
var
 cc: array [1..K] of 1..4;
 i, j, d: Integer;
begin
 for i := 1 to K do cc[i] := i;
 while(True) do begin
   for i := 1 to K do Write(dic[cc[i]]);
   WriteLn;
   d := 0;
   for j:=K downto 1 do begin
     if cc[j] < N - K + j then begin
       d := j;
       break
     end    
   end;
   if d > 0 then begin
     Inc(cc[d]);
     j := cc[d] + 1;
     for i := d + 1 to K do begin
       cc[i] := j;
       Inc(j)
     end
   end else begin
     break;
   end
 end
end.


 
ferr ©   (2005-02-12 14:13) [45]

9. 0.5


 
ferr ©   (2005-02-12 14:17) [46]

9. Можно ли предположить, что площадь будет тем меньше, чем меньше разность по X между 2-мя точками пересечения параболы и прямой? Если да, то [45].


 
palva ©   (2005-02-12 14:34) [47]

5. Допустим, что 123456789 является членом этой последовательности. Предыдущий член этой последовательности не более чем 9-значный, поэтому имеет сумму цифр не более 81. Следовательно предыдущий член имеет следующую десятичную запись: 1234567xy, где x и y целые в диапазоне от 0 до 9. Теперь смотрим, как получились последние две цифры в числе 123456789 и составляем уравнение:

10x+y+10x+y+28+x+y=89 или после приведения подобных
21x+3y+28=89

Слева стоит число вида 3k+1, а справа число вида 3k+2, поэтому уравнение не имеет решения в целых числах.

Таким образом число 123456789 не является членом последовательности.


 
MBo ©   (2005-02-12 17:22) [48]

Верные ответы:
1. 4,6
2. Очередная строка с вероятностью 1/N (N-ее номер) заменяет имеющуюся
4. (4*Sqrt(2)-5).3=~0.2189
5. Не является. можно доказывать также через сумму цифр по модулю 9
9. x=+-1/2, S=4/3
10. 1,2,2,3,3,4  1,3,4,5,6,8
12. ОК, даны рекурсивный и нерекурсивный алгоритмы.
Теперь интересно рассмотреть такой подход - каждая комбинация соответствует n-разрядному числу, в двоичной записи которого установлено k единичных бит. Это соответствует устройству set (для указанного размера вместится в 4 байта, что приводимо к Integer). Вот как бы поэффективнее получить набор этих чисел?


 
palva ©   (2005-02-12 18:04) [49]

35! Делится на 11. Расположим столбиком частное от деления на 11, это же частное, сдвинутое влево на один разряд, и само число 35! Имея ввиду, что сумма первых двух чисел равна третьему можно заняться восстановлением цифр частного. Восстановление можно вести с обоих концов числа, причем процесс упирается в неизвестные цифры числа 35! Вот что у нас получилось:


_093937708785328uxxxxx6968303411200000000
093937708785328uxxxxx6968303411200000000
1033314796638614a9296b6651337523200000000

Сразу же замечаем, что либо u=5, либо u=6

Далее, перебираем варианты b=0,1...9 и, восстанавливая цифры x от конца к началу, смотрим чему получается равным b. Не все варианты получаются допустимыми. Мы выпишем здесь 2 варианта:

b=0

_0939377087853286357236968303411200000000
0939377087853286357236968303411200000000
10333147966386149929606651337523200000000

b=1

_093937708785328u448146968303411200000000
093937708785328u448146968303411200000000
1033314796638614a929616651337523200000000

Дальше восстанавливать цифры невозможно, поскольку u не может здесь быть ни 5, ни 6. Это единственный недопустимый вариант.

Удобнее и быстрее проводить этот процесс в текстовом редакторе.

Всего получается 9 вариантов:

a=0 b=2
a=1 b=3
a=2 b=4
a=3 b=5
a=4 b=6
a=5 b=7
a=6 b=8
a=7 b=9
a=9 b=0

Из этих вариантов возможен только тот, который дает сумму цифр, деляющуся на 9 (поскольку 35! делится на 9). Если посчитать сумму всех цифр кроме a и b, то получается 134, следовательно сумма цифр a и b может быть либо 1, либо 10. У нас это дает единственный вариант: 4 6

Ответ: 4 6


 
Vit@ly ©   (2005-02-12 21:05) [50]

2 MBo
А как по поводу реплики по 6 задаче Vit@ly ©   (11.02.05 20:23) [21]
Мне кажется, что на высОты столбов необходимы, какие-то дополнительные ограничения?


 
default ©   (2005-02-13 00:24) [51]

10.
о какой высоте идёт речь? чем выше прыгнешь тем больше угол обстрела...


 
MBo ©   (2005-02-13 08:57) [52]

>Vit@ly ©   (12.02.05 21:05) [50]
А зачем ограничения?
Решение задачи может подразумевать, что они будут даны в ответе.
Даже и без ограничений - такая точка на плоскости существует, пусть даже она за пределами двора.

>default ©   (13.02.05 00:24) [51]
если прыгнешь на 200 м., угол будет меньше, чем при прыжке на 100 м. ;)


 
Vit@ly ©   (2005-02-13 10:04) [53]

2 MBo ©   (13.02.05 08:57) [52]

Найти точку P на полу двора
:)


 
palva ©   (2005-02-13 10:48) [54]

11. Если допускать, что числа могут быть произвольными целыми, то имеются тривиальные решения: можно взять две традиционные кости, на одной из них увеличить все числа на гранях на k, а на другой - уменьшить. Интереснее, если все числа должны быть целыми положительными. Здесь, наверно, можно составить программу для перебора грубой силой, которая выполнялась бы за приемлемое время.


 
palva ©   (2005-02-13 13:13) [55]

Ну что, программу написал

{$APPTYPE CONSOLE}
type TDice=array [1..6] of 1..11;
var Dice1, Dice2: TDice; // Это шестигранные кости
var g: Integer; // Число вызовов функции test

procedure test; forward; // Функция проверки
procedure init_dice(var Dice: TDice); forward;
function next_dice(var Dice: TDice): Boolean; forward;

procedure main;
var i: Integer;
begin
(*
На обоих костях числа должны начинаться с единицы и не убывать
Наибольшие значения каждой кости в сумме должны равняться 12;
из соображений симметрии можно также считать, что первое
значение не превышает второе.
Числа кроме первого и последнего должны быть в диапазоне 2..11,
отсюда в частости вытекает, что наибольшие числа кости должны
быть не меньше трех.
*)
 // Начальные присваивания
 Dice1[1] := 1;
 Dice2[1] := 1;
 for i:=3 to 11 do begin // Цикл по наибольшему числу
   writeln("Step ", i - 2);
   Dice1[6] := i;
   Dice2[6] := 12 - i;
   init_dice(Dice1);
   repeat // Цикл по первой кости
     init_dice(Dice2);
     repeat // Цикл по второй кости
       test;
     until next_dice(Dice2);
   until next_dice(Dice1);
 end;
end;

procedure test;
type Tptrn = array [2..12] of byte;
const ptrn: TPtrn = (1, 2, 3, 4, 5, 6, 5, 4, 3, 2, 1);
var
 i, j, k: Integer;
 freq: TPtrn;
 OK: Boolean;
begin
 Inc(g);
 for k := 2 to 12 do freq[k] := 0;
 for i := 1 to 6 do for j := 1 to 6 do Inc(freq[Dice1[i] + Dice2[j]]);
 OK := True;
 for k := 2 to 12 do begin
   if freq[k] <> ptrn[k] then begin
     OK := False;
     break;
   end
 end;
 if OK then begin    
   // Печать костей
   Write("OK! ");
   for i:=1 to 6 do Write(Dice1[i]:3);
   Write("  ");
   for i:=1 to 6 do Write(Dice2[i]:3);
   WriteLn;
 end;
end;

procedure init_dice(var Dice: TDice);
var i: Integer;
begin
 for i := 2 to 5 do Dice[i] := 2;
end;

function next_dice(var Dice: TDice): Boolean;
var i, j, k, d6m1: Integer;
begin
 d6m1 := Dice[6] - 1;
 j := 1;
 for i:=5 downto 2 do begin
   if Dice[i] < d6m1 then begin
     j := i;
     break;
   end;
 end;
 if j > 1 then begin
   k := Dice[j];
   Inc(k);
   Dice[j] := k;
   for i := j + 1 to 5 do Dice[i] := k;
   Result:=False;
 end else begin
   Result:=True;
 end
end;

begin
 g := 0;
 main;
 writeln("Number of test function calls ", g);
end.

Выдача:

Step 1
Step 2
OK!   1  2  2  3  3  4    1  3  4  5  6  8
Step 3
Step 4
OK!   1  2  3  4  5  6    1  2  3  4  5  6
Step 5
Step 6
OK!   1  3  4  5  6  8    1  2  2  3  3  4
Step 7
Step 8
Step 9
Number of test function calls 5830

Кроме традиционного случая выдало еще два варианта, которые симметричны друг другу.

Окончательный ответ

1  2  2  3  3  4    1  3  4  5  6  8


 
default ©   (2005-02-13 16:08) [56]

palva ©   (13.02.05 13:13) [55]
уже решено было 11
см выше
только MBo номер 10 поставил а не 11
а решал я перебором(не самым тупым) без компа...


 
default ©   (2005-02-13 16:20) [57]

palva ©   (13.02.05 13:13) [55]
наверное, более оптимальный перебор это если идти с концов
то есть рассматривать суммы 2,12 потом 3,11 и тд
вручную достаточно быстро так перебирать уж никак не
5830 вариантов...


 
Alx2 ©   (2005-02-13 21:18) [58]

6. Высоты z1 z2 z3
при вершинах первая - в начале оси координат, третья - на оси абсцисс:
координата x есть (z3^2-z1^2+1)/2, по y : sqrt(3)/6 * (1+2*z2^2-z1^2-z3^2)


 
default ©   (2005-02-13 22:55) [59]

10. ~=15m


 
аштшл   (2005-02-14 00:24) [60]

так что в 6 задаче длина верёвки дана?


 
аштшл   (2005-02-14 00:31) [61]

Нашёл длины сторон треугольника построенного по вершинам столбов. А нужно ли ? =)
sqrt(1+b^2+a^2-2ab)
sqrt(1+c^2+a^2-2ac)
sqrt(1+b^2+c^2-2cb)



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

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

Наверх





Память: 0.58 MB
Время: 0.038 c
3-1107338338
MakedoneZ
2005-02-02 12:58
2005.03.06
Про DBGrid и БД, а так же просмотрите код.


8-1100866893
denis24
2004-11-19 15:21
2005.03.06
компонент по захвату видео


4-1105877516
KILLMAN
2005-01-16 15:11
2005.03.06
отследить открытие/закрыте CD-ROM


1-1108944752
Bes
2005-02-21 03:12
2005.03.06
Зависание TThreadList


4-1102524244
Костя
2004-12-08 19:44
2005.03.06
системное время





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