1
Oracle Database 12c를 사용하고 있습니다. 우리가 C++ (urand())에서와 같이 균일하게 분산 된 부동 소수점 숫자를 생성 할 수있는 방법이 있습니까?urand in Oracle Database
또는 그렇게 할 수있는 모든 서브 루틴. DBMS_RANDOM 패키지에는 정규 분포에 대한 기능이 있지만 균일 분포는 아닙니다.
Oracle Database 12c를 사용하고 있습니다. 우리가 C++ (urand())에서와 같이 균일하게 분산 된 부동 소수점 숫자를 생성 할 수있는 방법이 있습니까?urand in Oracle Database
또는 그렇게 할 수있는 모든 서브 루틴. DBMS_RANDOM 패키지에는 정규 분포에 대한 기능이 있지만 균일 분포는 아닙니다.
DBMS_RANDOM.VALUE
은 균일 한 분포로 값을 생성합니다. the manual 비록
명시 적으로 나는 우리가 균일 한 분포를 사용 확신 할 수 있다고 생각하는 방법을 VALUE
RANDOMIZE 번호를 명시하지 않는 이유는 그것을 할 수있는 가장 쉬운 방법은, 그리고 표준화를 제공하는 다른 기능이 이미있다
begin
dbms_random.seed(val => 'abcd');
end;
/
10 만 개 임의 값을 생성,이를 계산, 반올림과 양동이에 넣어 :
을 모든 사람의 결과가 일치되도록 시험에은 씨앗을 설정
--Compare DBMS_RANDOM.NORMAL and DBMS_RANDOM.VALUE.
select normal_value, normal_count, value_count
from
(
--NORMAL
select round(random_value, 1) normal_value, count(*) normal_count
from
(
select
dbms_random.normal random_value
from dual
connect by level <= 100000
)
group by round(random_value, 1)
order by normal_value
) normal_values
join
(
--VALUE
select round(random_value, 1) value_value, count(*) value_count
from
(
select
dbms_random.value(-3,3) random_value
from dual
connect by level <= 100000
)
group by round(random_value, 1)
order by value_value
) value_values
on normal_values.normal_value = value_values.value_value
order by 1;
내보내기 LibreOffice와의 값을 그리고 당신은 너무 추한 차트를 생성 할 수 있습니다
'dbms_random.value'가 아닌가요? –