24小时热门版块排行榜    

查看: 2674  |  回复: 33
本帖产生 1 个 程序强帖 ,点击这里进行查看
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

cooooldog

铁杆木虫 (著名写手)

ส็็็

[交流] 运行这段代码到出图片,你的电脑用了多久? 已有14人参与

测试一下Mathematica的效率:
CODE:
ClearAll["Global`*"];
t0 = AbsoluteTime[];
list = {{0, 0}};
last = {{0}, {0}};
GetNextPoint[pt_] := Module[{r,
   t1 = {{0.83, 0.03}, {-0.03, 0.86}}, p1 = {0, 1.5},
   t2 = {{0.2, -0.25}, {0.21, 0.23}}, p2 = {0, 1.5},
   t3 = {{-0.15, 0.27}, {0.25, 0.26}}, p3 = {0, 0.45},
   t4 = {{0, 0}, {0, 0.17}}, p4 = {0, 0}},
  r = Random[];
  If[r <= 0.85, t1.pt + p1,
   If[r <= 0.91, t2.pt + p2, If[r <= 0.99, t3.pt + p3, t4.pt + p4]]]]
For[i = 0, i < 100000, i++, last = GetNextPoint[last];
list = Append[list, First[Transpose[last]]];]
h = ListPlot[list, PlotStyle -> {PointSize[0.002], Red},
   Axes -> False];
range = First /@ Differences /@ (PlotRange /. Options[h]);
Show[h, AspectRatio -> Last@range/First@range]
Print[AbsoluteTime[] - t0]

回复此楼
ส็็็็็็็็็็็็็็็็็็็็
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

easezh

木虫 (著名写手)


小木虫: 金币+0.5, 给个红包,谢谢回帖
25.9740456 s
------
i7-3770 3.4G
32G RAM
64 WIN7
运行时,操作系统下还有若干其他程序在运行。
因此我觉得可以更快,但这个似乎已经够快了。
运行这段代码到出图片,你的电脑用了多久?
Untitled-1.png

22楼2014-09-18 01:10:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 34 个回答

mshwangg

至尊木虫 (正式写手)


小木虫: 金币+0.5, 给个红包,谢谢回帖
运行这段代码到出图片,你的电脑用了多久?-1
牛人啊,树叶挺漂亮
还可以画别的吗?分享下
2楼2014-09-15 23:08:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

walk1997

金虫 (著名写手)


小木虫: 金币+0.5, 给个红包,谢谢回帖
21.0682050
mshwangg 的机器是AMD的cpu?
3楼2014-09-17 08:43:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zzs510

铜虫 (初入文坛)



小木虫: 金币+0.5, 给个红包,谢谢回帖
ClearAll["Global`*"];
t0 = AbsoluteTime[];
list = {{0, 0}};
last = {{0}, {0}};
GetNextPoint[pt_] := Module[{r,
   t1 = {{0.83, 0.03}, {-0.03, 0.86}}, p1 = {0, 1.5},
   t2 = {{0.2, -0.25}, {0.21, 0.23}}, p2 = {0, 1.5},
   t3 = {{-0.15, 0.27}, {0.25, 0.26}}, p3 = {0, 0.45},
   t4 = {{0, 0}, {0, 0.17}}, p4 = {0, 0}},
  r = Random[];
  If[r <= 0.85, t1.pt + p1,
   If[r <= 0.91, t2.pt + p2, If[r <= 0.99, t3.pt + p3, t4.pt + p4]]]]
For[i = 0, i < 100000, i++, last = GetNextPoint[last];
list = Append[list, First[Transpose[last]]];]
h = ListPlot[list, PlotStyle -> {PointSize[0.002], Red},
   Axes -> False];
range = First /@ Differences /@ (PlotRange /. Options[h]);
Show[h, AspectRatio -> Last@range/First@range]
Print[AbsoluteTime[] - t0]
4楼2014-09-17 10:31:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见