понедельник, 27 марта 2017 г.

Софья

1. Сколь­ко еди­ниц в дво­ич­ной за­пи­си де­ся­тич­но­го числа 127?

2. Для таб­ли­цы ис­тин­но­сти функ­ции F из­вест­ны зна­че­ния толь­ко не­ко­то­рых ячеек.

x1x2x3x4x5x6x7F
011
000
010

Каким вы­ра­же­ни­ем может быть F?

1) x1 ∧ x2 ∧ x3 ∧ ¬x4 ∧ x5 ∧ x6 ∧ ¬x7
2) x1 ∨ ¬x2 ∨ x3 ∨ ¬x4 ∨ ¬x5 ∨ x6 ∨ ¬x7
3) ¬x1 ∧ x2 ∧ ¬x3 ∧ x4 ∧ x5 ∧ x6 ∧ x7
4) x1 ∨ x2 ∨ ¬ x3 ∨ x4 ∨ x5 ∨ ¬x6 ∨ x7

3. Между населёнными пунк­та­ми А, В, С, D, Е, F, Z по­стро­е­ны до­ро­ги, про­тяжённость ко­то­рых при­ве­де­на в таб­ли­це. (От­сут­ствие числа в таб­ли­це озна­ча­ет, что пря­мой до­ро­ги между пунк­та­ми нет.)



















































































ABCDEFZ
A4101534
B446
C1042
D156231115
E389
F1184
Z341594

Опре­де­ли­те длину крат­чай­ше­го пути между пунк­та­ми А и Z (при усло­вии, что пе­ре­дви­гать­ся можно толь­ко по по­стро­ен­ным до­ро­гам).

4. Во фраг­мен­те базы дан­ных пред­став­ле­ны све­де­ния о род­ствен­ных от­но­ше­ни­ях. На ос­но­ва­нии при­ведённых дан­ных опре­де­ли­те иден­ти­фи­ка­ци­он­ный номер (ID) род­но­го брата Решко В.А.




































































































Таб­ли­ца 1
IDФа­ми­лия_И.О.Пол
2272Ди­ко­вец А.Б.Ж
2228Ди­ко­вец Б.Ф.М
2299Ди­ко­вец И.Б.М
2378Ди­ко­вец П.И.М
2356Ди­ко­вец Т.И.Ж
2265Тесла А.И.Ж
2331Тесла А.П.М
2261Тесла Л.А.Ж
1217Тесла П.А.М
1202Лан­дау М.А.Ж
2227Решко Д.А.Ж
2240Решко В.А.Ж
2246Месяц К.Г.М
2387Лу­ки­на Р.Г.Ж
2293Фокс П.А.Ж
2322Друк Г.Р.Ж
.........














































































Таб­ли­ца 2
ID_Ро­ди­те­ляID_Ре­бен­ка
22272272
22272299
22282272
22282299
22722240
22721202
22721217
22992356
22992378
23222356
23222378
23312240
23311202
23311217
23872261
23872293
......


5. Для ко­ди­ро­ва­ния букв А, Б, В, Г ре­ши­ли ис­поль­зо­вать двух­раз­ряд­ные по­сле­до­ва­тель­ные дво­ич­ные числа (от 00 до 11 со­от­вет­ствен­но). За­ко­ди­руй­те таким об­ра­зом по­сле­до­ва­тель­ность сим­во­лов ГБВА и за­пи­шите ре­зуль­тат шест­на­дца­те­рич­ным кодом.



6. Це­поч­ка из трёх бусин, по­ме­чен­ных ла­тин­ски­ми буква­ми, фор­ми­ру­ет­ся по сле­ду­ю­ще­му пра­ви­лу. В конце це­поч­ки стоит одна из бусин W, X, Y, Z. В се­ре­ди­не — одна из бусин V, W, Z, ко­то­рой нет на по­след­нем месте. На пер­вом месте — одна из бусин X, У, Z, не сто­я­щая на вто­ром месте.
Какая из пе­ре­чис­лен­ных це­по­чек со­зда­на по этому пра­ви­лу?

1) XZZ
2) ZXY
3) YWV
4) YWY
7. В ячей­ке СЗ элек­трон­ной таб­ли­цы за­пи­са­на фор­му­ле =$А$1+В1. Какой вид будет иметь фор­му­ла, если ячей­ку СЗ ско­пи­ро­вать в ячей­ку ВЗ?



