找回密码
 欢迎注册
查看: 30191|回复: 15

[转载] 随机三角形的面积

[复制链接]
发表于 2009-7-11 14:35:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
KeyTo9のFans 在百度数学吧里面提出:

在以下图形的内部随机取三个点作为一个三角形的顶点,求这个三角形的面积的期望值。
在图形内部各处取点的概率是分布均匀的。

(1)边长为1的正方形
(2)边长为1的正三角形
(3)半径为1的圆
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2009-7-11 14:43:08 | 显示全部楼层
对任意凸区域D,假设其面积为S
对于任意一个方向$theta$,区域D在其垂直方向投影长度为$T(theta)$
我们可以将所有方向为$theta$的同区域D相交的直线用参数y表示其中$0<=y<=T(theta)$,记为直线$L(theta,y)$
假设直线$L(theta,y)$同D相交部分长度为$U(theta,y)$,它将区域D分成两部分,面积分布为$S_1(theta,y)$,$S_2(theta,y)$
两部分重心到$L(theta,y)$的距离分别为$H_1(theta,y)$,$H_2(theta,y)$
那么我推导的结果是最后三角形面积的期望为
$1/{12S^3}\int_0^{pi}d\theta\int_0^{T(\theta)}(S_1(\theta,y)*H_1(\theta,y)+S_2(\theta,y)*H_2(\theta,y))*U^4(\theta,y)dy$
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-7-11 15:02:09 | 显示全部楼层
这应该属于积分几何的内容吧..
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-7-13 11:06:26 | 显示全部楼层
这使我联想起ibm ponder this的一道题。
http://domino.research.ibm.com/C ... es/October2006.html
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-7-13 16:49:16 | 显示全部楼层
呵呵,模拟一下么
正方形的好模拟

谁有兴趣
估计1000个点能得到很好的近似了吧?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-7-13 17:53:17 | 显示全部楼层
  1. // ra.cpp : Defines the entry point for the console application.
  2. //

  3. #include "stdafx.h"
  4. #include <math.h>
  5. #include <time.h>
  6. #include <stdlib.h>

  7. struct {double x, y;} a, b, c;

  8. double area(void)
  9. {
  10.         return ( (b.x - a.x) * (c.y - a.y) - (c.x - a.x) * (b.y - a.y) )/2.0;
  11. }

  12. #define RAND ((double)rand() / (double)RAND_MAX)

  13. int _tmain(int argc, _TCHAR* argv[])
  14. {
  15.         int i;
  16.         double s = 0.0;

  17.         srand((unsigned)time(NULL));

  18.         for (i = 0; i < 10000; i ++)
  19.         {
  20.        a.x = RAND;
  21.            a.y = RAND;
  22.            b.x = RAND;
  23.            b.y = RAND;
  24.            c.x = RAND;
  25.            c.y = RAND;
  26.            s += abs(area());
  27.         }

  28.         printf("随机值 = %.8f", s /10000.0);

  29.         return 0;
  30. }
复制代码


随机值 = 0.07646080
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-7-13 17:54:19 | 显示全部楼层
随机值 = 0.07694249
随机值 = 0.07645819
随机值 = 0.07722303
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-7-13 17:55:41 | 显示全部楼层
加大到1000000次

随机值 = 0.07644364
随机值 = 0.07643060
随机值 = 0.07645995
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-7-13 17:58:18 | 显示全部楼层
半径为1的圆预期应该比边长为1的正方形大
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-7-13 17:58:57 | 显示全部楼层
现在看来,有个好的随机函数库是很重要的
谁推荐个
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-5-16 02:21 , Processed in 0.046453 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表