| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- const
- TRYs = 900000;
- type
- tVec = record
- x,y,z : real;
- end;
- var
- Norms : array [1..6] of tVec;
- Ds : array [1..6] of real;
- count : array [0..63] of word;
- j : longint;
- P : tVec;
- val,i : byte;
- begin
- with norms[1] do begin x:=1;y:=0; z:= 0; end;
- with norms[2] do begin x:=0;y:=1; z:= 0; end;
- with norms[3] do begin x:=0;y:=0; z:= 1; end;
- with norms[4] do begin x:=-1;y:=0; z:= 0; end;
- with norms[5] do begin x:=0;y:=-1; z:= 0; end;
- with norms[6] do begin x:=0;y:=0; z:= -1; end;
- for i := 1 to 6 do Ds[i] := -1.0;
- Fillchar(Count,2*64,0);
- randomize;
- for j := 0 to TRYs do begin
- val := 0;
- with p do begin
- x := random * 10.0 - 5;
- y := random * 10.0 - 5;
- z := random * 10.0 - 5;
- end;
- for i := 1 to 6 do
- begin
- val := val shl 1;
- if (Norms[i].x*p.x + Norms[i].y*p.y + Norms[i].z*p.z + ds[i]) > 0 then inc(val);
- end;
- inc(count[val]);
- end;
- Assign(output, 'cube.out');
- rewrite(output);
- for j := 0 to 63 do
- begin
- for i := 1 to 6 do Write( (j shr (6-i)) and 1);
- Write(' = ',j:2);
- WriteLn(' - ', count[j]:5,'=',count[j]/TRYs*100:0:2,'%');
- end;
- close(output);
- end.
|