1) =$A$1+А1
2) =$В$1+ВЗ
3) =$А$1+ВЗ
4) =$B$1+C1
8. Опре­де­ли­те, что будет на­пе­ча­та­но в ре­зуль­та­те вы­пол­не­ния про­грам­мы

var n, s: integer;
begin
  n := 4;
  s := 0;
  while n <= 8 do
  begin
   s := s + 15;
    n := n + 1
  end;
  write(s)
end.
9. Про­из­во­дит­ся двух­ка­наль­ная (сте­рео) зву­ко­за­пись с ча­сто­той дис­кре­ти­за­ции 48 кГц и 24-бит­ным раз­ре­ше­ни­ем. Ре­зуль­та­ты за­пи­сы­ва­ют­ся в файл, раз­мер по­лу­чен­но­го файла — 3 Мбайт; сжа­тие дан­ных не про­из­во­ди­лось. Какая из при­ведённых ниже ве­ли­чин наи­бо­лее близ­ка к вре­ме­ни, в те­че­ние ко­то­ро­го про­ис­хо­ди­ла за­пись?

1) 5 сек.
2) 10 сек.
3) 15 сек.
4) 20 сек.
10. Для пе­ре­да­чи ава­рий­ных сиг­на­лов до­го­во­ри­лись ис­поль­зо­вать спе­ци­аль­ные цвет­ные сиг­наль­ные ра­ке­ты, за­пус­ка­е­мые по­сле­до­ва­тель­но. Одна по­сле­до­ва­тель­ность ракет — один сиг­нал; в каком по­ряд­ке идут цвета — су­ще­ствен­но. Какое ко­ли­че­ство раз­лич­ных сиг­на­лов можно пе­ре­дать при по­мо­щи за­пус­ка ровно четырёх таких сиг­наль­ных ракет, если в за­па­се име­ют­ся ра­ке­ты четырёх раз­лич­ных цве­тов (ракет каж­до­го вида не­огра­ни­чен­ное ко­ли­че­ство, цвет ракет в по­сле­до­ва­тель­но­сти может по­вто­рять­ся)?
11. Ал­го­ритм вы­чис­ле­ния зна­че­ния функ­ции F(n), где n — на­ту­раль­ное число, задан сле­ду­ю­щи­ми со­от­но­ше­ни­я­ми:

F(n) = n + 1 при n =< 2;
F(n) = 2 · F(n − 1) + F(n − 2) при n > 2.

Чему равно зна­че­ние функ­ции F(4)? В от­ве­те за­пи­ши­те толь­ко на­ту­раль­ное число.
12. В тер­ми­но­ло­гии сетей TCP/IP маска сети — это дво­ич­ное число, мень­шее 232; в маске сна­ча­ла (в стар­ших раз­ря­дах) стоят еди­ни­цы, а затем с не­ко­то­ро­го места нули. Маска опре­де­ля­ет, какая часть IP-ад­ре­са узла сети от­но­сит­ся к ад­ре­су сети, а какая – к ад­ре­су са­мо­го узла в этой сети. Обыч­но маска за­пи­сы­ва­ет­ся по тем же пра­ви­лам, что и IP-адрес — в виде четырёх байт, причём каж­дый байт за­пи­сы­ва­ет­ся в виде де­ся­тич­но­го числа. Адрес сети по­лу­ча­ет­ся в ре­зуль­та­те при­ме­не­ния по­раз­ряд­ной конъ­юнк­ции к за­дан­но­му IP-ад­ре­су узла и маске. На­при­мер, если IP-адрес узла равен 231.32.255.131, а маска равна 255.255.240.0, то адрес сети равен 231.32. 240.0.
Для узла с IP-ад­ре­сом 224.128.112.142 адрес сети равен 224.128.64.0. Чему равен тре­тий слева байт маски? Ответ за­пи­ши­те в виде де­ся­тич­но­го числа.
13. В не­ко­то­рой стра­не ав­то­мо­биль­ный номер дли­ной 10 сим­волов со­став­ля­ют из за­глав­ных букв (ис­поль­зу­ют­ся толь­ко 21 раз­лич­ная буква) и де­ся­тич­ных цифр в любом по­ряд­ке.
Каж­дый такой номер в ком­пью­тер­ной про­грам­ме за­пи­сы­ва­ется ми­ни­маль­но воз­мож­ным и оди­на­ко­вым целым ко­ли­чест­вом бай­тов (при этом ис­поль­зу­ют по­сим­воль­ное ко­ди­ро­ва­ние и все сим­во­лы ко­ди­ру­ют­ся оди­на­ко­вым и ми­ни­маль­но воз­мож­ным ко­ли­че­ством битов).
Опре­де­ли­те объём па­мя­ти, от­во­ди­мый этой про­грам­мой для за­пи­си 81 но­ме­ров. (Ответ дайте в бай­тах.)

