84669인 학습
152542인 학습
20005인 학습
5487인 학습
7821인 학습
359900인 학습
3350인 학습
180660인 학습
48569인 학습
18603인 학습
40936인 학습
1549인 학습
1183인 학습
32909인 학습
2차원 배열이 있는데 (위, 아래, 왼쪽, 오른쪽에 인접하지 않고) 교차하여 2~3개의 난수를 얻는 방법은 무엇인가요?
배열:
이렇게 작성했지만 매우 경직된 느낌이 들고, 얻은 숫자가 균일하지 않고 코드가 약간 부풀어오르는 경우가 있습니다. 더 나은 해결책이 있습니까?
认证0级讲师
조건은 상,하,좌,우가 서로 인접하지 않는 것입니다. 시작점 좌표가 (0,0)이라고 가정하면 다음 지점 (-1, 0), (0, -1), (1, 0), (0, 1)이 마스크됩니다. 이 점의 특징은 다음과 같습니다. x의 절대값과 y의 절대값을 더하면 1이 됩니다. 합리적인 범위 내에서 임의의 x 및 y 좌표 값을 추가하고 각각의 절대값을 더합니다. 1이 아니고 이 좌표가 이전에 사용되지 않은 경우 허용됩니다.
여기에 요구 사항을 완벽하게 충족하는 매우 간단한 해킹 아이디어가 있습니다. 즉, [상단, 하단, 왼쪽 및 오른쪽에 인접하지 않음]이라는 요구 사항을 달성하기 위해 의도적으로 [단면에서 숫자를 취함] 두 개만 필요합니다. 라인:
조건은 상,하,좌,우가 서로 인접하지 않는 것입니다. 시작점 좌표가 (0,0)이라고 가정하면 다음 지점 (-1, 0), (0, -1), (1, 0), (0, 1)이 마스크됩니다. 이 점의 특징은 다음과 같습니다. x의 절대값과 y의 절대값을 더하면 1이 됩니다. 합리적인 범위 내에서 임의의 x 및 y 좌표 값을 추가하고 각각의 절대값을 더합니다. 1이 아니고 이 좌표가 이전에 사용되지 않은 경우 허용됩니다.
여기에 요구 사항을 완벽하게 충족하는 매우 간단한 해킹 아이디어가 있습니다. 즉, [상단, 하단, 왼쪽 및 오른쪽에 인접하지 않음]이라는 요구 사항을 달성하기 위해 의도적으로 [단면에서 숫자를 취함] 두 개만 필요합니다. 라인:
으아악