circle_distrib.pl 719 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. #!/usr/bin/perl
  2. $n = 500;
  3. for ($i=0; $i<$n; $i++)
  4. {
  5. $x[$i] = rand(10) - 5.0;
  6. $y[$i] = rand(10) - 5.0;
  7. }
  8. for ($i=0; $i<$n; $i++)
  9. {
  10. for ($j=$i+1; $j<$n; $j++)
  11. {
  12. $a = $x[$i]*$x[$i] + $y[$i]*$y[$i];
  13. $b = $x[$j]*$x[$j] + $y[$j]*$y[$j];
  14. if ($a>$b)
  15. {
  16. $t = $x[$i];
  17. $x[$i] = $x[$j];
  18. $x[$j] = $t;
  19. $t = $y[$i];
  20. $y[$i] = $y[$j];
  21. $y[$j] = $t;
  22. }
  23. }
  24. }
  25. print
  26. "static i4_float distrib[][3] =\n" .
  27. "{\n";
  28. for ($i=0; $i<50; $i++)
  29. {
  30. $a = $x[$i]*$x[$i] + $y[$i]*$y[$i];
  31. printf(" { %10.7f, %10.7f, %10.7f },\n", $x[$i] , $y[$i], $a);
  32. }
  33. print "};\n";