14. Си­сте­ма ко­манд ис­пол­ни­те­ля РОБОТ, «жи­ву­ще­го» в пря­мо­уголь­ном ла­би­рин­те на клет­ча­той плос­ко­сти:


вверхвнизвлевовпра­во
При вы­пол­не­нии этих ко­манд РОБОТ пе­ре­ме­ща­ет­ся на одну клет­ку со­от­вет­ствен­но: вверх ↑, вниз ↓, влево ←, впра­во →.
Че­ты­ре ко­ман­ды про­ве­ря­ют ис­тин­ность усло­вия от­сут­ствия стены у той клет­ки, где на­хо­дит­ся РОБОТ:

свер­ху
сво­бод­но
снизу
сво­бод­но
слева
сво­бод­но
спра­ва
сво­бод­но
Цикл
ПОКА <усло­вие> ко­ман­да
вы­пол­ня­ет­ся, пока усло­вие ис­тин­но, иначе про­ис­хо­дит пе­ре­ход на сле­ду­ю­щую стро­ку.
Сколь­ко кле­ток при­ве­ден­но­го ла­би­рин­та со­от­вет­ству­ет тре­бо­ва­нию, что, вы­пол­нив пред­ло­жен­ную ниже про­грам­му, РОБОТ оста­но­вит­ся в той же клет­ке, с ко­то­рой он начал дви­же­ние?

НА­ЧА­ЛО
ПОКА <спра­ва сво­бод­но> впра­во
ПОКА <снизу сво­бод­но> вниз
ПОКА <слева сво­бод­но> влево
ПОКА <свер­ху сво­бод­но> вверх
КОНЕЦ


15. На ри­сун­ке изоб­ра­же­на схема до­ро­го, свя­зы­ва­ю­щих го­ро­да A, B, C, D, E, F, G, H, K, L, M. По каж­дой до­ро­ге можно дви­гать­ся толь­ко в одном на­прав­ле­нии, ука­зан­ном стрел­кой. Сколь­ко су­ще­ству­ет раз­лич­ных путей из го­ро­да A в город M?
16. Ука­жи­те через за­пя­тую в по­ряд­ке воз­рас­та­ния все ос­но­ва­ния си­стем счис­ле­ния, в ко­то­рых за­пись числа 75 окан­чи­ва­ет­ся на 13.
17. Каким усло­ви­ем нужно вос­поль­зо­вать­ся для по­ис­ка в сети Ин­тер­нет ин­фор­ма­ции о цве­тах, рас­ту­щих на ост­ро­ве Тай­вань или Хонсю

1) цветы & (Тай­вань | Хонсю)
2) цветы & Тай­вань & Хонсю
3) цветы | Тай­вань | Хонсю
4) цветы & (ост­ров | Тай­вань | Хонсю)

18. На чис­ло­вой пря­мой даны два от­рез­ка: P = [10, 35] и Q = [17, 48].
Ука­жи­те наи­боль­шую воз­мож­ную длину от­рез­ка A, для ко­то­ро­го фор­му­ла
((x  A) → ¬(x  P)) → ((x  A) → (x  Q))
тож­де­ствен­но ис­тин­на, то есть при­ни­ма­ет зна­че­ние 1 при любом зна­че­нии пе­ре­мен­ной х.
19. В про­грам­ме ис­поль­зу­ет­ся од­но­мер­ный це­ло­чис­лен­ный мас­сив A с ин­дек­са­ми от 0 до 9. Зна­че­ния эле­мен­тов равны 6; 4; 5; 4; 3; 3; 9; 8; 6; 2 со­от­вет­ствен­но, т.е. A[0] = 6; A[1] = 4 и т.д.
Опре­де­ли­те зна­че­ние пе­ре­мен­ной c после вы­пол­не­ния сле­ду­ю­ще­го фраг­мен­та про­грам­мы, за­пи­сан­но­го ниже на раз­ных язы­ках про­грам­ми­ро­ва­ния.





