드롭 다운에 10 개의 옵션이 있고 옵션 4가 선택된 경우 1-10에서 4를 제외하고 옵션을 선택하는 코드를 작성하려면 어떻게해야합니까?PHP 또는 PHPUnit. 선택된 하나를 제외하고 드롭 다운에서 무작위 옵션을 선택하십시오.
랜덤 (1, 10)은 1에서 10까지의 임의의 숫자를 선택하지만 때로는 4에 착륙 할 수 있습니다. 어떻게 숫자 4 나 숫자를 선택하지 못하게 할 수 있습니까? 선택된?
드롭 다운에 10 개의 옵션이 있고 옵션 4가 선택된 경우 1-10에서 4를 제외하고 옵션을 선택하는 코드를 작성하려면 어떻게해야합니까?PHP 또는 PHPUnit. 선택된 하나를 제외하고 드롭 다운에서 무작위 옵션을 선택하십시오.
랜덤 (1, 10)은 1에서 10까지의 임의의 숫자를 선택하지만 때로는 4에 착륙 할 수 있습니다. 어떻게 숫자 4 나 숫자를 선택하지 못하게 할 수 있습니까? 선택된?
하면 1이고 n과 m 번째 옵션을 선택하면 1, n은 다음의 알고리즘을 사용하여 m 제외간에 임의로 숫자를 생성 할 수있는 사이의 선택이있는 경우 :
을<?php
function get_rand($n,$m)
{
$r = rand(1,$n-1); //generate one of $n-1 numbers since $m is not selectable
if($r >= $m) //if $r is smaller than $m we're done
$r++; //otherwise add one to $r
return($r);
}
?>
귀하의 경우, n = 10 및 m = 4 인 경우, 1에서 9 사이의 숫자가 생성됩니다. 범위가 [1,3]이면 해당 숫자가 반환됩니다. 범위가 [4,9]이면 1을 더하고 [5,10] 범위의 숫자를 반환합니다. 이것은 우리가 범위 [1,3] U [5,10]에있는 임의의 정수로 동일한 확률로 돌아 간다는 것을 의미합니다.
옵션 배열을 생성하고 바람직하지 않은 옵션을 제거하지 않는 이유는 무엇입니까? –
이것은 일정한 시간에 실행되고 상수 메모리를 사용하므로 임의의 범위에서 작동합니다. 필터링 된 숫자가 작은 범위가있는 경우 @ SuperSkunk의 대답을 선호 할 수 있습니다. 필터링 된 숫자가 큰 범위가있는 경우이 메서드와 원하지 않는 옵션 목록을 사용하여 임의 값에 추가 할 숫자를 알아야합니다. 이것은 O (log (원치 않는 옵션 목록의 크기))입니다. – pedrosorio
'phpunit'과 어떤 관련이 있습니까? – zerkms
phpunit에서 테스트 스크립트를 작성하고 있기 때문에? – yan
@ RaymondYan : 그리고 Windows 컴퓨터에 PHP 코드를 작성하고 있습니다. [tag : windows]로 내 질문에 태그를 달지 못하게합니까? –