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

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

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


Информатика (21 баллов)
оставил комментарий (21 баллов)

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

Дан 1 ответ
0 голосов
Архангел (142k баллов)
 
Правильный ответ

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

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

оставил комментарий Архангел (142k баллов)

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

оставил комментарий (21 баллов)

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

оставил комментарий Архангел (142k баллов)

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

оставил комментарий Архангел (142k баллов)

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

оставил комментарий Архангел (142k баллов)

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

оставил комментарий (21 баллов)

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

оставил комментарий Архангел (142k баллов)

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

оставил комментарий Архангел (142k баллов)

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

оставил комментарий Архангел (142k баллов)

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

оставил комментарий Архангел (142k баллов)

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

...