Задача в Паскаль. Дано слово. Перемешать все буквы в слове случайным образом.

0 голосов
54 просмотров

Задача в Паскаль. Дано слово. Перемешать все буквы в слове случайным образом.


Информатика (21 баллов) | 54 просмотров
0

Пожалуйста, нужна программа!!!!

Дан 1 ответ
0 голосов
Правильный ответ

// PascalABC.NET 3.1, сборка 1246 от 23.05.2016
begin
  ReadlnString('>').ToCharArray.Shuffle.Println('')
end.

Тестовое решение:
> Информатика
фмИатрниаок

(142k баллов)
0

И еще. Не нужно писать про "простые команды". Именно то, что написано - это ПРОСТОЕ решение. А то, о чем Вы, как я думаю, хотите сказать - будет во много раз длиннее и, следовательно, сложнее!

0

Ну ладно, и на том спасибо! Но к сожалению не смогу воспользоваться вашим решением!

0

Да, кстати, у Вас написано "Перемешать ВСЕ буквы в слове случайным образом". Вы хорошо подумали, насколько сложной будет такая программа, если строго следовать написанному? Мало того, что буквы нужно случайным образом перемешивать, еще нужно убеждаться, что ни одна из них не осталась на исходном месте. Это не такой уж тривиальный алгоритм...

0

Куда проще, например, считать перемешиванием обмен местами буквы из первой и случайной в пределах длины слова позиции. И выполнить этот процесс можно некоторое случайное количество раз, которое не менее половины длины слова.

0

Конечно, можно контролировать положение каждой буквы, но это потребует хранить исходные их позиции и определять каждый раз текущие... либо набор массивов, либо запись с пользовательской структурой)))

0

Ну вы уж загнули, не надо так сильно вникать в задачу! Мне кажется нужно использовать randomize. Просто перемешать буквы, но не знаю как именно записать программу.

0

randomize просто инициализирует датчик псевдослучайных чисел, чтобы при нескольких запусках программы она не порождала одну и ту же последовательность. К "просто перемешать" это не имеет никакого отношения.

0

"Не надо так сильно вникать в задачу...". Увы, надо. Это информатика. Вашу задачу исполняет компьютер - самый совершенный в мире Исполнитель. И он делает только то, что ему предписано. Поэтому очень важно, чтобы алгоритм соответствовал поставленной задаче. Будете относиться к этому моменту "легко" - проблемы с информатикой будут всегда.

0

Именно поэтому, важно понимать, можно ли считать задачу "Перемешать ВСЕ буквы в слове случайным образом" эквивалентной "Перемешать буквы в слове случайным образом"?

0

Первый вариант, как я уже писал, предполагает контроль перемешивания именно ВСЕХ букв, во втором такой контроль не нужен, потому что даже поменяв случайными местами всего две любые буквы в слове мы уже получим требуемый результат.