1. 垂直於對角線的兩邊
垂足在對角線上,距離一頂點200毫米
2. excel中把單元格對角線一分為二時,如何把字寫上去,比如說,橫排是日期,豎排是工資,
一般做法,(如果多線條的話,可以在WORD里編輯好.再復制過來.),否則使用文本框.線條,單元格邊框中的斜線.再ALT+ENTER及空格來調整字體的位置.
如果是格式的東西比較多.建議還是用WORD來編輯吧
3. 尺規作圖 平行四邊形對角線的垂線 做法
1、連BC
2、以A為圓心,BC為半徑作弧交BD所在直線於M、N;
3、分別以M、N為圓心,大於1/2MN的長為半徑作弧,兩弧相交於點H;
4、作直線AH,直線AH與BD交與一點X,AX即為所求。
4. 體操課上。。對角線行進怎麼走啊。。。口令和做法。。哪位朋友幫幫忙啊。。。
當排頭走近場地一角時發出口令,聽到口令,排頭自行轉彎,面向相對一角行進,其餘學生跟進
5. 外匯軟體MetaTrader軟體 mt4軟體里的江恩角度線參數有問題,怎麼改
MT4的指標問題很多,也不知道毛子做軟體時在想啥,通用的角度線參數在MT4平台也有誤差,下邊的參數是我一點一點修改出來的,你可以驗證一下,方法就是在MT4的方塊背景線里取個8X8方塊,用下面參數的角度線中線連接對角線,看看是不是按比例平分了兩個邊。
別的數都很好確認,最大的問題是3線和0.33線,也就是參數里的-2.041和0.666,除去這兩線其他的都按比例分割了兩邊,這倆因為我數學基礎不好,不知道該畫多大的正方形(狗頭
-7.125
-3
-2.041
-1
0
0.5
0.666
0.75
0.875
還有,我是改的斐波那契線的參數,我現在下的MT4里,有問題的江恩線好像已經被刪除了
6. 10條對角線有幾條邊 做法還要
是不是一個定點連接的對角線?
如果是那就有10+3條邊 因為:
一個頂點和自身以及相鄰的兩個點沒有對角線
所以過一個頂點有n-3條對角線
有n個頂點,每條對角線過兩個頂點
一共有n(n-3)/2條對角線
7. 正方體對角線公式是什麼
設正方體的棱長為a
面的對角線為√(a²+a²)=a√2
體的對角線為 √(a²+2a²)=a√3
(以正方體為例)先取上表面的面對角線,計算,得到,根號2倍棱長這根面對角線和它相交的棱,(就是垂直於上表面的棱),又可以組成一個直角三角形,而這個直角三角形的斜邊就是體對角線。
長方體對角線=
(7)外匯對角線的做法擴展閱讀:
在工程中,對角支架是用於支撐矩形結構(例如腳手架)的梁以承受推入其中的強力;雖然被稱為對角線,但由於實際考慮,對角線通常不連接到矩形的角部。
對角線鉗是指刀口切割邊緣所定義的鋼絲鉗,它與關節鉚釘相交於一個角度或成「對角線」,因此得名。
對角線捆綁是用於將翼梁或桿結合在一起的綁扎類型,使得綁帶以一定角度交叉在桿上。
在英式足球中,對角線控制戰術是裁判和助理裁判將自己定位在球場四個象限中的一個位置。
特徵
〔1〕正方體有8個頂點,每個頂點連接三條棱。
〔2〕正方體有12條棱,每條棱長度相等。
(3)正方體有6個面,每個面面積相等。
體概念
棱長是1厘米的正方體,體積是1立方厘米。
棱長是1分米的正方體,體積是1立方分米。
棱長是1米的正方體,體積是1立方米。
外接球半徑
R=正方體體對角線的一半
內切球半徑
r=正方體邊長的一半
用平面截正方體
用一個平面截正方體。
可得到以下三角形、矩形、正方形、五邊形、正五邊形、六邊形、正六邊形、菱形、梯形。
具體做法:
三角形—過一個頂點與相對的面的對角線以內的范圍內的線。
矩形——過兩條相對的棱或一條棱。正方形——平行於一個面。
五邊形——過四條棱上的點和一個頂點或五條棱上的點。
六邊形——過六條棱上的點。
正六邊形——過六條棱的中點。
菱形——過相對頂點。
梯形——過相對兩個面上平行不等長的線。
8. 康托的對角線證法
停機問題
不存在這樣一個程序(演算法),它能夠計算任何程序(演算法)在給定輸入上是否會結束(停機)。
那麼,如何來證明這個停機問題呢?反證。假設我們某一天真做出了這么一個極度聰明的萬能演算法(就叫God_algo吧),你只要給它一段程序(二進制描述),再給它這段程序的輸入,它就能告訴你這段程序在這個輸入上會不會結束(停機),我們來編寫一下我們的這個演算法吧:
bool God_algo(char* program, char* input)
{
if(<program> halts on <input>)
return true;
return false;
}
這里我們假設if的判斷語句裡面是你天才思考的結晶,它能夠像上帝一樣洞察一切程序的宿命。現在,我們從這個God_algo出發導出一個新的演算法:
bool Satan_algo(char* program)
{
if( God_algo(program, program) ){
while(1); // loop forever!
return false; // can never get here!
}
else
return true;
}
正如它的名字所暗示的那樣,這個演算法便是一切邪惡的根源了。當我們把這個演算法運用到它自身身上時,會發生什麼呢?
Satan_algo(Satan_algo);
我們來分析一下這行簡單的調用:
顯然,Satan_algo(Satan_algo)這個調用要麼能夠運行結束返回(停機),要麼不能返回(loop forever)。
如果它能夠結束,那麼Santa_algo演算法裡面的那個if判斷就會成立(因為God_algo(Santa_algo,Santa_algo)將會返回true),從而程序便進入那個包含一個無窮循環while(1);的if分支,於是這個Satan_algo(Satan_algo)調用便永遠不會返回(結束)了。
而如果Satan_algo(Satan_algo)不能結束(停機)呢,則if判斷就會失敗,從而選擇另一個if分支並返回true,即Satan_algo(Satan_algo)又能夠返回(停機)。
總之,我們有:
Satan_algo(Satan_algo)能夠停機=> 它不能停機
Satan_algo(Satan_algo)不能停機=> 它能夠停機
所以它停也不是,不停也不是。左右矛盾。
於是,我們的假設,即God_algo演算法的存在性,便不成立了。正如拉格朗日所說:「陛下,我們不需要(上帝)這個假設」[4]。
這個證明相信每個程序員都能夠容易的看懂。然而,這個看似不可捉摸的技巧背後其實隱藏著深刻的數學原理(甚至是哲學原理)。在沒有認識到這一數學原理之前,至少我當時是對於圖靈如何想出這一絕妙證明感到無法理解。但後面,在介紹完了與圖靈的停機問題「同構」的Y combinator之後,我們會深入哥德爾的不完備性定理,在理解了哥德爾不完備性定理之後,我們從這一同樣絕妙的定理出發,就會突然發現,離停機問題和神奇的Y combinator只是咫尺之遙而已。當然,最後我們會回溯到一切的盡頭,康托爾那裡,看看停機問題、Y combinator、以及不完備性定理是如何自然而然地由康托爾的對角線方法推導出來的,我們將會看到這些看似神奇的構造性證明的背後,其實是一個簡潔優美的數學方法在起作用。
Y Combinator
了解Y combinator的請直接跳過這一節,到下一節「哥德爾的不完備性定理」。
讓我們暫且擱下但記住繞人的圖靈停機問題,走進函數式編程語言的世界,走進由跟圖靈機理論等價的lambda運算元發展出來的另一個平行的語言世界。讓我們來看一看被人們一代一代吟唱著的神奇的Y Combinator…
關於Y Combinator的文章可謂數不勝數,這個由師從希爾伯特的著名邏輯學家Haskell B.Curry(Haskell語言就是以他命名的,而函數式編程語言裡面的Curry手法也是以他命名)「發明」出來的組合運算元(Haskell是研究組合邏輯(combinatory logic)的)彷彿有種神奇的魔力,它能夠算出給定lambda表達式(函數)的不動點。從而使得遞歸成為可能。事實上,我們待會就會看到,Y Combinator在神奇的表面之下,其實隱藏著深刻的意義,其背後體現的意義,曾經開出過歷史上最燦爛的數學之花,所以MIT的計算機科學系將它做成系徽也就不足為奇了[5]。
當然,要了解這個神奇的運算元,我們需要一點點lambda運算元理論的基礎知識,不過別擔心,lambda運算元理論是我目前見過的最簡潔的公理系統,這個系統僅僅由三條非常簡單的公理構成,而這三條公理裡面我們又只需要關注前兩條。
以下小節——lambda calculus——純粹是為了沒有接觸過lambda運算元理論的讀者准備的,並不屬於本文重點討論的東西,然而要討論Y combinator就必須先了解一下lambda(當然,以編程語言來了解也行,但是你會看到,丘齊最初提出的lambda運算元理論才是最最簡潔和漂亮的,學起來也最省事。)所以我單獨准備了一個小節來介紹它。如果你已經知道,可以跳過這一小節。不知道的讀者也可以跳過這一小節去wikipedia上面看,這里的介紹使用了wikipedia上的方式
lambda calculus
先來看一下lambda表達式的基本語法(BNF):
<expr> ::= <identifier>
<expr> ::= lambda <identifier-list>. <expr>
<expr> ::= (<expr> <expr>)
前兩條語法用於生成lambda表達式(lambda函數),如:
lambda x y. x + y
haskell裡面為了簡潔起見用「\」來代替希臘字母lambda,它們形狀比較相似。故而上面的定義也可以寫成:
\ x y. x + y
這是一個匿名的加法函數,它接受兩個參數,返回兩值相加的結果。當然,這里我們為了方便起見賦予了lambda函數直觀的計算意義,而實際上lambda calculus裡面一切都只不過是文本替換,有點像C語言的宏。並且這里的「+」我們假設已經是一個具有原子語義的運算符[6],此外,為了方便我們使用了中綴表達(按照lambda calculus系統的語法實際上應該寫成「(+ x y)」才對——參考第三條語法)。
那麼,函數定義出來了,怎麼使用呢?最後一條規則就是用來調用一個lambda函數的:
((lambda x y. x + y) 2 3)
以上這一行就是把剛才定義的加法函數運用到2和3上(這個調用語法形式跟命令式語言(imperative language)慣用的調用形式有點區別,後者是「f(x, y)」,而這里是「(f x y)」,不過好在順序沒變:) )。為了表達簡潔一點,我們可以給(lambda x y. x + y)起一個名字,像這樣:
let Add = (lambda x y. x + y)
這樣我們便可以使用Add來表示該lambda函數了:
(Add 2 3)
不過還是為了方便起見,後面調用的時候一般用「Add(2, 3)」,即我們熟悉的形式。
有了語法規則之後,我們便可以看一看這個語言系統的兩條簡單至極的公理了:
Alpha轉換公理:例如,「lambda x y. x + y」轉換為「lambda a b. a + b」。換句話說,函數的參數起什麼名字沒有關系,可以隨意替換,只要函數體裡面對參數的使用的地方也同時注意相應替換掉就是了。
Beta轉換公理:例如,「(lambda x y. x + y) 2 3」轉換為「2 + 3」。這個就更簡單了,也就是說,當把一個lambda函數用到參數身上時,只需用實際的參數來替換掉其函數體中的相應變數即可。
就這些。是不是感覺有點太簡單了?但事實就是如此,lambda運算元系統從根本上其實就這些東西,然而你卻能夠從這幾個簡單的規則中推演出神奇無比的Y combinator來。我們這就開始!
遞歸的迷思
敏銳的你可能會發現,就以上這兩條公理,我們的lambda語言中無法表示遞歸函數,為什麼呢?假設我們要計算經典的階乘,遞歸描述肯定像這樣:
f(n):
if n == 0 return 1
return n*f(n-1)
當然,上面這個程序是假定n為正整數。這個程序顯示了一個特點,f在定義的過程中用到了它自身。那麼如何在lambda運算元系統中表達這一函數呢?理所當然的想法如下:
lambda n. If_Else n==0 1 n*<self>(n-1)
當然,上面的程序假定了If_Else是一個已經定義好的三元操作符(你可以想像C的「?:」操作符,後面跟的三個參數分別是判斷條件、成功後求值的表達式、失敗後求值的表達式。那麼很顯然,這個定義裡面有一個地方沒法解決,那就是<self>那個地方我們應該填入什麼呢?很顯然,熟悉C這類命令式語言的人都知道應該填入這個函數本身的名字,然而lambda運算元系統裡面的lambda表達式(或稱函數)是沒有名字的。
怎麼辦?難道就沒有辦法實現遞歸了?或者說,丘齊做出的這個lambda運算元系統裡面根本沒法實現遞歸從而在計算能力上面有重大的缺陷?顯然不是。馬上你就會看到Y combinator是如何把一個看上去非遞歸的lambda表達式像變魔術那樣變成一個遞歸版本的。在成功之前我們再失敗一次,注意下面的嘗試:
let F = lambda n. IF_Else n==0 1 n*F(n-1)
看上去不錯,是嗎?可惜還是不行。因為let F只是起到一個語法糖的作用,在它所代表的lambda表達式還沒有完全定義出來之前你是不可以使用F這個名字的。更何況實際上丘齊當初的lambda運算元系統裡面也並沒有這個語法元素,這只是剛才為了簡化代碼而引入的語法糖。當然,了解這個let語句還是有意義的,後面還會用到。
一次成功的嘗試
在上面幾次失敗的嘗試之後,我們是不是就一籌莫展了呢?別忘了軟體工程裡面的一條黃金定律:「任何問題都可以通過增加一個間接層來解決」。不妨把它沿用到我們面臨的遞歸問題上:沒錯,我們的確沒辦法在一個lambda函數的定義裡面直接(按名字)來調用其自身。但是,可不可以間接調用呢?
我們回顧一下剛才不成功的定義:
lambda n. If_Else n==0 1 n*<self>(n-1)
現在<self>處不是缺少「這個函數自身」嘛,既然不能直接填入「這個函數自身」,我們可以增加一個參數,也就是說,把<self>參數化:
lambda self n. If_Else n==0 1 n*self(n-1)
上面這個lambda運算元總是合法定義了吧。現在,我們調用這個函數的時候,只要加傳一個參數self,這個參數不是別人,正是這個函數自身。還是為了簡單起見,我們用let語句來給上面這個函數起個別名:
let P = lambda self n. If_Else n==0 1 n*self(n-1)
我們這樣調用,比如說我們要計算3的階乘:
P(P, 3)
也就是說,把P自己作為P的第一個參數(注意,調用的時候P已經定義完畢了,所以我們當然可以使用它的名字了)。這樣一來,P裡面的self處不就等於是P本身了嗎?自身調用自身,遞歸!
可惜這只是個美好的設想,還差一點點。我們分析一下P(P, 3)這個調用。利用前面講的Beta轉換規則,這個函數調用展開其實就是(你可以完全把P當成一個宏來進行展開!):
IF_Else n==0 1 n*P(n-1)
看出問題了嗎?這里的P(n-1)雖然調用到了P,然而只給出了一個參數;而從P的定義來看,它是需要兩個參數的(分別為self和n)!也就是說,為了讓P(n-1)變成良好的調用,我們得加一個參數才行,所以我們得稍微修改一下P的定義:
let P = lambda self n. If_Else n==0 1 n*self(self, n-1)
請注意,我們在P的函數體內調用self的時候增加了一個參數。現在當我們調用P(P, 3)的時候,展開就變成了:
IF_Else 3==0 1 3*P(P, 3-1)
而P(P, 3-1)是對P合法的遞歸調用。這次我們真的成功了!
不動點原理
然而,看看我們的P的定義,是不是很醜陋?「n*self(self, n-1)」?什麼玩意?為什麼要多出一個多餘的self?DRY!怎麼辦呢?我們想起我們一開始定義的那個失敗的P,雖然行不通,但最初的努力往往是大腦最先想到的最直觀的做法,我們來回顧一下:
let P = lambda self n. If_Else n==0 1 n*self(n-1)
這個P的函數體就非常清晰,沒有冗餘成分,雖然參數列表裡面多出一個self,但我們其實根本不用管它,看函數體就行了,self這個名字已經可以說明一切了對不對?但很可惜這個函數不能用。我們再來回想一下為什麼不能用呢?因為當你調用P(P, n)的時候,裡面的self(n-1)會展開為P(n-1)而P是需要兩個參數的。唉,要是這里的self是一個「真正」的,只需要一個參數的遞歸階乘函數,那該多好啊。為什麼不呢?乾脆我們假設出一個「真正」的遞歸階乘函數:
power(n):
if(n==0) return 1;
return n*power(n-1);
但是,前面不是說過了,這個理想的版本無法在lambda運算元系統中定義出來嗎(由於lambda函數都是沒名字的,無法自己內部調用自己)?不急,我們並不需要它被定義出來,我們只需要在頭腦中「假設」它以「某種」方式被定義出來了,現在我們把這個真正完美的power傳給P,這樣:
P(power, 3)
注意它跟P(P, 3)的不同,P(P, 3)我們傳遞的是一個有缺陷的P為參數。而P(power, 3)我們則是傳遞的一個真正的遞歸函數power。我們試著展開P(power, 3):
IF_Else 3==0 1 3*power(3-1)
發生了什麼??power(3-1)將會計算出2的階乘(別忘了,power是我們設想的完美遞歸函數),所以這個式子將會忠實地計算出3的階乘!
回想一下我們是怎麼完成這項任務的:我們設想了一個以某種方式構造出來的完美的能夠內部自己調用自己的遞歸階乘函數power,我們發現把這個power傳給P的話,P(power, n)的展開式就是真正的遞歸計算n階乘的代碼了。
9. AI裡面怎麼畫對角線
你好,是指畫裁切線嗎?不同人有不同的做法。我的做法是這樣的(以CS4為例):
選中要畫裁切線的線條,線粗改為0.001,將線條組合,點效果/裁剪標記,這樣四邊會出來四個線,但是選不中對吧。再點對象/擴展外觀,這樣線條就出來了。然後根據每個方框的大小來移動復制線條。熟練了之後。畫這種角線速度可以很快的完成
10. 求對角線長為2根號3的長方體的最大體積 希望用圖來詳細闡述該題的詳細做法
矩形中,對角線不變時,以正方形面積最大,
長方體中,對角線不變時,以立方體體積最大,
所以,+y?+z?=3x?=12,=4,x=2
V=xyz=2?=8