Преобразование плохого псевдокода в Java - PullRequest
0 голосов
/ 16 марта 2011

Хорошо, у меня есть два бита псевдокода, которые необходимо преобразовать в код Java, за исключением того, что псевдо не очень хорошо, и я вряд ли хорош, даже когда это хорошо. В любом случае, я надеялся, что кто-то может помочь.

Вот первый бит псевдокода:

  1. Создайте случайное целое число p в диапазоне от 0 до n-1.
  2. Создайте пустую новую строку скажемx.
  3. Копировать из элементов 0 в p-1 из scasol в x.
  4. Копировать измененную версию позиции p строки scasol в x.
  5. Копировать из p +От 1 до n-1 от scasol до x.
  6. Установите для scasol значение x.

И вот код, который у меня есть для этого (я в основном сделал первыйдва шага, но я застрял после этого):

public void SmallChange()

   {
     Random rand = new Random();
     rand.setSeed(System.currentTimeMillis());


     int n = scasol.length();
     int p = Math.abs(rand.nextInt() % n);
     String x;


     if(n<0){

  }

}

Вот второй кусок кода, который я не могу преобразовать в Java (я еще ничего не сделал для этого, так как я полностью озадачен):

  1. Нам нужно добавить цикл For, который выполняет итерацию для указанного количества итераций.
  2. Нам нужно создать начальное случайное решение размера n.
  3. Нам нужно оценить пригодность нашего текущего решения в цикле.
  4. Нам нужно скопировать текущее решение (скажем, oldsol).
  5. МыСделайте небольшое изменение в текущем решении и оцените пригодность для другой переменной.
  6. Если новая пригодность хуже старой, мы копируем oldsol в наше текущее решение.
  7. ПослеПоскольку цикл завершен, мы возвращаем текущее решение.

Первая проблема состоит в том, чтобы завершить небольшое изменение, в то время как вторая заключается в создании алгоритма скалолазания по случайной мутации, но да, застрявший - не то слово.Я надеюсь, что кто-то может помочь, я был бы очень признателен за любую помощь, так как я пытался сделать это в течение нескольких дней!

1 Ответ

1 голос
/ 16 марта 2011

Первый бит псевдокода говорит:

вставить «измененную версию» в произвольной позиции в текстовом скасле. Неясно, на что ссылается утверждение «измененная версия».

Вставка символа в строку - простая задача в Java.
См. общедоступная вставка StringBuilder (смещение int, символ c)

Второй фрагмент псевдокода остро нуждается в контексте и разъяснении.

...