|
|
#3
模拟测试一下得知,平均值为 1
SQL> set serveroutput on;
SQL>
SQL>
SQL> declare
2 type t_rec is record ( n int,
3 v int);
4
5 type t_tab is table of t_rec;
6 l_tab t_tab := t_tab();
7
8 l_ran int;
9 l_cnt int := 1000000;
10 begin
11
12 for i in 1..l_cnt loop
13
14 loop
15 l_ran := ceil(dbms_random.value(0,10000));
16
17 l_tab.extend;
18 l_tab(l_tab.last).n := i;
19 l_tab(l_tab.last).v := l_ran;
20
21 exit when mod(l_ran,2) = 1;
22 end loop;
23
24 end loop;
25
26 dbms_output.put_line(l_tab.count/l_cnt - 1);
27 end;
28 /
.999085
PL/SQL procedure successfully completed
SQL> /
.999238
PL/SQL procedure successfully completed
SQL> /
1.00161
PL/SQL procedure successfully completed
SQL> /
.99914
PL/SQL procedure successfully completed
SQL> /
1.001636
PL/SQL procedure successfully completed
SQL> /
1.000575
PL/SQL procedure successfully completed |
|