编程C,C ++,Java,PHP,Ruby,图灵,VB
计算机科学加拿大 
编程C,C ++,Java,PHP,Ruby,图灵,VB  

用户名:   Password: 
 登记登记   
 [CCC] 2004 J4分形,有人解释了解决方案PLZ的逻辑
指数 -> 竞赛
查看上一个主题 可打印的版本下载主题订阅本主题私人信息刷新页面 查看下一个主题
作者 信息
Riaderu.




邮政发布: 孙8月24日,2008年8:06 PM  发布主题:[CCC] 2004 J4分形,有人解释了解决方案PLZ的逻辑

Gah ......我陷入了2004年的J5。其他问题花了我10分钟,但我停了下来。我完全消失了。
你怎么做呢?你的逻辑是什么?

J5 PDF: http://www.cemc.uwaterloo.ca/ccc/2004/stage1/juniorEn.pdf
在图灵的工作答案: http://access.mmhs.ca/ccc/2004/j5fractals.txt

是的,我知道几年前有另一个关于这个问题的另一个主题,因为我甚至不认识到答案所在的语言,它并没有帮助我。

另外,是这个问题所需的一定程度的数学,如果是这样告诉我我必须学习什么?

P.S.我只懂TING和非常可读的Java。
赞助
赞助
赞助
赞助
nike52




邮政发布: 孙8月24日,2008年9:24 PM  帖子主题:Re:[CCC] 2004 J4分形,有人解释了解决方案PLZ的逻辑

您可以通过按行检查答案代码行来了解它。
托尼




邮政发布: 太阳2014年8月24日11:47 PM  帖子主题:Re:[CCC] 2004 J4分形,有人解释了解决方案PLZ的逻辑

这个问题似乎有三个主要部分:

产生分形 - 通常更容易递归。

在某些数据结构中存储生成的分形。

在上面的数据结构中搜索请求的值。

您可以尝试一次执行上述步骤之一的问题。
最新来自compsci.ca/blog: Tony's 编程博客。 DWite - A. 编程竞赛.
Brighguy.




邮政发布: 2008年8月25日星期八5:22  帖子主题:Re:[CCC] 2004 J4分形,有人解释了解决方案PLZ的逻辑

上次 我给了一个vb解决方案。这次我会使用php。
PHP.:
<?php
$水平 = 4;
$宽度 = 81;
$ X. = 38;

功能 grow($分形)
{       $新 = 大批(大批(0, 1));
        为了($ I. =1; $ I. <count($分形); $ I. ++)
        {       $ X. = 大批(($分形[$ I. ][0]-$分形[$ I. -1][0])/3, ($分形[$ I. ][1]-$分形[$ I. -1][1])/3);
                $ y. = 大批(-($分形[$ I. ][1]-$分形[$ I. -1][1])/3, ($分形[$ I. ][0]-$分形[$ I. -1][0])/3);
                $新[] = 大批($ X.[0]+$分形[$ I. -1][0], $ X.[1]+$分形[$ I. -1][1]);
                $新[] = 大批($ X.[0]+$ y.[0]+$分形[$ I. -1][0], $ X.[1]+$ y.[1]+$分形[$ I. -1][1]);
                $新[] = 大批(2*$ X.[0]+$ y.[0]+$分形[$ I. -1][0], 2*$ X.[1]+$ y.[1]+$分形[$ I. -1][1]);
                $新[] = 大批(2*$ X.[0]+$分形[$ I. -1][0], 2*$ X.[1]+$分形[$ I. -1][1]);
                $新[] = $分形[$ I. ];
        }
        返回 $新;
}

功能 contains($分形, $ X., $ y.)
{       为了($ I. =1; $ I. <count($分形); $ I. ++)
        {       $ X.1 = ($分形[$ I. -1][0], $分形[$ I. ][0]);
                $ X.2 = 最大限度($分形[$ I. -1][0], $分形[$ I. ][0]);
                $ y.1 = ($分形[$ I. -1][1], $分形[$ I. ][1]);
                $ y.2 = 最大限度($分形[$ I. -1][1], $分形[$ I. ][1]);
                如果($ X.>=$ X.1 && $ X.<=$ X.2 && $ y.>=$ y.1 && $ y.<=$ y.2)
                        返回(真的);
        }
        返回(错误的);
}

$分形 = 大批(大批(0, 1), 大批($宽度, 1));

为了($ I. =0; $ I. <$水平; $ I. ++)
        $分形 = grow($分形);

为了($ y.=1; $ y.<=($宽度+1)/2; $ y.++)
        如果(包含($分形, $ X., $ y.))
                回声(“$ y”);

回声("\ n");
?>

生长功能通过分形的每一行循环,并根据分形生成规则将其分成五行。计算五行的点如何计算?给定矢量z,设x为z / 3,y为x旋转90?逆时针方向。然后x,x + y,2x + y,2x和3x = z将为您提供拆分由z表示的线路所需的端点。
Riaderu.




邮政发布: 2008年8月25日星期八8:42  帖子主题:Re:[CCC] 2004 J4分形,有人解释了解决方案PLZ的逻辑

什么是向量?我知道的唯一矢量来自Java矢量类。你是如何弄清楚“分形代规则”的?

我的上帝,我会因这些问题而受到比赛。
Brighguy.




邮政发布: 2008年8月25日星期八9:45  帖子主题:Re:[CCC] 2004 J4分形,有人解释了解决方案PLZ的逻辑

想想矢量作为一个 方向 A. 长度 在两个维度(对于这个问题)。 2D平面中的任何两个点都将确定向量(实际上是两个,根据您的订单点数)。

在问题上给出了分形生成规则:您应该用分形中的每一行用一个由5条较小的线组成的“碰撞”线替换。对于每一行,第一行的第一个将与原始线相同,但它将具有三分之一的长度,这是x = z / 3来自的。

我认为他们可以更好地解释这个问题。如果您无法想象它,这是分形的动画GIF。



Fractal.gif.
 Description:
 Filesize:  9.11 KB
 Viewed:  3984 Time(s)

Fractal.gif.


Riaderu.




邮政发布: 2008年8月25日上午10:47  帖子主题:Re:[CCC] 2004 J4分形,有人解释了解决方案PLZ的逻辑

他们肯定知道如何保持它模糊,但可能...看起来我有一些数学要做。

编辑:我现在得到它,现在看起来很容易,我意识到这个问题有多严重措辞。
它可能会更清晰。
从上一个显示帖子:   
   指数 -> 竞赛
查看上一个主题 告诉一个朋友可打印的版本下载主题订阅本主题私人信息刷新页面 查看下一个主题

11  [ 7 Posts ]
跳到:   


Style:  
搜索: