Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Шифровка текста

52K
25 ноября 2011 года
Gevorg
22 / / 10.04.2011
Такое задание : зафиксировали натуральное число k и перестановку чисел 1,...,k . При шифровке в исходном тексте к каждой из последующих групп по k символов применяется фиксированная перестановка . Например , пусть k=4 и перестановка есть 3,2,4,1 . Тогда группа символов s1,s2,s3,s4 заменится на s3,s2,s4,s1 . Пользуясь этим способом нужно зашифровать ,а затем расшифровать некоторый текст .
Первый раз такое задание , вообще не понимаю , как нужно делать . Единственное , что сообразил , это часть кода для ввода текста , а дальше очень надеюсь на вашу помощь . Может кто-то уже встречался с такого рода задачами ?
 
Код:
import java.util.*;
public class Number839 {
        public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        String text = in.nextLine();
        System.out.println(text);
        }
 
}
23K
25 ноября 2011 года
rafaelkyrdan
123 / / 03.05.2011
Примерный алгоритм решения:
1. Строку разбить на части длиной в k
2. Сохранить отдельные части в чем либо удобном для вас.
3. Для каждой отдельной части: разбить строку по символьно и сохранить в отдельных переменных.Провести перестоновку согласно алгоритму.
4.Собрать отдельные части в целую строку.

P.S Скорее всего после реализации данного алгоритма его придеться оптимизировать в целях экономии ресурсов.
:)
244
25 ноября 2011 года
UAS
2.0K / / 19.07.2006
Ну и что сложного? Всё же написано.

Код:
String s; // твоя входная строка с символами
int[] exchange = { 2, 1, 3, 0 }; // перестановка 3,2,4,1, из каждого вычли 1

// здесь необходимо дополнить s, чтобы было кратно 4

StringBuilder sb = new StringBuilder(); // результат шифровки
for(int offset = 0; offset < s.length(); offset+=4) {
    for(int i = 0; i < 4; i++) {
         sb.append( s.charAt(offset+exchange) );
    }
}

String encrypted = sb.toString(); // зашифрованная строка


Код писал не проверяя, так что возможны ошибки, но общий ход мысли понятен.
Обратное преобразование аналогично.
240
28 ноября 2011 года
aks
2.5K / / 14.07.2006
Цитата: Gevorg
Единственное , что сообразил , это часть кода для ввода текста , а дальше очень надеюсь на вашу помощь .


Ахаха, это шедевр. :D:facepalm:

10
28 ноября 2011 года
Freeman
3.2K / / 06.03.2004
Нас предупреждали.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог