За какое минимальное количество перестановок из последовательности :)):):): можно получить
За какое малое количество перестановок из последовательности :)):):):
можно получить наибольшее количество смайликов :)? Под перестановкой понимается подмена друг на друга 2-ух непересекающихся фрагментов последовательности схожей длины.
А) 1 Б) 2 В)3 Г) 4
2 ответа
Витька Меджедов
Так с наскоку увидеть перестановку не вышло, и для улучшения зрения изготовлена программка
Вероятные перестановки хранятся в массиве Xchng.
В программке изготовлена проверка на две перестановки, что, по великому счёту избыточно, т.к. кратчайшее решение содержит всего одну перестановку. но дополнить программку проверками на 3 и 4 перестановку можно.
----------------------------------------------------------
program pr_1;
type Xchng_type = record
len, first, second: integer;
end;
const Xchng: array [1..50] of Xchng_type =
(
(len: 4; first: 1; second: 5),
(len: 3; first: 1; second: 4),
(len: 3; first: 1; second: 5),
(len: 3; first: 1; second: 6),
(len: 3; first: 2; second: 5),
(len: 3; first: 2; second: 6),
(len: 3; first: 3; second: 6),
(len: 2; first: 1; second: 3),
(len: 2; first: 1; second: 4),
(len: 2; first: 1; second: 5),
(len: 2; first: 1; second: 6),
(len: 2; first: 1; second: 7),
(len: 2; first: 2; second: 4),
(len: 2; first: 2; second: 5),
(len: 2; first: 2; second: 6),
(len: 2; first: 2; second: 7),
(len: 2; first: 3; second: 5),
(len: 2; first: 3; second: 6),
(len: 2; first: 3; second: 7),
(len: 2; first: 4; second: 6),
(len: 2; first: 4; second: 7),
(len: 2; first: 5; second: 7),
(len: 1; first: 1; second: 2),
(len: 1; first: 1; second: 3),
(len: 1; first: 1; second: 4),
(len: 1; first: 1; second: 5),
(len: 1; first: 1; second: 6),
(len: 1; first: 1; second: 7),
(len: 1; first: 1; second: 8),
(len: 1; first: 2; second: 3),
(len: 1; first: 2; second: 4),
(len: 1; first: 2; second: 5),
(len: 1; first: 2; second: 6),
(len: 1; first: 2; second: 7),
(len: 1; first: 2; second: 8),
(len: 1; first: 3; second: 4),
(len: 1; first: 3; second: 5),
(len: 1; first: 3; second: 6),
(len: 1; first: 3; second: 7),
(len: 1; first: 3; second: 8),
(len: 1; first: 4; second: 5),
(len: 1; first: 4; second: 6),
(len: 1; first: 4; second: 7),
(len: 1; first: 4; second: 8),
(len: 1; first: 5; second: 6),
(len: 1; first: 5; second: 7),
(len: 1; first: 5; second: 8),
(len: 1; first: 6; second: 7),
(len: 1; first: 6; second: 8),
(len: 1; first: 7; second: 8)
);
var
s, s_target, s1, s2, s3, s4, s5, snew1, snew2, snew3, snew4: string;
p1,p2,p3,p4: integer;
begin
s := ':)):):):';
s_target := ':):):):)';
//s:='abcdefgh';
for p1 := 1 to 50 do
begin
snew1 := concat(
Copy(s, 1, Xchng[p1].first - 1), Copy(s, Xchng[p1].second, Xchng[p1].len),
Copy(s, Xchng[p1].first + Xchng[p1].len, Xchng[p1].second - Xchng[p1].len - Xchng[p1].first),
Copy(s, Xchng[p1].first, Xchng[p1].len),
Copy(s, Xchng[p1].second + Xchng[p1].len, 9 - Xchng[p1].second - Xchng[p1].len));
if(CompareStr(s_target, snew1) = 0) then writeln('число перестановок = 1, номер перестановки 1=', p1);
for p2 := 1 to 50 do
begin
snew2 := concat(
Copy(snew1, 1, Xchng[p1].first - 1),
Copy(snew1, Xchng[p2].second, Xchng[p2].len),
Copy(snew1, Xchng[p2].first + Xchng[p2].len, Xchng[p2].second - Xchng[p2].len - Xchng[p2].first),
Copy(snew1, Xchng[p2].first, Xchng[p2].len),
Copy(snew1, Xchng[p2].second + Xchng[p2].len, 9 - Xchng[p2].second - Xchng[p2].len));
if(CompareStr(s_target, snew2) = 0) then writeln('число перестановок = 2, номера перестановок 1=', p1,', 2=', p2);
end;
end;
end.
-----------------------------
И вот ответ:
число перестановок = 1, номер перестановки 1=7 длина блока 3 начало первого блока3 начало второго блока6
Вероятные перестановки хранятся в массиве Xchng.
В программке изготовлена проверка на две перестановки, что, по великому счёту избыточно, т.к. кратчайшее решение содержит всего одну перестановку. но дополнить программку проверками на 3 и 4 перестановку можно.
----------------------------------------------------------
program pr_1;
type Xchng_type = record
len, first, second: integer;
end;
const Xchng: array [1..50] of Xchng_type =
(
(len: 4; first: 1; second: 5),
(len: 3; first: 1; second: 4),
(len: 3; first: 1; second: 5),
(len: 3; first: 1; second: 6),
(len: 3; first: 2; second: 5),
(len: 3; first: 2; second: 6),
(len: 3; first: 3; second: 6),
(len: 2; first: 1; second: 3),
(len: 2; first: 1; second: 4),
(len: 2; first: 1; second: 5),
(len: 2; first: 1; second: 6),
(len: 2; first: 1; second: 7),
(len: 2; first: 2; second: 4),
(len: 2; first: 2; second: 5),
(len: 2; first: 2; second: 6),
(len: 2; first: 2; second: 7),
(len: 2; first: 3; second: 5),
(len: 2; first: 3; second: 6),
(len: 2; first: 3; second: 7),
(len: 2; first: 4; second: 6),
(len: 2; first: 4; second: 7),
(len: 2; first: 5; second: 7),
(len: 1; first: 1; second: 2),
(len: 1; first: 1; second: 3),
(len: 1; first: 1; second: 4),
(len: 1; first: 1; second: 5),
(len: 1; first: 1; second: 6),
(len: 1; first: 1; second: 7),
(len: 1; first: 1; second: 8),
(len: 1; first: 2; second: 3),
(len: 1; first: 2; second: 4),
(len: 1; first: 2; second: 5),
(len: 1; first: 2; second: 6),
(len: 1; first: 2; second: 7),
(len: 1; first: 2; second: 8),
(len: 1; first: 3; second: 4),
(len: 1; first: 3; second: 5),
(len: 1; first: 3; second: 6),
(len: 1; first: 3; second: 7),
(len: 1; first: 3; second: 8),
(len: 1; first: 4; second: 5),
(len: 1; first: 4; second: 6),
(len: 1; first: 4; second: 7),
(len: 1; first: 4; second: 8),
(len: 1; first: 5; second: 6),
(len: 1; first: 5; second: 7),
(len: 1; first: 5; second: 8),
(len: 1; first: 6; second: 7),
(len: 1; first: 6; second: 8),
(len: 1; first: 7; second: 8)
);
var
s, s_target, s1, s2, s3, s4, s5, snew1, snew2, snew3, snew4: string;
p1,p2,p3,p4: integer;
begin
s := ':)):):):';
s_target := ':):):):)';
//s:='abcdefgh';
for p1 := 1 to 50 do
begin
snew1 := concat(
Copy(s, 1, Xchng[p1].first - 1), Copy(s, Xchng[p1].second, Xchng[p1].len),
Copy(s, Xchng[p1].first + Xchng[p1].len, Xchng[p1].second - Xchng[p1].len - Xchng[p1].first),
Copy(s, Xchng[p1].first, Xchng[p1].len),
Copy(s, Xchng[p1].second + Xchng[p1].len, 9 - Xchng[p1].second - Xchng[p1].len));
if(CompareStr(s_target, snew1) = 0) then writeln('число перестановок = 1, номер перестановки 1=', p1);
for p2 := 1 to 50 do
begin
snew2 := concat(
Copy(snew1, 1, Xchng[p1].first - 1),
Copy(snew1, Xchng[p2].second, Xchng[p2].len),
Copy(snew1, Xchng[p2].first + Xchng[p2].len, Xchng[p2].second - Xchng[p2].len - Xchng[p2].first),
Copy(snew1, Xchng[p2].first, Xchng[p2].len),
Copy(snew1, Xchng[p2].second + Xchng[p2].len, 9 - Xchng[p2].second - Xchng[p2].len));
if(CompareStr(s_target, snew2) = 0) then writeln('число перестановок = 2, номера перестановок 1=', p1,', 2=', p2);
end;
end;
end.
-----------------------------
И вот ответ:
число перестановок = 1, номер перестановки 1=7 длина блока 3 начало первого блока3 начало второго блока6
, оставишь ответ?
Похожие вопросы
-
Вопросы ответы
Новое
NEW
Статьи
Информатика
Статьи
Последние вопросы
Игорь 14 лет назад был на 8 лет моложе, чем его
Математика.
Два тела массами m1 и m2 находящие на расстоянии R друг
Физика.
В сосуде 4целых одна пятая литр воды что бы заполнить сосуд
Математика.
Двум малярам Диме И Олегу поручили выкрасить фасад дома они разделили
Разные вопросы.
найти порядковый номер 41Э если в ядре 20 нейтронов
Разные вопросы.
в ряду натуральных чисел 3, 8, 10, 24, … 18 одно
Математика.
Предприятие по производству с/хоз продукции на производство затратило 3527000 руб Валовый
Разные вопросы.
Математика, задано на каникулы. ВАРИАНТ 1004
НОМЕР 1,2,3,4,5,6,7,8.
Математика.
Имеются три конденсатора емкостью С1=1мкФ, С2=2мкФ и С3=3мкФ. Какую наименьшую емкость
Физика.
Из точки м выходят 3 луча MP MN и MK причём
Геометрия.
Облако тегов