2011-03-16 7 views
0

좋아요. 그래서 의사 코드를 두 개 가지고 있습니다. 의사 코드는 Java 코드로 변환해야합니다. 의사 코드는 매우 좋지 않습니다. 좋은 코드 일 때도 좋습니다. 어쨌든 저는 기대하고있었습니다. 누군가 도움을 줄 수 있습니다.나쁜 의사 코드를 Java로 변환

  1. 0과 N-1 사이의 범위의 임의의 정수 p를 생성 :

    여기 의사 코드의 첫 번째 비트이다.

  2. x라는 빈 새 문자열을 만듭니다.
  3. 요소 0에서 p-1을 scasol에서 x로 복사합니다.
  4. 문자열 scasol의 위치 p의 변경된 버전을 x로 복사하십시오.
  5. scasol의 p + 1에서 n-1까지를 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){ 

    } 

} 

코드의 두 번째 작품이다 (내가 완전히 난처한 상황에 빠진거야 이후 아직이 일에 대해 아무 짓도하지 않은) 내가 자바로 변환 할 수 없습니다 :

  1. 우리는 반복의 지정된 번호를 루프를 들어 그 반복을를 추가해야합니다.
  2. 크기가 n 인 초기 무작위 솔루션을 만들어야합니다.
  3. 우리는 루프 내에서 우리의 현재 솔루션의 적합성을 평가해야합니다.
  4. 현재 솔루션 (예 : oldsol)을 복사해야합니다.
  5. 현재 솔루션을 약간 변경하고 다른 변수에 적합성을 평가합니다.
  6. 새로운 피트니스가 보다 오래되면 이전 해결책을 우리의 현재 솔루션 으로 복사합니다.
  7. For 루프가 완료된 후 은 현재 솔루션을 반환합니다.

첫 번째 문제는 작은 변경을 완료하는 것입니다. 두 번째는 임의의 돌연변이 언덕 등반 알고리즘을 만드는 것이지만 네가 붙어있는 단어는 아닙니다. 나는 누군가가 도울 수 있기를 바랍니다. 나는이 일을 며칠 동안 해왔으므로 어떤 도움을 주셔서 감사합니다!

+0

기본 Java에 익숙하고 문제를 이해한다면이 작업을 수행 할 수 있습니다. 기본 Java를 이해할 수 없다면 유용한 튜토리얼을 읽어보십시오. 의사 코드를 이해하지 못하면 의사를 작성한 사람에게 이야기하십시오. 인터넷상의 임의의 사람들은 그것을 더 잘 이해하지 못할 것입니다. 자바에 관해 궁금한 점이 있으면 질문하십시오. – DJClayworth

+1

숙제와 같이 의심스러운 것처럼 보입니다. 그리고 의사 코드의 문제점을 잘 모릅니다. 매우 상세하고 잘 정리되어 있습니다. 제가 제시 한 것보다 훨씬 귀찮은 것 같습니다. –

+0

2 년 동안 학교에 다니지 못했습니다. –

답변

1

의사의 첫 번째 비트는 말한다 :

텍스트 scasol에서 임의의 위치에서 "변경된 버전"을 삽입합니다. "변경된 버전"이 언급 한 내용이 명확하지 않습니다.

문자열에 문자를 삽입하는 것은 Java에서 간단한 작업입니다.
참조 public StringBuilder insert(int offset, char c)

의사 코드의 두 번째 부분에는 상황 및 설명이 필요합니다.

+0

글쎄, 나는 5 개의 숫자를 출력하는 작은 코드를 가지고있다. 그리고 작은 변화는 그 숫자 중 하나를 문자열로 바꾸고 다른 하나를 출력하기로되어있다. 그래서 순간에 숫자는 111111을 읽었고 작은 변화로 그 숫자 중 하나를 변경하고 다시 출력해야합니다. 예를 들면 : 101111. –

+0

두 번째 코드 비트는 모두 무작위 돌연변이 언덕 등반 알고리즘을 만들고 첫 번째 의사 코드의 코드에 프로그램을 만들 때 추가된다는 것입니다. –