Бей­сикPython
c = 0
FOR i = 1 TO 9
    IF A(i - 1) < A(i) THEN
        t = A(i)
        A(i) = A(i - 1)
        A(i - 1) = t
        c = c + 1
    ENDIF
NEXT i
c = 0
for i in range(1, 10):
    if A[i - 1] < A[i]:
        t = A[i]
        A[i] = A[i - 1]
        A[i - 1] = t
        c = c + 1
Ал­го­рит­ми­че­ский языкПас­каль
c := 0
нц для i от 1 до 9
    если A[i - 1] < A[i] то
        t := A[i]
        A[i] := A[i - 1]
        A[i - 1] := t
        c := c + 1
    все
кц
c := 0;
for i := 1 to 9 do
    if A[i - 1] < A[i] then
    begin
        t := A[i];
        A[i] := A[i - 1];
        A[i - 1] := t;
        c := c + 1;
    end;
Си
c = 0;
for (i = 1; i <= 9; i++)
    if (A[i - 1] < A[i])
    {
        t = A[i];
        A[i] = A[i - 1];
        A[i - 1] = t;
        c++;
    }
20. Ниже на четырёх язы­ках про­грам­ми­ро­ва­ния за­пи­сан ал­го­ритм. По­лу­чив на вход число N, этот ал­го­ритм пе­ча­та­ет число q. Ука­жи­те наи­мень­шее из таких чисел N, при вводе ко­то­ро­го ал­го­ритм на­пе­ча­та­ет 13.


Бей­сикПас­каль

DIM N, q, i AS INTEGER
INPUT N
FOR i = 1 TO N - 1
IF N MOD i = 0 THEN q = i
NEXT i
PRINT q
var N, q, i: integer;begin
read(N);
for i : = 1 to N - 1 do begin
if N mod i = 0 then q : = i
end;
write(q)
end.
СиАл­го­рит­ми­че­ский язык

#include<stdio.h>
void main()
{
int N, q, i;
scanf("%d", &N);
for (i = 1; i <= N - 1; i++) {
if (N%i == 0) q = i;
}
printf("%d", q);
}
алг
нач
цел N, q, i
ввод N
нц для i от 1 до N - 1
если mod(N, i) = 0
то q : = i все
кц
вывод q
кон
21. На­пи­ши­те в от­ве­те число, ко­то­рое будет на­пе­ча­та­но в ре­зуль­та­те вы­пол­не­ния сле­ду­ю­ще­го ал­го­рит­ма (для ва­ше­го удоб­ства ал­го­ритм пред­став­лен на четырёх язы­ках).

Бей­сикПас­каль
DIM A, B, T, M, R AS INTEGER
A = -11: B = 11
M = A: R = F(А)
FOR T = A TO B
    IF F(T) <= R THEN
        M = T
        R = F(T)
    END IF
NEXT T
PRINT M+23
FUNCTION F(x)
    F = (x*x-4)*(x*x-4)+11
END FUNCTION
var a,b,t,M,R: integer;
    Function F(x:integer): integer;
        begin
            F := (x*x-4)*(x*x-4)+11
        end;
begin
    a := -11; b := 11;
    M := a; R := F(a);
    for t := a to b do begin
        if (F(t) <= R) then begin
            M := t;
            R := F(t)
        end
    end;
    write(M+23)
end.
СиАл­го­рит­ми­че­ский
#include <stdio.h>
int F(int x)
{
    return (x*x-4)*(x*x-4)+11;
}
void main()
{
    int a, b, t, M, R;
    a = -11; b = 11;
    M = a; R = F(a);
    for (t = a; t <= b; t++) {
        if (F(t) <= R) {
            M = t; R = F(t);
        }
    }
    printf("%d", M+23);
}
алг
нач
цел a, b, t, M, R
a := -11; b := 11
M := a; R := F(a)
нц для t от a до b
если F(t) <= R
то
M := t; R := F(t)
все
кц
вывод M + 23
кон
алг цел F(цел x)
нач
знач := (x*x-4)*(x*x-4)+11
кон
22. У ис­пол­ни­те­ля Плю­сик две ко­ман­ды:


