標籤: 收購3c

  • 市場電動車需求上升,Nissan將對現有車款EV化

    市場電動車需求上升,Nissan將對現有車款EV化

    日經新聞報導,日產汽車(Nissan)將大舉擴充電動車(EV)產品陣容,日產社長兼CEO西川廣人27日於橫濱市舉行的定期股東會上表示,「今年度將推出新型『Leaf』,且中期來看,將推動現行已進行量產販售的車款EV化」。

    因北美、中國加強環保規範,帶動EV有望進一步普及。日產目前的EV車款僅有「Leaf」等少數幾款,而之後計畫將SUV、輕型汽車以及商用車進行EV化。

    另外,日產會長Carlos Ghosn也在股東會上表示,「日產在EV界居領導位置。日產EV累計銷售量超過60萬台、為美國特斯拉(Tesla)的2倍」。

    日本市調機構富士經濟(Fuji Keizai)6月22日公布銷售動向報告指出,EV在2025年以後需求將急速增加,預估2030年時EV年銷售量將增至407萬台、超越油電混合車(HV、2030年銷售量預估為391萬台),且之後雙方的差距將持續擴大。在中國需求增加加持下,2035年EV全球銷售量將擴大至630萬台、將達2016年的13.4倍(較2016年增加12.4倍)。

    (本文內容由授權使用。圖片出處:)

    本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!!

    網頁設計一頭霧水??該從何著手呢? 找到專業技術的網頁設計公司,幫您輕鬆架站!

    ※想知道最厲害的台北網頁設計公司推薦台中網頁設計公司推薦專業設計師”嚨底家”!!

  • 樹莓派3B/3B+和4B安裝OpenCV教程 (屢試不爽)

    樹莓派3B/3B+和4B安裝OpenCV教程 (屢試不爽)

        

    安裝前準備

    1. 在樹莓派上拓展文件系統

        如果你使用的樹莓派為新裝的系統,那麼第一件事情就是擴展文件系統,以包括microSD卡上的所有空間。

        具體步驟如下:

          1.在樹莓派終端(或者SSH)上輸入:

    1 $ sudo raspi-config

     

          2.然後選擇“高級選項”菜單項

       

           3.然後選擇“擴展文件系統”:

      

           4. 選擇第一個選項“A1.Expand Filesystem”,按鍵盤上的Enter鍵,完成後點擊“Finish”按鈕,重新啟動樹莓派。

        如果不能重啟,則可以執行以下操作:

    1 $ sudo reboot

     

          重新啟動后,文件系統已經擴展為包括micro-SD卡上的所有空間。可以通過執行 df -h 檢查輸出來驗證磁盤是否已擴展。

    1 $ df -h

     

     

      

     

          5. 此時我的樹莓派文件系統已擴展為包含16GB的micor-SD卡。如果您使用的是8GB卡,則可能使用了將近50%的可用空間,

        因此,一件簡單的事情就是刪除LibreOffice和Wolfram引擎以釋放Pi上的一些空間:

    1 $ sudo apt-get purge wolfram-engine
    2 $ sudo apt-get purge libreoffice*
    3 $ sudo apt-get clean
    4 $ sudo apt-get autoremove

     

     

      2.更換樹莓派源為清華鏡像源,防止後面下載GTK2.0失敗。

        換源方法參考:

    安裝步驟

       1.更新系統

    1 $ sudo apt-get update && sudo apt-get upgrade

       

       2.在樹莓派上安裝OpenCV所需要依賴的工具和一些圖像視頻庫

    • 安裝包括CMake的開發人員工具

      1 // 安裝build-essential、cmake、git和pkg-config
      2 sudo apt-get install build-essential cmake git pkg-config 

       

    • 安裝常用圖像工具包

      1 // 安裝jpeg格式圖像工具包
      2 sudo apt-get install libjpeg8-dev 

       

      1 // 安裝tif格式圖像工具包
      2 sudo apt-get install libtiff5-dev 

       

      1 // 安裝JPEG-2000圖像工具包
      2 sudo apt-get install libjasper-dev 

       

      1 // 安裝png圖像工具包
      2 sudo apt-get install libpng12-dev 

       

    • 安裝常用的視頻庫

    1 //v4l中4後面的是 英文字母“l”
    2 sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev

     

      

    • 安裝GTK2.0

      1 sudo apt-get install libgtk2.0-dev

       

    • 安裝OpenCV數值優化函數包

    1 sudo apt-get install libatlas-base-dev gfortran

     

        

     

        3.下載編譯OpenCV源碼

    • 下載opencv3.4.3和opencv_contrib3.4.3

    1 // 下載OpenCV
    2 wget -O opencv-3.4.3.zip https://github.com/Itseez/opencv/archive/3.4.3.zip

     

       

    1 // 解壓OpenCV
    2 unzip opencv-3.4.3.zip

     

       

    1 // 下載OpenCV_contrib庫:
    2 wget -O opencv_contrib-3.4.3.zip https://github.com/Itseez/opencv_contrib/archive/3.4.3.zip

     

       

     

    1 // 解壓OpenCV_contrib庫:
    2 unzip opencv_contrib-3.4.3.zip

       

    • 配置CMake編譯OpenCV 3環境

        使用CMake設置編譯,然後運行 make 來編譯OpenCV。這是整個過程中耗時最長的步驟,大約4個小時。

        回到OpenCV存儲庫並創建 build 文件夾,用來存放 CMake 編譯時產生的臨時文件。

    1 //具體路徑請以實際為準
    2 cd ~/opencv-3.4.3
    3 
    4 // 新建build文件夾
    5 mkdir build
    6      
    7 // 進入build文件夾
    8 cd build
    9   

       

     

    •  設置CMake編譯參數,安裝目錄默認為/usr/local

        注意參數名、等號和參數值之間不能有空格,每行末尾“\”之前有空格,這裏使用換行符“\”是為了看起來工整,參數值最後是兩個英文的點,意思是上級

      目錄(【注意】如果在root用戶下執行cmake命令,請將OPENCV_EXTRA_MODULES_PATH的值改為絕對路徑,如:/home/pi/opencv_contrib-3.4.3/modules):

    /** CMAKE_BUILD_TYPE是編譯方式
    * CMAKE_INSTALL_PREFIX是安裝目錄
    * OPENCV_EXTRA_MODULES_PATH是加載額外模塊
    * INSTALL_PYTHON_EXAMPLES是安裝官方python例程
    * BUILD_EXAMPLES是編譯例程(這兩個可以不加,不加編譯稍微快一點點,想要C語言的例程的話,在最後一行前加參數INSTALL_C_EXAMPLES=ON,要C++例程的話在最後一行前加參數INSTALL_C_EXAMPLES=ONINSTALL_CXX_EXAMPLES=ON)
    **/
     
    sudo cmake -D CMAKE_BUILD_TYPE=RELEASE \
        -D CMAKE_INSTALL_PREFIX=/usr/local \
        -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.4.3/modules \
        -D INSTALL_PYTHON_EXAMPLES=ON \
        -D INSTALL_CXX_EXAMPLES=ON \
        -D BUILD_EXAMPLES=ON ..
     

       

     

         配置完后如下圖:

       

     

    • 備份build文件中的東西

         因為下一步的編譯會使用build文件中的東西,假如編譯失敗后還要重新進行cmake,比較耽誤時間,這裏可以直接備份一下cmake好的build文件夾,

      命名為build1,重新make的時候可以拿來用。

    1 //返回上層目錄
    2 cd ..
    3 //備份release文件夾
    4 cp -r release ./release1

      

    • 為樹莓派增加SWAP

        在開始編譯之前,建議你增加交換空間。這將使你使用樹莓派的所有四個內核來編譯OpenCV,而不會由於內存耗盡導致編譯掛起。

        打開 etc dphys – swapfile   文件:

    1 $ sudo nano /etc/dphys-swapfile

        然後編輯 CONF_SWAPSIZE  變量:

       

     

          注意:此處我將交換空間從100MB增加到2048MB;如果你不執行此步驟,你的樹莓派編譯時很可能掛起。

        重新啟動交換服務:

    1 $ sudo /etc/init.d/dphys-swapfile stop
    2 $ sudo /etc/init.d/dphys-swapfile start

       

     

         注意:增加交換空間的大小是燒壞樹莓派 microSD卡的好方法。基於閃存的存儲只能執行有限數量的寫操作,直到該卡基本不能夠容納1和0。我們只能在短時間內

      啟動大型交換,所以這沒什麼大問題的。

    • 編譯OpenCV 3

    1 /**
    2 * 以管理員身份,否則容易出錯
    3 * make命令參數-j4指允許make使用最多4個線程進行編譯,這樣編譯速度會更快
    4 * 可以根據自己機器的情況進行更改
    5 * 使用tee命令可以將編譯過程中終端显示的信息保存到make.log文件中,便於查看,這樣即使VNC斷線,終端的* 信息太多看不到,也可以通過make.log文件查看編譯過程。
    6 **/
    7  
    8 sudo make -j4 2>&1 | tee make.log

       

     

        如果看到進度編譯到100%,那麼說明編譯安裝成功。

       

    1 // 安裝
    2 sudo make install
    3  
    4 // 更新動態鏈接庫
    5 sudo ldconfig

        

        注意: 不要忘記回到 /etc/dphysswapfile 文件:

           1.將 CONF_SWAPSIZE 重置為 100MB

           2.重新啟動交換服務

    其他配置

       設置庫的路徑,相當於windows下的環境變量,便於使用OpenCV庫,也可以不進行設置,使用的時候說明路徑也可。例如在編譯時說明使用庫的路徑是 -L/usr/local/lib 

     

      1.配置opencv.conf 

       打開opencv.conf配置文件,在末端加入如下內容: 

     1 //這裏我使用的是樹莓派默認的nano,也可以使用vim、gedit.打開opencv.conf文件
     2 sudo nano /etc/ld.so.conf.d/opencv.conf
     3 
     4 /**
     5 *在末端添加如下內容
     6 *注意:?表示一個空格,可能原因是有的語言要求最後有一個空格才可以編譯通過。
     7 **/
     8 /usr/local/lib
     9 ?
    10 
    11 //加載一下
    12sudo ldconfig

       

      2.打開 bash.bashrc 配置文件 

    1 //打開bash.bashrc配置文件
    2 sudo gedit /etc/bash.bashrc
    3 
    4 
    5 // 在最後添加如下內容
    6 PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig       
    7 export PKG_CONFIG_PATH

        

      3.重啟樹莓派

    1 sudo reboot

     

     檢測OpenCV使用是否正常

      python程序

     1 import cv2
     2 import numpy as np
     3 cv2.namedWindow("gray")
     4 img = np.zeros((512,512),np.uint8)#生成一張空的灰度圖像
     5 cv2.line(img,(0,0),(511,511),255,5)#繪製一條白色直線
     6 cv2.imshow("gray",img)#显示圖像
     7 #循環等待,按q鍵退出
     8 while True:
     9     key=cv2.waitKey(1)
    10     if key==ord("q"):
    11         break
    12 cv2.destoryWindow("gray")

      保存文件為 test.py ,並在終端運行程序

    1 sudo python3 test.py

      運行結果如下:

      

     

    本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理【其他文章推薦】

    ※為什麼 USB CONNECTOR 是電子產業重要的元件?

    網頁設計一頭霧水??該從何著手呢? 找到專業技術的網頁設計公司,幫您輕鬆架站!

    ※想要讓你的商品成為最夯、最多人討論的話題?網頁設計公司讓你強力曝光

    ※想知道最厲害的台北網頁設計公司推薦台中網頁設計公司推薦專業設計師”嚨底家”!!

  • 精通awk系列(8):awk劃分字段的3種方式

    精通awk系列(8):awk劃分字段的3種方式

    回到:

    詳細分析awk字段分割

    awk讀取每一條記錄之後,會將其賦值給$0,同時還會對這條記錄按照預定義變量FS劃分字段,將劃分好的各個字段分別賦值給$1 $2 $3 $4...$N,同時將劃分的字段數量賦值給預定義變量NF

    引用字段的方式

    $N引用字段:

    • N=0:即$0,引用記錄本身
    • 0<N<=NF:引用對應字段
    • N>NF:表示引用不存在的字段,返回空字符串
    • N<0:報錯

    可使用變量或計算的方式指定要獲取的字段序號。

    awk '{n = 5;print $n}' a.txt
    awk '{print $(2+2)}' a.txt   # 括號必不可少,用於改變優先級
    awk '{print $(NF-3)}' a.txt

    分割字段的方式

    讀取record之後,將使用預定義變量FS、FIELDWIDTHS或FPAT中的一種來分割字段。分割完成之後,再進入main代碼段(所以,在main中設置FS對本次已經讀取的record是沒有影響的,但會影響下次讀取)。

    劃分字段方式(一):FS或-F

    FS或者-F:字段分隔符

    • FS為單個字符時,該字符即為字段分隔符
    • FS為多個字符時,則採用正則表達式模式作為字段分隔符
    • 特殊的,也是FS默認的情況,FS為單個空格時,將以連續的空白(空格、製表符、換行符)作為字段分隔符
    • 特殊的,FS為空字符串””時,將對每個字符都進行分隔,即每個字符都作為一個字段
    • 設置預定義變量IGNORECASE為非零值,正則匹配時表示忽略大小寫(隻影響正則,所以FS為單字時無影響)
    • 如果record中無法找到FS指定的分隔符(例如將FS設置為”\n”),則整個記錄作為一個字段,即$1$0相等
    # 字段分隔符指定為單個字符
    awk -F":" '{print $1}' /etc/passwd
    awk 'BEGIN{FS=":"}{print $1}' /etc/passwd
    
    # 字段分隔符指定為正則表達式
    awk 'BEGIN{FS=" +|@"}{print $1,$2,$3,$4,$5,$6}' a.txt

    劃分字段方式(二):FIELDWIDTHS

    指定預定義變量FIELDWIDTHS按字符寬度分割字段,這是gawk提供的高級功能。在處理某字段缺失時非常好用。

    用法:

    示例1:

    # 沒取完的字符串DDD被丟棄,且NF=3
    $ awk 'BEGIN{FIELDWIDTHS="2 3 2"}{print $1,$2,$3,$4}' <<<"AABBBCCDDDD"
    AA BBB CC 
    
    # 字符串不夠長度時無視
    $ awk 'BEGIN{FIELDWIDTHS="2 3 2 100"}{print $1,$2,$3,$4"-"}' <<<"AABBBCCDDDD"
    AA BBB CC DDDD-
    
    # *號取剩餘所有,NF=3
    $ awk 'BEGIN{FIELDWIDTHS="2 3 *"}{print $1,$2,$3}' <<<"AABBBCCDDDD"      
    AA BBB CCDDDD
    
    # 字段數多了,則取完字符串即可,NF=2
    $ awk 'BEGIN{FIELDWIDTHS="2 30 *"}{print $1,$2,NF}' <<<"AABBBCCDDDD"  
    AA BBBCCDDDD 2

    示例2:處理某些字段缺失的數據。

    如果按照常規的FS進行字段分割,則對於缺失字段的行和沒有缺失字段的行很難統一處理,但使用FIELDWIDTHS則非常方便。

    假設a.txt文本內容如下:

    ID  name    gender  age  email          phone
    1   Bob     male    28   abc@qq.com     18023394012
    2   Alice   female  24   def@gmail.com  18084925203
    3   Tony    male    21   aaa@163.com    17048792503
    4   Kevin   male    21   bbb@189.com    17023929033
    5   Alex    male    18                  18185904230
    6   Andy    female  22   ddd@139.com    18923902352
    7   Jerry   female  25   exdsa@189.com  18785234906
    8   Peter   male    20   bax@qq.com     17729348758
    9   Steven  female  23   bc@sohu.com    15947893212
    10  Bruce   female  27   bcbd@139.com   13942943905

    因為email字段有的是空字段,所以直接用FS劃分字段不便處理。可使用FIELDWIDTHS。

    # 字段1:4字符
    # 字段2:8字符
    # 字段3:8字符
    # 字段4:2字符
    # 字段5:先跳過3字符,再讀13字符,該字段13字符
    # 字段6:先跳過2字符,再讀11字符,該字段11字符
    awk '
    BEGIN{FIELDWIDTHS="4 8 8 2 3:13 2:11"}
    NR>1{
        print "<"$1">","<"$2">","<"$3">","<"$4">","<"$5">","<"$6">"
    }' a.txt
    
    # 如果email為空,則輸出它
    awk '
    BEGIN{FIELDWIDTHS="4 8 8 2 3:13 2:11"}
    NR>1{
        if($5 ~ /^ +$/){print $0}
    }' a.txt

    劃分字段方式(三):FPAT

    FS是指定字段分隔符,來取得除分隔符外的部分作為字段。

    FPAT是取得匹配的字符部分作為字段。它是gawk提供的一個高級功能。

    FPAT根據指定的正則來全局匹配record,然後將所有匹配成功的部分組成$1、$2...,不會修改$0

    • awk 'BEGIN{FPAT="[0-9]+"}{print $3"-"}' a.txt
    • 之後再設置FS或FPAT,該變量將失效

    FPAT常用於字段中包含了字段分隔符的場景。例如,CSV文件中的一行數據如下:

    Robbins,Arnold,"1234 A Pretty Street, NE",MyTown,MyState,12345-6789,USA

    其中逗號分隔每個字段,但雙引號包圍的是一個字段整體,即使其中有逗號。

    這時使用FPAT來劃分各字段比使用FS要方便的多。

    echo 'Robbins,Arnold,"1234 A Pretty Street, NE",MyTown,MyState,12345-6789,USA' |\
    awk '
        BEGIN{FPAT="[^,]*|(\"[^\"]*\")"}
        {
            for (i=1;i<NF;i++){
                print "<"$i">"
            }
        }
    '

    最後,patsplit()函數和FPAT的功能一樣。

    檢查字段劃分的方式

    有FS、FIELDWIDTHS、FPAT三種獲取字段的方式,可使用PROCINFO數組來確定本次使用何種方式獲得字段。

    PROCINFO是一個數組,記錄了awk進程工作時的狀態信息。

    如果:

    • PROCINFO["FS"]=="FS",表示使用FS分割獲取字段
    • PROCINFO["FPAT"]=="FPAT",表示使用FPAT匹配獲取字段
    • PROCINFO["FIELDWIDTHS"]=="FIELDWIDTHS",表示使用FIELDWIDTHS分割獲取字段

    例如:

    if(PROCINFO["FS"]=="FS"){
        ...FS spliting...
    } else if(PROCINFO["FPAT"]=="FPAT"){
        ...FPAT spliting...
    } else if(PROCINFO["FIELDWIDTHS"]=="FIELDWIDTHS"){
        ...FIELDWIDTHS spliting...
    }

    本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理【其他文章推薦】

    USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

    ※評比前十大台北網頁設計台北網站設計公司知名案例作品心得分享

    ※智慧手機時代的來臨,RWD網頁設計已成為網頁設計推薦首選

  • 心裏有紅黑樹

    心裏有紅黑樹

    Why 紅黑樹

    為什麼大家都這麼推崇紅黑樹呢? 這就是數據結構的魅力!!! 下面我簡述一下常用數據結構的優缺點

    • 數組

    大家對數組很熟悉, 都知道對數組來說,它底層的存儲空間是連續的,因此如果我們根據index去獲取元素,速度是相當快, 但是對於數組來說有時候查詢也不見得就一定塊, 比如我們查詢數組中名字叫張三的人, 也不得不從開始遍歷這個數組

    如果我們想往數組中插入一個元素, 也不見得一定就慢, 比如我們往數組中最後的位置插入就很快, 但是要是往開始的位置插入的話, 肯定會很慢, 需要將現有數組中所有的元素往後移動一位, 才能空出開始的位置,給新元素用

    • 鏈表

    一說鏈式存儲, 大家也都知道, 這種數據結構僅僅是邏輯連續, 物理存儲不連續, 因此我們有可以通過玩指針或者引用很快的完成元素的刪除和添加

    對鏈表的查詢來說, 一定是慢的, 無論查詢誰, 查哪個, 都得從第一個節點開始遍歷

    • AVL樹

    AVL樹, 就是二叉平衡樹, 這種有序的樹形結果就將鏈式存儲添加刪除塊, 順序存儲的查找快兩大有點進行了一次中和, 在絕大部分情況下, AVL樹在增刪改查方面的性能都原超過數組和鏈表

    • 紅黑樹

    紅黑樹是對AVL樹是又一次重大升級, AVL樹,對於樹的平衡要求太嚴格了, 每當添加,刪除節點時,都不得不進行調整

    對於AVL樹個紅黑樹來說, 每次添加一個新的節點都是最多進行兩次旋轉(左旋右旋)就能重新使樹變的平衡,

    但是當我們刪除一個恭弘=叶 恭弘子節點時, AVL樹重新調整成平衡狀態時最多需要進行旋轉O(logN)次, 而紅黑樹最多旋轉3次就能重新平衡,時間複雜度是O(1)

    還有就是紅黑樹並不是完全意義上的AVL樹, 也就是說它其實並不是真的像AVL樹那樣嚴格要求對一個節點來說左右子樹的高度差不能超過1, 而是選擇使用染成紅色和黑色進行維護

    簡單來說, 因為紅黑樹並不像AVL樹那樣完全平衡, 可能會導致紅黑樹的讀性能略遜於AVL, 但是紅黑樹的維護成本絕對是遠遠低於AVL, 在空間上的開銷和AVL樹基本持平, 因此紅黑樹被大家極力推崇, 和學習java的同學直接相關的就是jdk8的 hashmap

    紅黑樹的特性

    紅黑樹主要存在下面的7條性質

    1. 節點非紅即黑
    2. 根節點必定是黑色
    3. 恭弘=叶 恭弘子節點全部是黑色, (這裏說的恭弘=叶 恭弘子節點是我們想象在肉眼看到的節點上再多加一層子節點)
    4. 紅節點的子節點必定是黑色
    5. 紅節點的父節點必定是黑色
    6. 從根節點到任意子節點的路徑上,都要經歷相同數目的黑節點
    7. 從根節點到任意子節點的路徑上不可能存在兩個連續相同的紅節點

    常見的誤區

    如上圖, 看着挺像紅黑樹, 其實他不是, 看它node10, 並不滿足上面的性質6. 因為我們認為node10的左子節點是黑色的節點, 這樣的話, 從node20到node10的左子節點就經歷了兩個黑節點, 而其他的 node15, node25, node35 經歷的黑色子節點數都是三個

    如上圖它也不是紅黑樹, 因為我們認為node30的右節點是黑色的節點, 這樣的話從node60到node30的右節點就經歷了三個黑色的節點, 而其他的所有子節點都經歷了4個, 故, 他不是紅黑樹

    紅黑樹與2-3-4樹等價

    如上圖中,當我們將一個紅黑樹中的黑色節點和紅色節點融合在一起時,我們會發現, 這個紅黑樹其實就是一顆2-3-4樹, 一顆四階B樹

    並且, 紅黑樹中黑色節點的每一個合併完成后的節點中都有一個黑色的節點, 換句話說就是紅黑樹中黑色節點的個數等於2-3-4樹中節點的個數

    添加

    添加節點其實就是構造紅黑樹的過程, 只要我們嚴格遵循上面的7條限制, 構造出來的樹就是紅黑樹

    通過上圖其實我們發現, 紅黑樹真的可以和四階B樹之間進行等價代換, 換句話說就是 4階B樹的性質對於紅黑樹來書其實也是存在的, 主要是如下兩條性質

    • 所有新添加進去的節點都被放在了恭弘=叶 恭弘子節點上
    • 2-3-4樹中每一個節點中允許承載的元素的個數 [1,3]

    經驗推薦: 就是新添加的節點盡量全部是紅色, 如果你畫一畫就會發現, 如果我們新添加的節點是紅色的話,上面所說的7條性質中, 除了第四條(紅節點的子節點必定的黑節點). 其他的限制都可以滿足

    於是看一下一顆四階B樹插入節點時有哪些種情況

    數一數: 一共 4+3+3+2 = 12種情況, 換句話說, 只要我們處理好了這12種情況, 我們就完成了添加節點的邏輯

    • 情況1, 就是假設我們添加進去的是紅色的節點, 並且這個紅色節點的父節點是黑色節點時, 直接添加進行,不需要其他任何變換, 就想下圖這樣, 直接簡單粗暴的添加就行

    除去第一種情況外, 還剩下8中情況出現了紅紅節點相鄰, 於是繼續往下看, 我們對他進行一次修復

    • 情況2: 如下圖

    插入的node57, node64, 什麼情況呢? 就是當前節點是node5556, 首先這個節點中現存兩個元素, 並且是往這個黑色的節點的左側的左側插入, 或者是右側的右側插入一個紅色節點

    看上圖出現了兩個紅色節點相鄰,於是我們第一件事就是進行重新染色,

    1. 將插入節點的父節點染成黑色
    2. 將插入節點的祖父節點染成紅色
    3. 將祖父節點進行旋轉, 如果這個新節點被插入在父節點的右側. 左旋轉它的祖父節點

    經過上面的變換后, 我們重新得到標準的紅黑樹如下

    • 情況3: 新添加的節點的叔叔節點不是紅色

    第三種情況和第二種情況相似, 還是插入 node57和node64. 判斷的條件是 插入節點的叔叔節點(父節點的兄弟節點)不是紅節點,

    簡稱 LR , 或者是RL , 需要進行如下的調整

    1. 染色: 將自己染成黑色,祖節點染成紅色
    2. LR: 父節點左旋轉, 祖父節點右旋轉
    3. RL: 祖父點右旋轉, 父節點左旋轉

    LR舉例:

    經過上面的變化,我們重新得到平衡的紅黑樹

    接着往下看剩下的四種情況

    • 情況4: 新添加的節點的叔叔節點是紅色, 其實就是需要上溢的情況, 也很好處理

    像上圖這樣, 新添加的紅色節點 node15, 它本身的父節點是node20, 父節點的叔叔節點是紅色的node25, 我們比較node15和node20的大小, 發現node15本來是應該放在node20的左邊的, 但是對於一顆2-3-4樹來說, 單個節點最多就有3個元素, 如果再加上node15 就會出現上溢的情況, 怎麼辦呢? 我們上溢調整, 選擇這個節點中間位置的元素向上和父節點合併, 選擇node20, node30其實都是可以的, 為了方便我們選擇node30

    好,下面開始修復這個紅黑樹

    1. 將插入的節點的父節點和它的叔叔節點染成黑色
    2. 發生了上溢, 將他的父節點的染成紅色, 遞歸插入到根節點上, 這時候根節點可能又會發生上溢

    然後上溢

    當我們將新插入的節點的父節點node30染成紅色時, 再插入到根節點, 實際上就是重複我們枚舉出來的這12種情況中的一種. 紅黑樹一定會被修復, 當然這時候很可能會出現根節點也容納不了新的元素, 需要根節點也進行上溢, 然後將根節點染黑

    還有一種情況是像下面這樣, 同樣是在情況4下的新插入的節點的叔叔節點是紅色

    像下面這樣調整:

    1. 將父節點和叔叔節點染成黑色
    2. 祖父節點上溢

    然後就是這種情況

    調整的思路和前面一樣

    1. 將父節點和叔叔節點染成黑色
    2. 將祖父節點上溢

    至此紅黑樹的添加的12種情況就全部枚舉完成了

    刪除

    對於刪除來說總共兩大種四小種情況

    • 第一種就是刪除的節點就是紅色節點, 如果真是這樣的話,直接刪除就ok
    • 第二種是刪除的節點是黑色節點
      • 刪除擁有1個red節點的黑色節點
      • 刪除擁有2個red節點的黑色節點,
      • 刪除黑色節點

    如果一個像下面這樣, 下面的黑色節點有兩個子節點, 這種情況下,黑色節點肯定不會直接被刪除的, 需要進行變換,讓他的恭弘=叶 恭弘子節點去替換他,進而實現刪除的目的

    • 情況1: 刪除擁有1個紅節點的黑色節點,像下圖這樣

    怎麼判斷這就是我們想刪除的情況呢? 當我們確定用來替代這個被刪除的黑節點是紅色,則符合當前的情況

    也就是說我們想刪除 node40 和 node70, 於是我們這樣做

    1. 讓這個指向被刪除的節點的指針指向這個被刪除的節點的子節點
    2. 將替代它的節點染成黑色

    於是我們接得到下圖這樣的結果

    • 情況2: 刪除的節點是黑色的恭弘=叶 恭弘子節點, 並且可向兄弟節點借

    首先,如果這個恭弘=叶 恭弘子節點就是根節點的話,直接刪除就ok

    看下面的這個圖, 我們就刪除其中node90, 即,刪除黑色恭弘=叶 恭弘子節點

    如果想刪除上圖中的node90也是由竅門的,規律和2-3-4樹是擦不多的

    假設它就是2-3-4樹, 如果我們將node90刪了, 我們計算一下, 對於2-3-4樹來說, 每一個節點位置上至少有 ⌈ 4/2 ⌉ -1 = 1個元素, 但是把node90刪除了這個位置上的節點中沒有元素, 因此產生了 下溢

    出現下溢,我們首先考慮的情況就是看看可不可以向它的兄弟節點借一個,但是和B樹是有取別的, 多了下面的限制

    1. 被刪除的這個節點的兄弟節點必須是黑色的
    2. 被刪除的這個節點的兄弟節點一定的有紅色的子節點才ok, 就像上圖那樣, 可以在左邊,右邊,或者都有
    3. 直接刪除掉指定的node(因為它在恭弘=叶 恭弘子節點的位置上)
    4. 進行旋轉,旋轉時注意, 兩點:第一點: 比如下面的原來根節點位置上的元素88是紅色的, 經過旋轉上來替換它的節點的顏色必須染成紅色, 如果node88是黑色, 那麼經過旋轉上來替換他的節點的顏色必須染成黑色 ,第二點: 旋轉完成后,新的跟節點的直接左右子節點的顏色轉換為黑色

    怎麼進行旋轉呢? 就像下圖這樣

    • 情況3: 刪除的節點是黑色的恭弘=叶 恭弘子節點, 並且它的兄弟是黑色,而且它的兄弟節點不能借給他元素

    像這種情況:我像刪除node99,但是沒辦法像他的兄弟節點借元素,於是

    1. 將父節點向下合併,父節點染成黑色
    2. 將它的兄弟節點染成紅色

    也有特殊的情況, 就是它的父節點只有一個,還是黑色

    這時候,我們將他的父節點下溢, 原位置的節點捨棄

    • 還有最後一種情況就是, 刪除的是黑色的節點, 它的兄弟節點的是紅色的節點

    就像上圖那樣,我們想刪除node99, 但是node99的兄弟節點其實是node55, 而不是node77, 我們怎麼樣才能轉換為前面說的那些情況呢?

    1. 將被刪除節點的父節點染成紅色, 兄弟節點染黑

    2. 讓被刪除的父節點進行右旋轉(node88右轉)

      得到下圖

    於是我們就將這種兄弟節點為紅節點的情況轉化成了兄弟節點為黑色節點的樣子, 按照原來的方式進行刪除修整即可

    1. 讓原父節點下溢
    2. 原染成黑色
    3. 兄弟節點,染成紅色

    至此本文就結束, 歡迎關注我,後續我更新更多的關於開發相關的筆記

    本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理【其他文章推薦】

    ※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!!

    網頁設計一頭霧水??該從何著手呢? 找到專業技術的網頁設計公司,幫您輕鬆架站!

    ※想知道最厲害的台北網頁設計公司推薦台中網頁設計公司推薦專業設計師”嚨底家”!!

  • 法國要在2040 年停售汽柴油車,能源部長:這會是一場革命

    法國要在2040 年停售汽柴油車,能源部長:這會是一場革命

    不同於美國退出巴黎協定的決定,法國總統馬克宏曾提到要「讓地球再次偉大」,如今看來,法國似乎正朝目標一步步邁進中。法國能源部長余洛(Nicolas Hulot)6 日宣布,將在2040 年開始全面停售汽柴油車。

    電訊報報導,除了汽柴油車之外,法國同時也將禁止任何使用汽油、煤氣、煤炭及頁岩油的新計畫,余洛表示,汽油及汽車的銷售將在2040 年前結束,「法國打算在2050 年達到碳中和的目標。」

    為了達成這個目標,法國將開始進行必要的投資,並提供相關獎勵補助措施,這個目標是非常困難的,特別是對於車商來說,但余洛相信汽車產業已經準備好進行轉變。

    根據歐洲經濟區(EEA)的統計,在2016 年大型車商的汽車碳排放量上,法國車廠Peugeot、Citroen、Renault 是碳排放最低的前三名。

    儘管如此,這樣的改變勢必會面臨許多挑戰,余洛表示,「這會是一場名副其實的革命。」

    余洛也引述了Volvo 近期的決定,來說明停售汽柴油車的目標已是勢在必行。

    就在幾天前,傳統車商Volvo 宣布將於2019 年起生產電動車,並停售純內燃機供電的汽車,執行長表示,Volvo 是考量過客戶需求,才做出這項決定。

    法國並不是唯一將開始禁止汽柴油車的國家,德國和印度都打算在2030 年前達到這個目標,荷蘭和挪威更計畫在2025 年前達成。

    根據統計,2017 上半年在法國的新車市場中,使用柴油和汽油的車輛仍佔有95.2%,混合動力車佔3.5%,純電動車僅佔了1.2%。

    余洛強調,儘管法國在這方面,落後於瑞典、哥斯大黎加等國家,但會擁抱綠能的「精神」,期望在2040 年前能達成目標。

    除了停售汽柴油車及停止汽油相關新項目外,法國還計畫在2022 年將火力發電廠停工,並在2025 年將核電的供電比例由現在的75% 降低至50%,同時將採取措施,限制棕櫚油在生物燃料中的使用,來間接減少砍伐森林。

    不僅是中國和印度,在法國的一些城市,巴黎、里昂和格勒諾布爾(Grenoble),也都存在著霧霾的問題。

    「解決問題的方法就在可見之處,國內的製造商有著實現這項承諾的手段,這關係到公共衛生。」

    (合作媒體:。圖片出處:wikipedia CC0)

    本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※為什麼 USB CONNECTOR 是電子產業重要的元件?

    網頁設計一頭霧水??該從何著手呢? 找到專業技術的網頁設計公司,幫您輕鬆架站!

    ※想要讓你的商品成為最夯、最多人討論的話題?網頁設計公司讓你強力曝光

    ※想知道最厲害的台北網頁設計公司推薦台中網頁設計公司推薦專業設計師”嚨底家”!!

  • 二代電動車電池問世!韓廠急追、想搶Panasonic市佔

    二代電動車電池問世!韓廠急追、想搶Panasonic市佔

    目前電動車電池的前三大廠分別是Panasonic、LG Chem、Samsung SDI,今年三家業者相繼推出第二代電池,將引爆新一波市場大戰。

    韓媒etnews 7日報導,特斯拉平價電動車「Model 3」將在本月發布,預料全數採用日廠Panasonic的二代圓柱狀電池—「Panasonic 21700」。據稱Panasonic二代電池容量為4,500mA。

    與此同時,外傳韓廠LG Chem和Samsung SDI的二代圓柱電池預定今年底量產,電池容量略高於Panasonic。報導稱,LG Chem新電池電力在4,700~4900mA之間,Samsung SDI則為4,500mA。

    二代電池性能較一代大為提升,倘若電動車原本需要1千組一代電池才能應付所需,到了二代電池只需700組就足夠。消息指出,新崛起的電動車廠Lucid Motors和Faraday Future將採二代電池,正與LG Chem和Samsung SDI商討供應事宜。另外,歐洲大型車廠也考慮不再分散訂單,韓廠有望搶下更多訂單。

    (本文內容由授權使用)

    本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

    ※評比前十大台北網頁設計台北網站設計公司知名案例作品心得分享

    ※智慧手機時代的來臨,RWD網頁設計已成為網頁設計推薦首選

  • 另類思考!電動車熱未必有害原油、說不定恰恰相反?

    另類思考!電動車熱未必有害原油、說不定恰恰相反?

    國際車廠爭相研發電動車,汽油車似乎被宣判死刑,原油也會跟著步上末日。不過有專家大膽推估,電動車發展會削減流入原油業的資金,油市將汰弱留強,油價會維持低檔,也許將阻礙電動車普及之路。

    加拿大能源私募基金龍頭ARC Financial Corp.首席能源經濟學家Peter Tertzakian,13日在OilPrice發文稱,上週Volvo宣布,2019年起只生產電動車、停產汽柴油車。法國政府也宣布,2040年起停售汽柴油車。與此同時,特斯拉創辦人馬斯克貼出平價電動車Model 3照片,讓油市陷入低迷。

    電動車發展迅速,不少人認為原油業末日倒數計時。但是Tertzakian不以為然,指出環保車買氣疲弱。2013~2014年中,油價處於每桶100美元的高點時,美國電動車銷售提高,可是之後油價崩盤,電動車動能隨之消散。能源有兩股相反力量,現在的消費趨勢是原油便宜、使用率高,相對的,電動車滲透率低迷。但是市場對未來的預期恰恰相反,斷言原油將亡。

    未來幾年究竟會如何發展,Tertzakian推測有兩種可能結果,一是資本緊縮,汰除沒有效率的生產商,剩餘業者將不斷創新壓低成本,在低油價時也能存活,油價會繼續低迷,消費者缺乏誘因改買電動車。第二種可能是資本投資緊縮,將使原油供給下降,帶動油價上揚,電動車需求因此大增。諷刺的是,厲害的油商在兩種情況下,都能有好表現。可以確定的是,未來投入原油業的資金勢必減少。

    原油期貨報價從去(2016)年12月開始一路往下盤跌,高盛全球原物料研究部主管Jeffrey Currie對這提出了一個簡單解釋:市場上的錢太多。

    CNBC報導,Currie 12日在接受專訪時指出,市場上的原油其實並不是太多,只是錢潮淹腳目、委實過多。舉例來說,人們對石油探鑽活動的投資,是墨西哥最近能發現十數億桶原油的主因。

    Currie說,石油市場正在試著尋找供需均衡點,而產油商的損益兩平點在跌破高盛2016年估計的50-55美元後,新的平衡點在哪,則變得愈來愈難預測。不過,在被問到油市有沒有可能崩盤時,Currie說雖然他希望看到市場能有些波動,但其實崩盤機率極低。

    (本文內容由授權使用。圖片出處:public domain CC0)

    本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!!

    網頁設計一頭霧水??該從何著手呢? 找到專業技術的網頁設計公司,幫您輕鬆架站!

    ※想知道最厲害的台北網頁設計公司推薦台中網頁設計公司推薦專業設計師”嚨底家”!!

  • 特斯拉啟用臺南奇美博物館超級充電站,下一站臺中七期將啟用

    特斯拉啟用臺南奇美博物館超級充電站,下一站臺中七期將啟用

    特斯拉(Tesla) 今日(7/20) 啟用臺灣第二組超級充電站,為全亞洲第一組設在博物館園區的超級充電站。而第三組超級充電站則會在下週於臺中七期啟用。

    此次啟用的台南超級充電站位於台南奇美博物館,是全亞洲第一組設立於博物館的超級充電設施,共有8 組超級充電設備,足以應付開車環島遊,以及跨縣市長途旅遊等的需要。這次的項目更獲得台南政府大力支持,鼓勵特斯拉對於環保理念的實踐。特斯拉在台的首座超級充電站設於台北花博園區,該充電站提供6 組超級充電設備。

    下週特斯拉將啟用位於臺中七期的第三組超級充電站,鄰近國道一號臺中交流,方便南來北往的特斯拉車主休息同時,快速充電再上路。

    特斯拉的超級充電站充電30 分鐘,就能供應行駛270 公里所需電力,為臺北臺南間七成路程。而設在百貨公司的目的地充電站,已經從臺灣頭的翡翠灣,到臺灣尾的墾丁,遍佈14 個縣市,超過80 個地點,250 支的目的地充電座。

    (合作媒體:。圖片出處:特斯拉提供)  

    本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!!

    網頁設計一頭霧水??該從何著手呢? 找到專業技術的網頁設計公司,幫您輕鬆架站!

    ※想知道最厲害的台北網頁設計公司推薦台中網頁設計公司推薦專業設計師”嚨底家”!!

  • 日產傳退出EV電池生產業務、子公司AES賣中國GSR

    日產傳退出EV電池生產業務、子公司AES賣中國GSR

    朝日新聞22日報導,日產汽車(Nissan)將退出電動車(EV)用電池的生產業務,旗下車用電池生產子公司「Automotive Energy Supply(以下簡稱AES)」將出售給中國投資基金「GSR」,出售額預估為1,000億日圓,雙方預計會在今年夏天達成共識並對外發表。日產在退出EV電池生產業務後,會將資源集中在最先端電池的研發上。

    報導指出,鋰離子電池是決定EV競爭力的關鍵,而日系廠商原先是該領域的霸主,不過近年來,南韓、中國廠商呈現顯著成長,加上AES銷售通路有限,因此日產研判擁有EV電池生產業務不具備太多好處。

    AES為日產、NEC分別出資51%、49%於2007年設立的公司,主要生產日產電動車Leaf或油電混合車(HV)所需的鋰離子電池。

    根據調查公司Techno Systems Research指出,2014年Panasonic車用鋰離子電池全球市佔率高達47%,而2015年雖維持首位、但市佔率萎縮至34%;反觀「其他廠商」市佔率從14%飆增至33%,而在「其他廠商」中、比亞迪(BYD)等中國廠商佔了大多數,LG化學、三星SDI等南韓廠商也在後猛追。

    中國對電池市場虎視眈眈,成長最快的電池廠「寧德時代新能源科技股份」(簡稱寧德時代或CATL)已誓言要在2020年底前,使電池產量超越特斯拉(Tesla)、Panasonic合資的「Gigafactory」超大電池廠。

    英國金融時報3月5日報導,北京已呼籲企業在2020年底前將車用電池產能拉高一倍,還鼓勵業者前往海外投資。高盛預估,鋰電池將是未來10年的關鍵技術,估計到了2025年市場總值上看400億美元、且主要會由中國主導。

    寧德時代行銷主任Neil Yang預測,雖然超越日本、南韓業者並非易事,但預估未來10年內,全球只會剩下10家鋰電池製造商,其中60%的市場會由前三大業者拿下。他也透露寧德時代要將觸角探至全球的野心,聲稱該公司希望跟特斯拉合作,也一直在跟通用汽車(GM)接洽,而福斯(Volkswagen)、BMW則已都是他們的客戶。

    寧德時代預計要在2020年將鋰電池總產能拉升至50GWh,而中國整體的鋰電池產能則合計會達121GWh。相較之下,特斯拉則希望在明(2018)年將鋰電池產能拉升至35GWh。每1個GWh的電力,可供應40,000輛電動車、每部行駛100公里所需。中國已在2013年超越南韓成為全世界最大的鋰電池供應國。

    (本文內容由MoneyDJ授權使用。圖片出處:public domain CC0)

    本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※為什麼 USB CONNECTOR 是電子產業重要的元件?

    網頁設計一頭霧水??該從何著手呢? 找到專業技術的網頁設計公司,幫您輕鬆架站!

    ※想要讓你的商品成為最夯、最多人討論的話題?網頁設計公司讓你強力曝光

    ※想知道最厲害的台北網頁設計公司推薦台中網頁設計公司推薦專業設計師”嚨底家”!!

  • EV弱點一次解決!豐田傳推全固體電池車、數分鐘充飽電

    EV弱點一次解決!豐田傳推全固體電池車、數分鐘充飽電

    東京新聞25日報導,豐田汽車(Toyota)計畫在2022年於日本國內開賣新型電動車(EV),其電池將採用充電量可達鋰離子電池2倍的「全固體電池」,將大幅提升EV的續航距離,且僅需數分鐘時間就可充飽電。在EV的研發上,由歐美廠商跑在前頭,而豐田期望藉由導入革新性技術扳回劣勢。

    報導指出,現行市售的EV所搭載的電池以鋰離子電池為主,不過其弱點在於充飽一次電所能行駛的距離約300-400km、遜於汽油車,且即便使用快速充電技術、也需花費數十分鐘才能充飽電,而採用全固體電池的話,就有望一口氣將上述弱點全數解決。

    據報導,全固體電池是將電解質從液體變更為固體,而豐田長年來持續進行全固體電池的研發,並於去年宣佈已攜手東京工業大學成功發現可適用於電解質的固體材料,並將在今年開始進行量產研發。

    德國BMW、福斯(Volkswagen)等車廠也正研發全固體電池,不過量產相關計畫仍未明。

    日經新聞曾於2011年10月報導,豐田汽車已和東京工業大學及高能源加速器研究機構攜手研發出一款使用新化合物的次世代電動車(EV)用「全固體電池」,其充飽一次電所能行駛的距離最長有望達1,000km左右的水準。

    富士經濟6月22日公布調查報告指出,預估2030年時EV年銷售量將增至407萬台、超越油電混合車(HV、2030年銷售量預估為391萬台),且之後雙方的差距將持續擴大。富士經濟預估,在中國需求增加加持下,2035年EV全球銷售量將擴大至630萬台、將達2016年的13.4倍(較2016年增加12.4倍)。

    (本文內容由授權使用。圖片出處:Toyota)

    本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

    ※評比前十大台北網頁設計台北網站設計公司知名案例作品心得分享

    ※智慧手機時代的來臨,RWD網頁設計已成為網頁設計推薦首選