tsql – 如何使用T-SQL生成Mandelbrot?
发布时间:2020-07-03 12:16:33  所属栏目:MsSql  来源:互联网 
            导读:学习一点T-SQL,并认为一个有趣的练习就是用它生成一个Mandelbrot集. 原来已经有人(最近出现了).我会让其他人发布它作为答案,但我很好奇可以做出哪些优化. 或者,您将如何使代码更具可读性? 我将选择最可读(但相当紧凑)的版本作为已接受的答案(太糟糕了,我们还
                
                
                
            | 
                         学习一点T-SQL,并认为一个有趣的练习就是用它生成一个Mandelbrot集. 原来已经有人(最近出现了).我会让其他人发布它作为答案,但我很好奇可以做出哪些优化. 或者,您将如何使代码更具可读性? 我将选择最可读(但相当紧凑)的版本作为已接受的答案(太糟糕了,我们还没有代表奖励!)除非有人真的带来了很好的优化. 奖金指向那些教我一些关于T-SQL的答案. -亚当 解决方法Create PROCEDURE dbo.mandlebrot
@left float,@right float,@Top float,@Bottom float,@Res float,@MaxIterations Integer = 500
As
Set NoCount On
Declare @Grid Table (
    X float Not Null,Y float Not Null,InSet Bit
   Primary Key (X,Y))
Declare @Xo float,@Yo float,@Abs float
Declare @PtX Float,@PtY Float
Declare @Iteration Integer Set @Iteration = 0
Select @Xo = @Left,@Yo = @Bottom
While @Yo <= @Top Begin
    While @Xo <= @Right Begin
        Select @PtX = @Xo,@PtY = @Yo
        While @Iteration < @MaxIterations 
            And (Square(@PtX) + Square(@PtY)) < 4.0 Begin
            Select @PtX = Square(@PtX) - Square(@PtY) + @Xo,@PtY = 2* @PtX * @PtY + @Yo
            Select @Iteration,@PtX,@PtY
            Set @Iteration = @Iteration + 1
        End
        Insert @Grid(X,Y,InSet) 
        Values(@Xo,@Yo,Case 
            When @Iteration < @MaxIterations
                    Then 1 Else 0 End)
        Set @Xo = @Xo + @res
        Set @Iteration = 0
    End
    Select @Xo = @Left,@Yo = @Yo + @Res
End
Select * From @Grid                        (编辑:莱芜站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!  | 
                  
相关内容
- 奇怪的SQL2005问题. “SqlConnection不支持并行事务”
 - SQLSERVER中忽略索引提示
 - 如何从SharePoint Content DB中查询List数据
 - SQL Server 提取数字、提取英文、提取中文的sql语句
 - 如何在数据库中存储图像android [复制]
 - sql server 2000数据库备份还原的图文教程
 - sqlserver 多库查询 sp_addlinkedserver使用方法(添加链接
 - 将Decimal转换为时间SSRS / SQL
 - SQLServer用t-sql命令批量删除数据库中指定表(游标循环删除
 - sql-server – SQL Compilations对SQL Server性能的影响有多
 