1.при­бавь 6,
2.вычти 3.


Пер­вая из них уве­ли­чи­ва­ет число на экра­не на 6, вто­рая – умень­ша­ет его на 3. Плю­сик умеет про­из­во­дить дей­ствия толь­ко с по­ло­жи­тель­ны­ми чис­ла­ми. Если в ходе вы­чис­ле­ний по­яв­ля­ет­ся от­ри­ца­тель­ное число, он вы­хо­дит из строя и сти­ра­ет на­пи­сан­ное на экра­не.
Про­грам­ма для Плю­си­ка – это по­сле­до­ва­тель­ность ко­манд.
Сколь­ко раз­лич­ных чисел можно по­лу­чить из числа 1 с по­мо­щью про­грам­мы, ко­то­рая со­дер­жит ровно 10 ко­манд?

23. A, B и С — целые числа, для ко­то­рых ис­тин­но вы­ска­зы­ва­ние


¬ (А = B) ∧ ((A > B)→(B > C)) ∧ ((B > A)→(С > B)).

Чему равно В, если A = 45 и C = 43?
24. Тре­бо­ва­лось на­пи­сать про­грам­му, при вы­пол­не­нии ко­то­рой с кла­ви­а­ту­ры счи­ты­ва­ет­ся на­ту­раль­ное число N, не пре­вос­хо­дя­щее 109, и вы­во­дит­ся ми­ни­маль­ная цифра этого числа. Про­грам­мист то­ро­пил­ся и на­пи­сал про­грам­му не­пра­виль­но. (Ниже для Ва­ше­го удоб­ства про­грам­ма пред­став­ле­на на четырёх язы­ках про­грам­ми­ро­ва­ния.)



Бэй­сикПас­каль
DIM N AS LONG
INPUT N
min_digit = 0
WHILE N > 0
    digit = N MOD 10
    IF digit < min_digit THEN
        min_digit = digit
    END IF
    N = N \ 10
WEND
PRINT digit
END
var N: longint;
    digit, min_digit: integer;
begin
    readln(N);
    min_digit := 0;
    while N > 0 do
    begin
        digit := N mod 10;
        if digit < min_digit then
            min_digit := digit;
        N := N div 10;
    end;
    writeln(digit);
end.
СиАл­го­рит­ми­че­ский язык

#include <stdio.h>
int main()
{
    long int N;
    int digit, min_digit;
    scanf(H%ld", &N);
    min_digit = 0;
    while (N > 0)
    {
        digit = N % 10;
        if (digit < min_digit)
            min_digit = digit;
        N = N / 10;
    }
    printf("%d", digit);
}
алг
нач
    цел N, digit, min_digit
    ввод N
    min_digit := 0
    нц пока N > 0
        digit := mod(N, 10)
        если digit < min_digit то
            min_digit := digit
        все
        N := div(N, 10)
    кц
    вывод digit
кон

По­сле­до­ва­тель­но вы­пол­ни­те сле­ду­ю­щее.
1. На­пи­ши­те, что вы­ве­дет эта про­грам­ма при вводе числа 862.
2. Най­ди­те все ошиб­ки в этой про­грам­ме (их может быть одна или не­сколь­ко). Для каж­дой ошиб­ки:
1) вы­пи­ши­те стро­ку, в ко­то­рой сде­ла­на ошиб­ка;
2) ука­жи­те, как ис­пра­вить ошиб­ку, — при­ве­ди­те пра­виль­ный ва­ри­ант стро­ки.
Об­ра­ти­те вни­ма­ние, что тре­бу­ет­ся найти ошиб­ки в име­ю­щей­ся про­грам­ме, а не на­пи­сать свою, воз­мож­но, ис­поль­зу­ю­щую дру­гой ал­го­ритм ре­ше­ния. Ис­прав­ле­ние ошиб­ки долж­но за­тра­ги­вать толь­ко стро­ку, в ко­то­рой на­хо­дит­ся ошиб­ка.
25. Дан це­ло­чис­лен­ный мас­сив из 20 эле­мен­тов. Эле­мен­ты мас­си­ва могут при­ни­мать целые зна­че­ния от –1000 до 1000 вклю­чи­тель­но. Опи­ши­те на есте­ствен­ном языке или на одном из язы­ков про­грам­ми­ро­ва­ния ал­го­ритм, поз­во­ля­ю­щий найти и вы­ве­сти ми­ни­маль­ное зна­че­ние среди по­ло­жи­тель­ных эле­мен­тов мас­си­ва, крат­ных 8. Если в ис­ход­ном мас­си­ве нет эле­мен­та, зна­че­ние ко­то­ро­го по­ло­жи­тель­но и де­лит­ся на 8, то вы­ве­сти со­об­ще­ние «Не най­де­но». Ис­ход­ные дан­ные объ­яв­ле­ны так, как по­ка­за­но ниже на при­ме­рах для не­ко­то­рых язы­ков про­грам­ми­ро­ва­ния и есте­ствен­но­го языка. За­пре­ща­ет­ся ис­поль­зо­вать пе­ре­мен­ные, не опи­сан­ные ниже, но раз­ре­ша­ет­ся не ис­поль­зо­вать не­ко­то­рые из опи­сан­ных пе­ре­мен­ных.

