圖說演算法使用JavaScript(十三)

6-4八皇后演算法

  八皇后問題也是一種常見的堆疊應用實例。在西洋棋中的皇后可以在沒有限定一步走幾格的前提下,對其盤中的其他棋子直吃、橫吃及對角斜吃(左斜吃或右斜吃皆可),只要後放入的新皇后,再放入前必須考慮所放置直線方向、橫線方向或對角線方向是否已被放置就皇后,否則就會被先放入的舊皇后吃掉。
利用這個觀念,我們可以將其應用在4*4的棋盤,就稱為4-皇后問題;應用在8*8的棋盤,就稱為8-皇后問題。應用在N*N的棋盤,就稱為N-皇后問題。要解決N-皇后問題(在此我們以8-皇后為例),首先當於棋盤中置入一新皇后,且這個位置不被先前放置的皇后吃掉,則將此新皇后的位置存入堆疊。
但若欲放置新皇后的該行(或該列)的8個位置,都沒有辦法放置新皇后(亦即

圖說演算法使用JavaScript(十二)

6-3古老的河內塔演算法

  法國數學家Lucas在1883年介紹了一個十分經典的河內塔Tower of Hanoli智力遊戲,是典型使用遞迴式與堆疊觀念來解決問題的範例,內容是說在古印度神廟,廟中有三根木樁,天神希望和尚們把某些數量大小不同的圓盤,由第一個木樁全部移動到第三個木樁。
  更精確來說,河內塔問題可以這樣形容:假設有A、B、C三個木樁和n個大小均不同的套環Disc,由小到大編號為1,2,3,...n,編號越大直徑越大。開始的時候,n個套環套進A木樁上,現在希望找到將A木樁上的套環藉著B木樁當中間橋樑,全部移到C木樁上最少次數的方法。不過在搬動時還必須遵守下列規則:

1.直徑較小的套環永遠置於直徑較大的套環上。
2.套還可任意弟由一個木樁移到其他的木樁上。
3.每一次僅能移動一個套環,而且只能從最上面的套環開始移動。

  現在我們考慮n=1~3的狀況,以圖示方式為大家示範處理河內塔問題的步驟:

結論:移動了2@2-1=3次,盤子移動的次序為1,2,1(此處為盤子次序)
步驟:1->2,1->3,2->3(此處為木樁次序)

結論:移動了2@3-1=7次,盤子移動的次序為1,2,1,3,1,2,1(盤子次序)。
步驟為1->3,1->2,3->2,1->3,2->1,2->3,1->3(木樁次序)

  當有4個盤子時,我們實際操作後(在此不作圖說明),盤子移動的次序為121312141214121,而移動木樁的順序為1->2,1->3,2->3,1->2,3->1,3->2,1->2,1->3,2->3,2->1,3->1,2->3,1->2,1->3,2->3,而移動次數為2@4-1=15。
當n不大時,各位可以逐步用圖示解決,但n的值較大時,那就十分傷腦筋了。事實上,我們可以得到一個結論,例如當有n個盤子時,可將河內塔問題歸納成三個步驟:

1.將n-1個盤子,從木樁移動到木樁2。
2.將第n個最大盤子,從木樁1移動到木樁3。
3.將n-1個盤子,從木樁2移動到木樁3。

由上圖中,應該發現河內塔問題是非常適合以遞迴式與堆疊來解決。因為它滿足了遞迴的兩大特性1.有反覆執行的過程、2.有停止的出口。以下則以遞迴式來表示河內塔遞迴函數的演算法。

var hanoi=(n, p1, p2, p3)=>{
         if (n==1) //遞迴出口
                         process.stdout.write(‘套環從 ‘+p1+ ‘移到 ‘+p3+’\n’);
         else {
                         hanoi(n-1, p1, p3, p2);
                         process.stdout.write(‘套環從 ‘+p1+’ 移到 ‘+p3+’\n’);
                         hanoi(n-1, p2, p1, p3);
             }
}

JS          haoni.js

var hanoi=(n, p1, p2, p3)=> {
	if (n==1) //遞迴出口
		process.stdout.write('套環從'+p1+'移到 '+p3+'\n');
	else {
		hanoi(n-1, p1, p3, p2);
		process.stdout.write('套環從 '+p1+'移到' +p3+'\n');
		hanoi(n-1, p2, p1, p3);
	}
}
const prompt = require('prompt-sync')();
const j= parseInt(prompt('請輸入所移動套環數量:'));
hanoi(j,1,2,3);

PHP          haoni.php

$n=3;
echo "您所輸入的N是{$n}<br>";
haoni($n,1,2,3);

function haoni ($j, $p1, $p2, $p3){

	switch ($j){
		case 1;
		  	echo "套環從{$p1}移到{$p3}<br>";
		    break;
		default:
			haoni($j-1,$p1, $p3, $p2);
		  	echo "套環從{$p1}移到{$p3}<br>";
		  haoni($j-1,$p2, $p1, $p3);
	}

}

如何種玫瑰

from Erin’s garden

介質

*花盆是由小盆慢慢種到大盆,這種過程比較不會對玫瑰產生壓力。
*疏鬆營養通風的土壤,最適合玫瑰生長
粗泥炭土、碳化稻殼、椰塊、火山石、蚯蚓糞土、中大粒赤玉土

排水

*需要通風良好的土當介質。
*澆水:需要土乾後再澆水,每次要把土交透後才行。

通風

*植株的間隔要有空間讓空氣流通,病菌與害蟲不容易互相傳染。

日照

*玫瑰基本的日照為,日光直射4的小時。

噴藥

*用小蘇打粉加水,比例為1:1000。噴灑的時間為。頻率是每週一次。
用途是消毒。
*葵無露:沙拉油9、洗碗精1的比例混合後,以10:1000的比例噴灑。頻率也是每週一次。
用途是殺菌和殺蟲。

修剪整理

玫瑰花有愈修剪愈開花的特性,所以,修剪對它愈好(應該說是人類吧)。

下肥

下肥的時機:
*春天:下液肥、花開之後下禮肥。
*夏天:下液肥,容易吸收。摘下花苞讓植物休息,不要開花。
*冬天:放固體肥。在花盆外圍挖三個洞,放入肥料讓植物吸收。

肥料

肥料種類:
氮肥--促進葉子的生長。
磷肥--幫助植物開花。
鉀肥--促進植物健壯莖及生根,並使植物結果。

咖啡渣:氮肥,必須要充分發酵後才可以。
蛋殼:鈣、磷。幫助植物開花結果。
香蕉皮:鉀肥。
香蕉皮液肥的做法:
一、剩下的香蕉皮剪成小片,放入容器中加水,加到八分滿。
二、放置於半陰涼的地方,每天一次打開瓶蓋並搖晃。
三、快的話3-4天就可以,放置兩個月也行。
澆水比例:
1:10,要淡一點也可以,以薄肥多澆的原則最好。
所有的兄弟中,總會有一個特殊的!

啊 –不要跑,我的橘子!!

川普今天開始加關稅(4月9日)

美國總統川普(Donald Trump)2日宣布大規模徵收「對等關稅」計畫,美國各地海關由台灣時間9日中午12時起,開始對全球86國輸美貨品課徵新關稅,範圍遍及世界各角落。業者過去把生產基地由中國移至東南亞和墨西哥,遷廠與洗產地等策略這次將難以複製,工廠恐無法轉進第三地規避進口關稅,20世紀中起建立的國際經貿秩序將重新洗牌。

4月2日川普公布加關稅細節,臺灣排名第四名,加34%對等關稅。公布時正值臺灣春假期間,星期一(7)股市開市後就………

     台股今(7)日爆出股災,受到國際利空與連假累積賣壓衝擊,加權指數終場狂瀉2065.87點,收在19232.35點,跌幅高達9.7%;許多個股開盤即鎖跌停價,導致成交量急縮,成交量1473億元。權值股台積電、聯發科、鴻海等全數跌停,高價股創意、健策失守千金。

玫瑰葉子黃了怎麼辦?

玫瑰葉子黃了怎麼辦?應該有很多花友會碰到這個問題~~

*玫瑰葉子黃了怎麼辦?應該有很多花友會碰到這個問題~~
其實這多半是因爲、換了新環境、澆水不當、施肥不當、光照不當、溫度不適合、有患病蟲害~引起的,一起來看看究竟怎麼辦吧!

一、玫瑰葉子黃了的原因

1、澆水不當
玫瑰花是一種非常耐旱的植株,並不能澆水過量。玫瑰花在養殖過程中要是澆水過多,就會導致土壤積水,進一步就會導致玫瑰花的根部腐爛,養分輸送不到植株枝葉,葉子自然就會枯黃。但是長時間不澆水,也會令玫瑰花澆水缺水,導致葉子變黃。
解決方法:要是澆水過少,乾旱原因導致的葉子發黃,只要少量補水就行。澆水過多就要將植株脫盆,看看玫瑰花根部有沒有腐爛,剪掉腐爛部位,泡一泡殺菌劑消毒,之後換上乾燥的土壤再重新種植,後期減少澆水量。
2、光照不當
玫瑰需要適量的陽光才能保證植株的生長,平時光照過少,就會讓玫瑰花葉子缺少葉綠素,就會很快變黃和掉落。但是要是在夏季的時候光照過多,又會因爲被陽光曬的葉緣發枯,葉片部分也會出現黃斑。
解決方法:很多人不知道光照導致的玫瑰葉子黃了怎麼辦,其實光照過少的玫瑰就應該將其搬到陽光下面,曬太陽,玫瑰光合反應之後就會慢慢綠葉。光照過多的情況就要移放到陰涼環境,然後剪掉已經變黃的葉子,適量補水養護。
3、溫度不當
玫瑰花喜歡生長在溫暖的環境中,冬天氣溫太低的時候,玫瑰會進入休眠期,不少葉子就會變黃,進而掉落。但是玫瑰花在夏季太炎熱的時候,也會因爲溫度太高導致蒸騰作用,使得植株葉子脫水,慢慢捲曲變黃。
解決方法:玫瑰花凍得葉子發黃的話,最好將植株移放到溫暖的陽臺上,一邊曬太陽,一邊保溫,將溫度保持在8℃以上。夏天氣溫太高導致的葉子發黃就要立刻降溫處理,將其移放到陰涼環境,然後向植株周圍噴水霧保溼降溫。
4、施肥不當
玫瑰施肥不當的時候也會在造成葉子變得枯黃的。施肥太勤、太多會出現玫瑰的老葉尖變黃、枯落。但是因爲長時間沒有肥料的養護造成黃葉,是會出現新葉發黃,葉色變淺,最後慢慢的掉落。
解決方法:玫瑰是少肥造成的黃葉就要及時添加肥料,但是肥料過多的話,就要儘量多澆水來稀釋過濃的肥料。但是要是澆水之後不起效的話,就要換掉肥料過多的土壤,換上一盆疏鬆透氣的土壤,重新種植玫瑰。

二、預防玫瑰葉子黃的方法

1、環境保溼
想要預防玫瑰花出現黃葉現象的話,最重要的是做到養殖玫瑰環境保溼。只有溼潤的環境纔有利於玫瑰植株的生長。春秋季節保持每天向玫瑰植株和周圍環境噴一次水霧保溼。夏天的時候早上和下午都要噴水霧保溼,冬天的時候就要減少噴水霧次數了。
2、修剪花葉
玫瑰花的生長過程中也會出現因花枝太濃密導致的植株缺少養分,這樣也是很容易黃葉的。所以在每年的春季的生長期的時候,要將植株裏面細弱,或是病枝枯枝剪掉,這樣纔不會因爲植株太過茂密導致缺少養分而黃葉。
3、土壤補鐵
想要讓玫瑰這種木本植株不出現黃葉現象的話,一定要時常注重它的土壤質量。木本植株的土壤是不能缺鐵的,在養殖的時候應該時常爲土壤補“鐵”,其實只要加入一點點的硫酸亞鐵水溶液就行了,或者是在施肥的時候用肥餅加上硫酸亞鐵,然後稀釋在水中之後施加在玫瑰的根部。
4、植株防病
玫瑰花要是患病的話,也是會有掉葉子黃葉子的現象的,注意玫瑰的生長環境不要太潮溼和悶熱,一定要保持通風纔不會患病。植株患病之後,就要用殺菌劑或常用藥噴灑植株,只要多噴兩次,就會讓玫瑰藥到病除了。
5.連續下雨的潮濕天氣、風大的天氣都會使玫瑰黃葉、這時就要先避免長時間淋雨、把玫瑰先移至屋簷下避風避雨、再噴一下殺菌劑消毒、就會改善!
馬內 Edouard Manet

php函數 return

值通過使用可選的返回語句返回。可以返回包括數組和對象的任意類型。返回語句會立即中止函數的運行,並且將控製權交回調用該函數的代碼行。

<?php
function square($num)
{
return $num * $num;
}
echo square(4); // 输出 '16'。
?>

函數不能返回多個值,但可以通過返回一個數組來得到類似的效果。

<?php
function small_numbers()
{
return [0, 1, 2];
}
// 使用短数组语法将数组中的值赋给一组变量
[$zero, $one, $two] = small_numbers();

// 在 7.1.0 之前,唯一相等的选择是使用 list() 结构
list($zero, $one, $two) = small_numbers();
?>