【第998关】用AHK实现杨辉三角

杨辉三角介绍

杨辉三角,是二项式系数在三角形中的一种几何排列。杨辉三角是中国古代数学的杰出研究成果之一,它把二项式系数图形化,把组合数内在的一些代数性质直观地从图形中体现出来,是一种离散型的数与形的结合

形式如下

【第998关】用AHK实现杨辉三角

目标

以不同于例子中的方式,用ahk实现

例子1

aaa := sj(10)

sj(Num){
	a := [], b := [], c := []
	loop % Num
	{
		If (A_Index = 1){
			c.Push(1)
			a.Push(c)
			c := []
		} Else If (A_Index = 2){
			c.Push(1)
			c.Push(1)
			a.Push(c)
			b := c
			c := []
		} Else {
			c.Push(1)
			For k,v in b {
				If (k > 1) {
					d := v + b[k-1]
					c.Push(d)
				}
			}
			c.Push(1)
			a.Push(c)
			b := c
			c := []
		}
	}
	For i,n in a
	{
		For ii,nn in n
		{
			If (ii = 1) {
				nn := Format("{:" (Num-i+1) "}", nn)
				nn := RegExReplace(nn, " ", "`t")
				s .= nn
			}
			Else
				s .= "`t`t" nn
		}
		s .= "`n"
	}
	Return s
}

例子2

by AutoHotkey(ahk) | 中文社区 — 蜜獾哥

YanHuiSanJiao:=PrintYanHuiSanJiao(15,Array)
Clipboard:=YanHuiSanJiao
MsgBox % YanHuiSanJiao
PrintYanHuiSanJiao(Count,ByRef Array){
	String:="",Array:=[]
	if !Count
		Return ""
	Loop,% Count {
		Index:=A_Index,Array[Index]:=IsObject(Array[Index])?Array[Index]:[]
		if objLength(Array[Index-1]){
			loopstring:=""
			Loop,% objLength(Array[Index-1])+1
			{
				TEMPVar:=(Array[Index-1,A_Index-1]?Array[Index-1,A_Index-1]:0)+(Array[Index-1,A_Index]?Array[Index-1,A_Index]:0)
				Array[Index].Push(TEMPVar)
				loopstring.=TEMPVar . "  "
			}
			String.=SubStr(Format("{: " (Count-Index)+1 "}",TEMPVar),1,-1) Trim(loopstring," ") . "`n",TEMPVar:=""
		}Else{
			Array[Index].Push(Index)
			String.=Format("{: " (Count-Index)+1 "}",Index) . "`n"
		}
	}

	Return StrReplace(String,A_Space,A_Tab)
}

给TA捐赠
共{{data.count}}人
人已捐赠
其他案例

AHKv1 L版自定义Gui窗口默认Class类名

2022-6-12 12:04:07

其他函数案例

Sinet——Python_AHK 陌诺开源计划

2022-6-17 6:55:13

6 条回复 A文章作者 M管理员
  1. AHK中文社区

    999关已经有了

  2. ㅤ15433

    ?

  3. 蜜獾哥
    蜜獾哥给您捐赠了¥5
  4. 蜜獾哥

    闯关接龙又多了一层

  5. AHK中文社区
    1河许人给您捐赠了¥2
  6. AHK中文社区

    加油

个人中心
购物车
优惠劵
有新私信 私信列表
搜索