Бей­сикПас­каль

N = 20
DIM A(N) AS INTEGER
DIM I, J, MIN AS INTEGER
FOR I = 1 TO N
INPUT A(I)
NEXT I
...
END

const
N = 20;
var
a: array [1..N] of integer;
i, j, min: integer;
begin
for i := 1 to N do
readln(a[i]);
...
end.
СиАл­го­рит­ми­че­ский язык

#include <stdio.h>
#define N 20
void main() {
int a[N];
int i, j, min;
for (i = 0; i>N; i++)
scanf("% d", &a[i]);
...
}

алг
нач
цел N = 20
цел­таб a[1:N]
цел i, j, min
нц для i от 1 до N
ввод a[i]
кц
...
кон
Eсте­ствен­ный язык
Объ­яв­ля­ем мас­сив A из 20 эле­мен­тов.Объ­яв­ля­ем це­ло­чис­лен­ные пе­ре­мен­ные I, J, MIN.
В цикле от 1 до 20 вво­дим эле­мен­ты мас­си­ва A с 1-го по 20-й.
...

В ка­че­стве от­ве­та Вам не­об­хо­ди­мо при­ве­сти фраг­мент про­грам­мы (или опи­са­ние ал­го­рит­ма на есте­ствен­ном языке), ко­то­рый дол­жен на­хо­дить­ся на месте мно­го­то­чия. Вы мо­же­те за­пи­сать ре­ше­ние также на дру­гом языке про­грам­ми­ро­ва­ния (ука­жи­те на­зва­ние и ис­поль­зу­е­мую вер­сию языка про­грам­ми­ро­ва­ния, на­при­мер Free Pascal 2.4) или в виде блок-схемы. В этом слу­чае Вы долж­ны ис­поль­зо­вать те же самые ис­ход­ные дан­ные и пе­ре­мен­ные, какие были пред­ло­же­ны в усло­вии (на­при­мер, в об­раз­це, за­пи­сан­ном на есте­ствен­ном языке).
26. Два иг­ро­ка, Петя и Ваня, иг­ра­ют в сле­ду­ю­щую игру. Перед иг­ро­ка­ми лежит куча кам­ней. Иг­ро­ки ходят по оче­ре­ди, пер­вый ход де­ла­ет Петя. За один ход игрок может до­ба­вить в кучу один или два камня или уве­ли­чить ко­ли­че­ство кам­ней в куче в два раза. На­при­мер, имея кучу из 15 кам­ней, за один ход можно по­лу­чить кучу из 16, 17 или 30 кам­ней. У каж­до­го иг­ро­ка, чтобы де­лать ходы, есть не­огра­ни­чен­ное ко­ли­че­ство кам­ней.
Игра за­вер­ша­ет­ся в тот мо­мент, когда ко­ли­че­ство кам­ней в куче ста­но­вит­ся не менее 39. По­бе­ди­те­лем счи­та­ет­ся игрок, сде­лав­ший по­след­ний ход, то есть пер­вым по­лу­чив­ший кучу, в ко­то­рой будет 39 или боль­ше кам­ней. В на­чаль­ный мо­мент в куче было S кам­ней, 1 ≤ S ≤ 38.
Будем го­во­рить, что игрок имеет вы­иг­рыш­ную стра­те­гию, если он может вы­иг­рать при любых ходах про­тив­ни­ка. Опи­сать стра­те­гию иг­ро­ка — зна­чит опи­сать, какой ход он дол­жен сде­лать в любой си­ту­а­ции, ко­то­рая ему может встре­тить­ся при раз­лич­ной игре про­тив­ни­ка.
Вы­пол­ни­те сле­ду­ю­щие за­да­ния. Во всех слу­ча­ях обос­но­вы­вай­те свой ответ.
1. а) Ука­жи­те все такие зна­че­ния числа S, при ко­то­рых Петя может вы­иг­рать в один ход. Обос­нуй­те, что най­де­ны все нуж­ные зна­че­ния S, и ука­жи­те вы­иг­ры­ва­ю­щий ход для каж­до­го ука­зан­но­го зна­че­ния S.
б) Ука­жи­те такое зна­че­ние S, при ко­то­ром Петя не может вы­иг­рать за один ход, но при любом ходе Пети Ваня может вы­иг­рать своим пер­вым ходом. Опи­ши­те вы­иг­рыш­ную стра­те­гию Вани.
2. Ука­жи­те два таких зна­че­ния S, при ко­то­рых у Пети есть вы­иг­рыш­ная стра­те­гия, причём (а) Петя не может вы­иг­рать за один ход и (б) Петя может вы­иг­рать своим вто­рым ходом не­за­ви­си­мо от того, как будет хо­дить Ваня. Для каж­до­го ука­зан­но­го зна­че­ния S опи­ши­те вы­иг­рыш­ную стра­те­гию Пети.
3. Ука­жи­те зна­че­ние S, при ко­то­ром:
— у Вани есть вы­иг­рыш­ная стра­те­гия, поз­во­ля­ю­щая ему вы­иг­рать пер­вым или вто­рым ходом при любой игре Пети, и
— у Вани нет стра­те­гии, ко­то­рая поз­во­лит ему га­ран­ти­ро­ван­но вы­иг­рать пер­вым ходом.
Для ука­зан­но­го зна­че­ния S опи­ши­те вы­иг­рыш­ную стра­те­гию Вани. По­строй­те де­ре­во всех пар­тий, воз­мож­ных при этой вы­иг­рыш­ной стра­те­гии Вани (в виде ри­сун­ка или таб­ли­цы). На рёбрах де­ре­ва ука­зы­вай­те, кто де­ла­ет ход, в узлах — ко­ли­че­ство кам­ней в куче.
27. В фи­зи­че­ской ла­бо­ра­то­рии про­во­дит­ся дол­го­вре­мен­ный экс­пе­ри­мент по изу­че­нию гра­ви­та­ци­он­но­го поля Земли. По ка­на­лу связи каж­дую ми­ну­ту в ла­бо­ра­то­рию пе­ре­даётся по­ло­жи­тель­ное целое число – те­ку­щее по­ка­за­ние при­бо­ра «Сигма 2015». Ко­ли­че­ство пе­ре­да­ва­е­мых чисел в серии из­вест­но и не пре­вы­ша­ет 10 000. Все числа не пре­вы­ша­ют 1000. Вре­ме­нем, в те­че­ние ко­то­ро­го про­ис­хо­дит пе­ре­да­ча, можно пре­не­бречь.
Не­об­хо­ди­мо вы­чис­лить «бета-зна­че­ние» серии по­ка­за­ний при­бо­ра – ми­ни­маль­ное чётное про­из­ве­де­ние двух по­ка­за­ний, между мо­мен­та­ми пе­ре­да­чи ко­то­рых про­шло не менее 6 минут. Если по­лу­чить такое про­из­ве­де­ние не удаётся, ответ счи­та­ет­ся рав­ным –1.

