주어진 크기의 사각형을 통해 무작위 경로를 생성하는 코드를 작성하고 싶습니다.사각형을 통한 임의의 경로
나는 점 (0,0)
에서 시작 up
또는 right
이 xlim
및 ylim
에 도달하기 위해 이동합니다.
내 코드는,
y = 10;
x = 10;
yOld = 0;
xOld = 0;
figure
axis([0 x 0 y])
while yOld < y && xOld < x
DirectionChange = randi([0 1],1);
if DirectionChange == 0
yNew = yOld + 1;
xNew = xOld;
else
xNew = xOld + 1;
yNew = yOld;
end
line ([xOld xNew],[yOld yNew],'LineWidth',3);hold on
yOld = yNew;
xOld = xNew;
end
line ([xNew x],[yNew y],'LineWidth',3);hold off
코드는 while loop
을 가지고 있으며, x
중 하나 y
이 한계의 도달하면 종료됩니다.
그럼 제대로 작동합니다. x = y
.
그러나 y > x
일 경우 경로가 xlim
에 더 빨리 도달 할 가능성이 높습니다. x = 10, y = 10
12 개 실행을위한
나는 수 (나는 그것이 다채로운 잘 보이도록 만들어!), 당신이 볼 수 있듯이
는, 내가 얻을 x = 10, y = 20
설정 나는 후자의 경우에 무작위성을 잃는다. 그 한계에 도달하는 확률은 x
이다.
x~=y
의 경우 임의성을 유지하는 방법에 대한 제안이 있으십니까?
감사합니다.
다른 해결책에 대한 다운 워드를 확신하지 못합니다. 나는 문제가 y가 x의 배수가 아니거나 x> y 일 때 x가 y의 배수가되지 않을 경우 문제가 될 수 있다고 생각합니다. 그렇지 않으면 잘 보입니다. 어떻게 생각해? – Divakar
@Divakar OP가 정수가 아닌 이동을 처리해도 괜찮 으면 솔루션은 괜찮아 보입니다. 두 솔루션 (Arpi/광산과 당신) 간의 차이점은 우리가 이동의 확률 *을 변경하고 이동량 *을 변경하여 어느 한쪽 한계를 맞출 확률을 유지한다는 것입니다. 같은 질문에 대한 두 가지 다른 유효한 해결책. – Luigi
괜찮 았던 것처럼 들리는구나. 그래서, downvote는 어떨까요? 다른 이유가 있습니까? 귀찮게해서 미안해, 그렇지 않으면 너. – Divakar