p의 교차점

앨리스 j

두 개의 연속적인 1 또는 3 개의 연속 적인 0으로 구성되지 않는 비트 문자열의 수를 계산하고 싶습니다.

하지만 둘 다 아닙니다

나는 두 개의 연속적인 것 또는 3 개의 연속 적인 0으로 구성된 알고리즘을 찾았 지만 그것을 제외하고 싶기 때문에 그들 사이의 교차점을 찾지 못했습니다 ..

예를 들어, 내 입력은 4입니다. 3 개의 연속 0 또는 2 개의 연속 1이없는 4 비트 길이 시퀀스를 모두 찾아야합니다. 따라서 답은 7:00, 0100, 0101, 1001 및 1010이됩니다.

어떤 아이디어? 감사..

소코 위

다음 접근 방식을 사용할 수 있습니다.

  • 시퀀스 수를 재귀 적으로 계산합니다.
  • 서브 시퀀스의 수를 알기 위해서는 서브 시퀀스 앞의 두 비트를 알아야합니다.
  • 이전 비트가 1...이면 하위 시퀀스는 0.
  • 이전의 두 비트가 있으면 00...하위 시퀀스는 1.
  • 이전 비트가 이러한 패턴과 일치하지 않는 경우 하위 시퀀스는 0또는로 시작할 수 있습니다 1.

나머지는 프로그램에서 명확해야합니다.

public class BitSequences {

    public static void main(String[] args) {
        for (int i = 0; i <= 64; ++i) {
            System.out.println(i + " " + bitSequences(i));
        }
    }

    public static long bitSequences(int length) {
        return bitSequences(length, Bit.NONE, Bit.NONE);
    }

    public static long bitSequences(int length, Bit prePreBit, Bit preBit) {
        if (length <= 0) {
            return 1;
        } else if (preBit == Bit.ONE) {
            return bitSequences(length - 1, preBit, Bit.ZERO);
        } else if (prePreBit == Bit.ZERO && prePreBit == Bit.ZERO) {
            return bitSequences(length - 1, preBit, Bit.ONE);
        }
        return bitSequences(length - 1, preBit, Bit.ONE)
             + bitSequences(length - 1, preBit, Bit.ZERO);
    }

    enum Bit {
        ZERO,
        ONE,
        NONE
    }
}

동적 프로그래밍을 사용하여 프로그램을 개선 할 수 있지만 귀하의 경우에는 중요하지 않을 수 있습니다. 에 대한 계산 length = 64은 1 초 안에 완료됩니다. 결과 : 109'870'576 (대략 2있다 (28) 이없는 길이 64) 비트 문자열 11또는 000그들에가.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

R의 교차점

분류에서Dev

MATLAB의 교차점

분류에서Dev

사면체의 교차점

분류에서Dev

시리즈의 교차점

분류에서Dev

두 세트의 교차점과 차이

분류에서Dev

numba에서 두 목록의 교차점

분류에서Dev

두 std :: unordered_map의 교차점

분류에서Dev

Excel : 행과 열의 교차점 찾기

분류에서Dev

두 범위 배열의 교차점

분류에서Dev

이진 값의 교차점 계산

분류에서Dev

두 json 파일의 교차점

분류에서Dev

Spree : 분류군 간의 교차점

분류에서Dev

파이썬의 텍스트 교차점

분류에서Dev

셀형 배열의 교차점 찾기

분류에서Dev

두 선의 교차점 식별

분류에서Dev

두 선의 교차점 식별

분류에서Dev

3D의 원-원 교차점

분류에서Dev

PySpark, 키에 의한 교차점

분류에서Dev

np.array와 세트의 교차점

분류에서Dev

두 배열 사이의 교차점

분류에서Dev

가우스 사이의 교차점

분류에서Dev

R의 조건부 교차점

분류에서Dev

사전의 교차점 <날짜, 목록 <A >>

분류에서Dev

점 P를 통한 직교가 끝점에 의해 정의 된 선분과 교차하는지 계산

분류에서Dev

subtrahend와 minuend의 교차점에 minuend와 차이의 교차점을 지정합니다.

분류에서Dev

그래프에서 점의 교차점 계산

분류에서Dev

chartjs에서 차트 선 사이의 교차점 찾기

분류에서Dev

두 2 차 함수의 교차점 수 찾기

분류에서Dev

Pyranges에서 중첩 및 교차 방법의 차이점