Вам пред­ла­га­ет­ся два за­да­ния, свя­зан­ных с этой за­да­чей: за­да­ние А и за­да­ние Б. Вы мо­же­те ре­шать оба за­да­ния или одно из них по сво­е­му вы­бо­ру. Ито­го­вая оцен­ка вы­став­ля­ет­ся как мак­си­маль­ная из оце­нок за за­да­ния А и Б. Если ре­ше­ние од­но­го из за­да­ний не пред­став­ле­но, то счи­та­ет­ся, что оцен­ка за это за­да­ние – 0 бал­лов. За­да­ние Б яв­ля­ет­ся усложнённым ва­ри­ан­том за­да­ния А, оно со­дер­жит до­пол­ни­тель­ные тре­бо­ва­ния к про­грам­ме.
А. На­пи­ши­те на любом языке про­грам­ми­ро­ва­ния про­грам­му для ре­ше­ния по­став­лен­ной за­да­чи, в ко­то­рой вход­ные дан­ные будут за­по­ми­нать­ся в мас­си­ве, после чего будут про­ве­ре­ны все воз­мож­ные пары эле­мен­тов. Перед про­грам­мой ука­жи­те вер­сию языка про­грам­ми­ро­ва­ния.
ОБЯ­ЗА­ТЕЛЬ­НО ука­жи­те, что про­грам­ма яв­ля­ет­ся ре­ше­ни­ем ЗА­ДА­НИЯ А.
Мак­си­маль­ная оцен­ка за вы­пол­не­ние за­да­ния А – 2 балла.
Б. На­пи­ши­те про­грам­му для ре­ше­ния по­став­лен­ной за­да­чи, ко­то­рая будет эф­фек­тив­на как по вре­ме­ни, так и по па­мя­ти (или хотя бы по одной из этих ха­рак­те­ри­стик).
Про­грам­ма счи­та­ет­ся эф­фек­тив­ной по вре­ме­ни, если время ра­бо­ты
про­грам­мы про­пор­ци­о­наль­но ко­ли­че­ству по­лу­чен­ных по­ка­за­ний при­бо­ра N, т.е. при уве­ли­че­нии N в k раз время ра­бо­ты про­грам­мы долж­но уве­ли­чи­вать­ся не более чем в k раз.
Про­грам­ма счи­та­ет­ся эф­фек­тив­ной по па­мя­ти, если раз­мер па­мя­ти, ис­поль­зо­ван­ной в про­грам­ме для хра­не­ния дан­ных, не за­ви­сит от числа N и не пре­вы­ша­ет 1 ки­ло­бай­та.
Перед про­грам­мой ука­жи­те вер­сию языка про­грам­ми­ро­ва­ния и крат­ко опи­ши­те ис­поль­зо­ван­ный ал­го­ритм.
ОБЯ­ЗА­ТЕЛЬ­НО ука­жи­те, что про­грам­ма яв­ля­ет­ся ре­ше­ни­ем ЗА­ДА­НИЯ Б.
Мак­си­маль­ная оцен­ка за пра­виль­ную про­грам­му, эф­фек­тив­ную по вре­ме­ни и по па­мя­ти, – 4 балла.
Мак­си­маль­ная оцен­ка за пра­виль­ную про­грам­му, эф­фек­тив­ную по вре­ме­ни, но не­эф­фек­тив­ную по па­мя­ти, – 3 балла. НА­ПО­МИ­НА­ЕМ! Не за­будь­те ука­зать, к ка­ко­му за­да­нию от­но­сит­ся каж­дая из пред­став­лен­ных Вами про­грамм.
Вход­ные дан­ные пред­став­ле­ны сле­ду­ю­щим об­ра­зом. В пер­вой стро­ке задаётся число N – общее ко­ли­че­ство по­ка­за­ний при­бо­ра. Га­ран­ти­ру­ет­ся, что N > 6. В каж­дой из сле­ду­ю­щих N строк задаётся одно по­ло­жи­тель­ное целое число – оче­ред­ное по­ка­за­ние при­бо­ра.
При­мер вход­ных дан­ных:
11
12
45
5
3
17
23
21
20
19
18
17
Про­грам­ма долж­на вы­ве­сти одно число – опи­сан­ное в усло­вии про­из­ве­де­ние либо –1, если по­лу­чить такое про­из­ве­де­ние не удаётся.
При­мер вы­ход­ных дан­ных для при­ведённого выше при­ме­ра вход­ных дан­ных:
54

Комментариев нет:

Отправить комментарий