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

用户名:   Password: 
 登记登记   
 使用信息解决问题[第1部分]
指数 -> 编程,图灵 -> 图灵教程
查看上3d中奖规则主题 可打印的版本下载主题利率主题订阅本主题私人信息刷新页面 查看下3d中奖规则主题
作者 信息
mihaig




邮政发布: 2008年4月9日星期三下午4:28  发布主题:使用信息来解决问题[第1部分]

因此,良好编程的基础是能够为您提供计算机的能力。

例如,通常给予更多中级/高级高中类的程序员的3d中奖规则问题是设计3d中奖规则项目,从而从中输出多行 Pascal的三角形。现在在没有阅读到大量的帕斯卡三角形的历史中,我们看下面列出的图像并尝试推断模式。

screen.width-200)this.width = (screen.width-200)" onclick="javascript:window.open('http://upload.wikimedia.org/math/8/e/2/8e284c06dea37b9e788549c562ee24a8.png','','scrollbars=1,toolbar=0,resizable=1,menubar=0,directories=0,status=0')" alt="发布图像,可能已经减少了大小。点击图片以全屏观看。" title="发布图像,可能已经减少了大小。点击图片以全屏观看。" />

现在我们可以看到两侧始终保持不变(它们总是1),并且序列中的下3d中奖规则术语是它上方的两个数字的添加值等等。
这解释了为什么双方总是3d中奖规则,因为它们是0 + 1。
有许多属性可以帮助我们定义用于Pascals三角的符号。电网随后可以如此布置:

引用:

1 "0"
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1


第一行将始终将其重新调用为行0,这是由第0行中的第二个数字定义,这已被配置为显示每行(或第二次)中的第二个数字始终向我们提供该行的行号。

因此,将跳入普通程序员头部的第3d中奖规则想法是使用大量的数组和变量,并循环加入序列中的前两个Nubmers,以给我们下3d中奖规则数字。这将要求我们拥有两个灵活的阵列,我们可以添加项目,然后解析它们以找到以前的值。

那么这个话题在这里有什么看法我们走了。

机会是有人已经完成了你拥有的东西,并且已经更好地完成了(可能与Thsi教程也有所作为 眨眼 )。因此,在任何代码写之前最好的想法是研究任务,所以yuo完美地理解它(这意味着如果我闯入你的房子并唤醒你并问你能告诉我什么帕斯卡的三角形)。

所以让我们前往Wiki页面(注意维基百科并不总是最好的,但它将在大部分时间上工作)

screen.width-200)this.width = (screen.width-200)" onclick="javascript:window.open('http://upload.wikimedia.org/math/c/2/d/c2d02458d8c35f11e465c639ba62f081.png','','scrollbars=1,toolbar=0,resizable=1,menubar=0,directories=0,status=0')" alt="发布图像,可能已经减少了大小。点击图片以全屏观看。" title="发布图像,可能已经减少了大小。点击图片以全屏观看。" />

是我们看到它的第3d中奖规则图像之一
嗯,它用于计算订单无关紧要的某个物体组的组合。
回到帕斯卡的三角形

所以它说n! /(n-k)!* k!

那么这些仲裁常数是什么意思是好心的交易。
有些人发现如果你把n作为你的行号和k作为你的列编号嘿,你会在计算器中获得特定的术语,这是3d中奖规则惊奇的!


引用:
那么你在说什么mihai?我们可以使用这个简单的公式计算每个术语,不必使用复杂的数组?



是的!

所以我们的第一步如果要在图灵中写这一点是写3d中奖规则计算阶乘的函数

代码:

功能事实(num : int) : int
    var test : int := 1
    if num = 0 then
        result 1
    else
        for i : 1 .. num
            test := test * i
        end for
        result test
    end if
最终事实

所以我们刚刚有3d中奖规则局部变量,我们刚刚乘以3d中奖规则用于循环的循环,注意我们需要输入的特殊情况,其中输入为0等于1

所以现在我们所要做的就是为循环设置一堆循环,这将仅输出我们的数据
开始




代码:

为我: 0 .. num - 1
    for j : 0 .. (i)
        put (fact (i) / (fact (i - j) * fact (j))), "   " ..
    end for
    put ""
结束

现在为什么我从num中减去1,这是因为我们的第一行被称为行0,如果我们没有,我们将不是输出两行而不是3d中奖规则
空间和两个时段允许间隔和用于在同一条线上的输出落后

所以现在,如果我们把这两件代码放在一起,我们得到了:

代码:

功能事实(num : int) : int
    var test : int := 1
    if num = 0 then
        result 1
    else
        for i : 1 .. num
            test := test * i
        end for
        result test
    end if
最终事实
var num.: int
得到数字
为我: 0 .. num - 1
    for j : 0 .. (i)
        put (fact (i) / (fact (i - j) * fact (j))), "   " ..
    end for
    put ""
结束


因此,使用此,我在少于20行代码Huzzah中为Pascal的三角形进行了3d中奖规则计算器
现在看它是否有效
我把13放在13岁,我得到了
引用:

1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
1 10 45 120 210 252 210 120 45 10 1
1 11 55 165 330 462 462 330 165 55 55 11 1
1 12 66 220 495 792 924 792 495 220 66 12 1

WOOHOO.
有用

所以,
在手中研究3d中奖规则话题尤其是相当具有挑战性的东西会有所帮助,因为应该有超过足够的信息可以让你更容易。

所以下周(或在两周),发布了3d中奖规则关于转换代数表达式的教程,例如Infix到前缀和Postfix,这是机器如何评估表达式,yay!


编辑**
注意,如果您尝试14,它将突破,因为在评估每个因素的情况下,这是效率低效,您可以通过预先简化内容来完成此操作,从而在今天或Tommorow稍后的过程中发布了3d中奖规则程序
赞助
赞助
赞助
赞助
R691175002




邮政发布: 2008年4月9日星期三下午5:55  帖子主题:Re:使用信息来解决问题[第1部分]

imo pascals三角是3d中奖规则糟糕的例子,因为真的,阵列是更好的方法来到这里。限制你的程序最多13个是非常野蛮的,就像在计算一样 每个数字的阶乘。

您可以实现递归解决方案,该解决方案避免阵列并执行比当前程序更快,但在该点处,您可能在阵列上的阵列上的误差,或者只实现一次重新返回阵列的动态解决方案。
care




邮政发布: 2008年4月10日星期四7:07  帖子主题:Re:使用信息来解决问题[第1部分]

看到我制作的演示。它是 这里
从上3d中奖规则显示帖子:   
   指数 -> 编程,图灵 -> 图灵教程
查看上3d中奖规则主题 告诉3d中奖规则朋友可打印的版本下载主题利率主题订阅本主题私人信息刷新页面 查看下3d中奖规则主题

11  [ 3 Posts ]
跳到:   


Style:  
搜索: