🌟免費兒童程式課程體驗
🌟海外也可報名體驗
在十九世紀蒸汽動能機器普遍進入人類社會後,人類生產製造方式產生巨大改變,多數的人力及手工被機器剝奪取代。當時毫無招架能力的人類面對高效率的機器怪獸,也只能拱手讓出職位,許多良民百姓深受失業貧窮之苦,興起了一場工業革命,進而也把人類社會推向一個嶄新的「工業時代」。
-
經過兩世紀,隨著電腦、網路的高科技發明,時代的巨輪又將人類逐漸推向「人工智慧時代」。英國牛津大學研究指出『未來十年內,有47% 的工作可能被高科技的人工智慧取代』。另外,Google工程總監雷蒙德.庫茲威爾也預測『到 2045 年,AI 智慧將超越人類智慧,許多人的飯碗恐怕也將被淘汰』。
-
人類與 AI 共生共存也已是不可抗拒之命運,尤其又經過了這次的病毒疫情席捲,更加速推動世代的變遷,全人類一批批正往虛擬網路、人工智慧的新世界接踵邁進。因此,現今人類要以工業時代歷史為借鑑,為了避免孩子未來職場被機器人剝奪,在教育觀念上要有所改變,傳統的博聞強記之學應避免,邏輯思考力及創造力才是未來孩子必須培養的能力。
-
《Cheers》雜誌也曾在報導上建議『當面對 AI 浪潮,與其仇視 AI 為搶走工作的敵人,不如與它們合作,各取所長,互補其短。充分了解它們的基本概念、運作邏輯是首要之務。』
-
為了讓新一代輕鬆能輕鬆面對高科技 AI 未來的瞬息萬變,多年前美國的學校、社區或課後班已提供孩子各種程式教育課程。五、六歲的孩子藉由與各種機器人的互動或簡單的樂高遊戲來接觸程式語言的邏輯概念。尤以科技工程師滿山遍谷的矽谷這帶,程式語言教育開發更甚普遍。
-
程式語言對有數理頭腦的孩子是件相當好的創造工具。孩子一進入程式語言變幻莫測的排列組合之間時恍如進入異彩紛呈的魔幻空間,循序漸進地去熟悉掌握語言工具之後,孩子便能發揮能力,激發創意,展現自己。他們大腦不能單單只是被電腦及手機給控制,而是要學會操控這些人工智慧語言,為人類未來建立更美好的新思路。
-
前陣子我也起了讓兒子參加程式教育課程的念頭,希望他在閒暇除了跟朋友們相約連線打電動、聊天外,也能涉獵這些娛樂功能背後所隱藏的語言密碼,讓他大腦培養更清晰的邏輯思考力、解決問題能力及激發創造力。
-
恰巧台灣「 橘子蘋果兒童程式學苑 」特別來邀請兒子免費體驗他們的線上程式教育課程。對電腦有高度興趣的兒子欣然答應。我預約了美國晚上七點到九點的時段 (台灣早上十點到十二點)讓他在遠端平台上線試試「 Scratch 程式設計課程」。
-
起初,我也擔心兒子的中文專業字彙能力有限,會無法吸收課程內容。當準時上線時,專業老師立馬先清楚有條地解說平台的使用方式及上課模式。兒子發現問題馬上可視訊提問,看來師生之間互動交流無障礙,兒子很快便進入學習狀況。
-
橘子蘋果所使用的網路教學平台功能相當完善。兒子先根據課程進度逐一觀看教學影片,然後換到學習平台畫面-自行試著把剛剛學到的程式寫出來。雲端教室內的老師可透由平台上看見兒子的編寫的過程,並給予幫助。若語法寫錯無法順利執行操作時,老師即時進行講解以排除障礙。有時他們之間也會用簡單的英文交流。師生之間溝通流暢度及趣味度與親臨現場教室無異。兒子學習過程相當順利且愉快,也成功地設計了第一款小遊戲。
-
上完兩個小時的課後,設計遊戲的成就感在兒子內心竄動,他對程式語言的興趣大增,拜託我能幫他報名進階課程。看他喜形於色地玩著自己設計的遊戲時,證明此堂體驗課的學習成效頗大,促使我又進一步去了解整體的課程規劃及報名方式。
學苑主任 Roy 老師,在體驗課後親切詳盡解說了橘子蘋果的創建理念及整套課程的規劃。
-
我非常激賞橘子蘋果創辦人 Raymond 自矽谷回台後,十多年來策馬前驅竭力推動台灣兒童的程式教育,成功地開發教材,將四十幾間教室駐點遍佈台灣,並提供規模完善的程式教育環境,課程編排也與時俱進,其優秀的專業師資及教育品質不亞於美國。學成的學員更能進一步與學界、業界進行交流、測驗及比賽,讓熱愛程式語言的兒童能盡情發揮所長,天賦不被埋沒。
-
他們目前提供由淺至深提供了一整套國小到國中孩子設計的程式教育課程,包括:
→ 初階:Scratch 程式設計課程
→ 進階:Python、Java Script 程式開發及 HTMK/CSS 網頁開發
→ 高階:網路資料庫應用、演算法、AI 人工智慧。
-
❤️有興趣的父母可以先幫孩子報名橘子蘋果所提供的『首次免費線上程式體驗課程:👉 http://oaoa.fun/3axu8k 』。
如果像我們一樣是居住在美西的孩子亦可選擇〈太平洋時間周五或周六晚上7:00-9:00〉上課。
-
❤️至於最後讓我決定讓兒子報名參加橘子蘋果程式語言線上課程,原因除了他們提供了專業師資課程、順暢的交流平台外,還有以下三點:
◆ 個人化進度:根據學員的程度個人化學習。程度不好的孩子可以學得慢一些讓學習的每一步驟能更穩健札實;程度好的可以加快學習速度,盡早完成整套課程。
◆ 節省交通時間:線上課程最大的好處就是父母不用浪費時間當司機,辛苦往返接送孩子,大大減少舟車勞頓之苦。
◆ 加強中文溝通能力:針對海外學子來說還可以進一步增強中文聽說讀寫能力,何樂而不為。
-
#學程式就到橘子蘋果
#免費兒童程式課程體驗
◎ 橘子蘋果每年還有舉辦夏令營活動,也深受台灣孩子們的喜愛。若暑假期間有回台灣的海外學子也可以參考看看。
👉 贈送給你們~價值千元的免費體驗課程連結:http://oaoa.fun/3axu8k
❤️ 歡迎大家分享給有需要的朋友
同時也有1部Youtube影片,追蹤數超過7萬的網紅在地上滾的工程師 Nic,也在其Youtube影片中提到,## 影片觀看說明 由於問題較多,大家的問題也可能是你的問題,建議可以先閱讀下方的「問題總匯」區,找到時間碼 Time code 之後跳轉到自己想聽的部分,會比較有效率哦 本影片 Q&A 留言是抓取 【2020 年度回顧! 成為 Team leader? 業外收入增加? 技術能力成長? (第一...
「python程式太長換行」的推薦目錄:
- 關於python程式太長換行 在 Facebook 的最讚貼文
- 關於python程式太長換行 在 鄰家野原 Facebook 的精選貼文
- 關於python程式太長換行 在 Taipei Ethereum Meetup Facebook 的最佳解答
- 關於python程式太長換行 在 在地上滾的工程師 Nic Youtube 的最讚貼文
- 關於python程式太長換行 在 Python Coding Style | 辛西亞的技能樹 的評價
- 關於python程式太長換行 在 python代碼換行的問題包括PTT、Dcard、Mobile01,我們都能 ... 的評價
- 關於python程式太長換行 在 python代碼換行的問題包括PTT、Dcard、Mobile01,我們都能 ... 的評價
- 關於python程式太長換行 在 python代碼換行的問題包括PTT、Dcard、Mobile01,我們都能 ... 的評價
- 關於python程式太長換行 在 05 取代兩個換行與用pandas存為excel - YouTube 的評價
- 關於python程式太長換行 在 jupyter lab基本操作#242 的評價
python程式太長換行 在 鄰家野原 Facebook 的精選貼文
【免費的程式學習國外平臺:code.org介紹】
之前有提到均一平臺上有放程式設計的教學
但內容沒有很完全
還沒看過的可以往這裡去
👉https://reurl.cc/qdjYag
臺灣現在實在太多補習班安親班,打著程式設計的名號有點過度收費了
#學習不是貴族式教育
#程式設計加入新課綱也不恐怖
其實就像我們以前學電腦科
要上一點電腦概論
還有用BASIC語言寫出簡易的小遊戲
當時我對於寫程式有一點點興趣
用BASIC語言寫遊戲,寫到老師推去校際比賽
但還是比不過資訊科的,沒有得名,但又如何
#有趣的事情有了開端之後再度遇到就不會怕
#這就是課綱中要加入程式設計的用意
以前求學時要考打字
我爸給我一個沒接線的鍵盤就這樣練打字了
因為父母症頭都一樣,會焦慮
怕我打字速度比賽不過就慘了
但,那學期也這樣安全過關了
我到現在還是只會注音打字
其他甚麼倉頡 無蝦米打字法還是不會
現在工作打字夠快就夠了啊
#不要小看孩子的學習能力
現在我們的孩子都是有電腦手機的科技時代
不求每位孩子都會成為矽谷工程師
比爾蓋茲也只會有一位
程式的概念就是邏輯的延伸
基本邏輯先搞懂了
再往下學才不會學習不扎實
相關文章:【圖形規律&程式設計初階 的關係】
👉https://reurl.cc/lVzv4Y
很多孩子學了所謂的程式設計
但那都是人為已經先設計過的程式
程式的產生,原本是解決問題的工具
沒有思考,沒有解決問題的能力
就無法再自行創作
跳一下回到今天要介紹的網站:code.org
👉https://code.org/
✅須申請帳號登入
✅可選語言
✅免費
✅課程分齡設計完整
以臺灣的學程來看✅適合國小階段
Code.org 是一個非盈利性組織由Hadi Partovi兄弟建立的與該組織同名的網站,其宗旨在於支援美國的學生學習電腦科學以促進和提高其學校的電腦科學課程的目的,免費提供編程經驗
看到非營利,就知道這網站一定是免費
其實我去年就看過這平臺
但當時還在觀望臺灣的線上程式學習狀況
但臺灣的速度不及國外的完全
Code.org是我目前看過
免費且課程分齡完整的學習網站
網站英文的不用怕,一開始網站會先讓你選語言
1️⃣下拉到最底有個繁體中文點下去
網站的介面就換成中文了
2️⃣帳號可以用FB或是google帳號連動登入
登入後
3️⃣點課程目錄
第一次學
4️⃣請先把網頁網下拉,看到計算機科學基礎
🔸『計算機科學基礎』
這裡的內容就有分齡的合適課程
第一次不要被適合年齡逼到了
都先從課程4-6的課程先開始
按部就班,一課課學,就能完成
課程設計都有穿插 『不插電學習』
🔸『不插電學習』
有影片和學習單,看到密密麻麻英文會頭痛的,記得按右鍵,翻譯成中文,就可以了解大概的意思
🔸『速成課程』有合併不插電學習+線上學習
這網站偶而會出現適合兒童的速學課程(但目前沒有)
🔸『一小時玩程式』
適合已經有程式基礎的創作學習
再往下
🔸『為國高中準備的工具(英文版)』
不過這裡的課程不太適合臺灣
臺灣近期國中以上都是教Python
但想透過App Lab 還有 Game Lab 學習怎麼用 javascript 創件應用程式,可以在這裡學習。
線上學習有個好處是
忘記了,不會了,還能再回去看
順便練練英文耳的聽力,
年紀還小或低年級也想嘗試的,要家長在旁邊輔助喔
希望孩子們在這裡都能學習愉快
喜歡這篇文可以分享出去,並給我一個大拇指鼓勵喔!
#線上學習資源 #程式設計 #小學 #國中
#初階程式設計
========近期新文章=========
【小學生的短篇科學故事 】 👉https://reurl.cc/D95b1N
【認識昆蟲一定要認識的法布爾老爺爺】👉https://reurl.cc/1xNL8p
【學程英文輔助學習免費資源】👉https://reurl.cc/vDNm4j
【 臺北、新北市圖_網路借閱證辦理】👉https://reurl.cc/QdQVpb
【 聊聊暴力性侵 成為重要他人】👉https://reurl.cc/3DVb2j
python程式太長換行 在 Taipei Ethereum Meetup Facebook 的最佳解答
📜 [專欄新文章] Uniswap 解析:恆定乘積做市商模型 Constant Product Market Maker Model 的 Vyper 實作
✍️ 田少谷 Shao
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
在 🦄 Uniswap v2 到來之前徹底了解 v1 的設計與演算法!
Image source: https://uniswap.org/
Outline
一. 前言二. 恆定乘積做市商模型 Constant Product Market Maker Model 1. 計入手續費 2. 程式碼結構 3. 演算法核心與實作 4. 段落小結三. 流動性 Liquidity 1. 第一筆流動性注入、決定k值 2. 除了第一筆以外的情況四. 結語
一. 前言
暨上一篇開始接觸了 Vyper 後,我找了 Uniswap 的程式碼來更加熟悉 Vyper 的實作方法,順便研究了其演算法,然後就又寫了一篇 xD
類 Python 的合約語言 Vyper 開發入門:與 Solidity 差異、用 Truffle 部署、ERC20 賣幣合約實做
Uniswap 是以太坊上非常成功的自動做市商 Automated Market Maker (AMM)。本次我將用的 Uniswap 的程式碼搭配由 Runtime Verification 這家審計公司對 Uniswap 所做的形式化驗證結果來解釋恆定乘積做市商模型的 Vyper 實作 (2018 審計時 Uniswap 就已經是用 Vyper 而非 Solidity 了):
智能合約程式碼:https://github.com/Uniswap/uniswap-v1/blob/master/contracts/uniswap_exchange.vy
合約審計結果:https://github.com/runtimeverification/verified-smart-contracts/blob/master/uniswap/x-y-k.pdf
本文將以講解實作概念及數學推導為重點,程式碼的部分只是輔助。審計結果將恆定乘積做市商模型演算法的數學推導寫得非常清楚而有趣(?),建議有興趣者可以整份看過一遍,相信得到很多收穫!
至於更多 Uniswap 的介紹有興趣者可以參考 吳冠融 Roger Wu 所撰寫的簡介與使用流程:
解析 DeFi 項目《Uniswap》(一)Uniswap 是什麼?
解析 DeFi 項目《Uniswap》(二)Uniswap 如何使用?
在開始前的最後,先預告本文頗長,所以來播個被 Youtube 推薦的歌吧:
二. 恆定乘積做市商模型 Constant Product Market Maker Model
交易所如果要去中心化、也不使用掛單 order book,就需要靠演算法自動算出交易標的的數量與價格,而 Uniswap 使用名為恆定乘積的演算法,其來源可追溯自 Vitalik 的這篇文章:點我。
公式非常的簡單:x * y = k。令交易的兩虛擬貨幣為 X 和 Y,各自數量為 x 和 y,兩貨幣數量的乘積 x * y 恆等於 k,k 值是由第一筆注入的流動性所決定 (於 三. 流動性 Liquidity 解釋)。
因此,用 ∆x 數量的 X 幣來購買 Y 幣所能得到的數量 ∆y、或是為了購買 ∆y 需要付出的 ∆x 數量,依照此公式進行計算:(x+∆x)(y-∆y) = k,而交易的價格就是兩幣量 ∆x 和 ∆y 的比。
以下公式用 α = ∆x / x 和 β = ∆y / y 來表示 ∆x 和 ∆y 及 X Y 兩幣在交易發生後的新均衡數量:
圖一
1. 計入手續費
在 Uniswap 進行的每一筆交易都會被收取 ρ = 0.003 / 0.3% 的手續費回饋給流動性提供者 liquidity provider ,因此要將手續費納入公式的考量:
圖二
上圖的公式或許不太直覺,我建議不要從 x’ρ 及 y’ρ 開始理解,而是從 ∆x 和 ∆y 兩值開始:手續費 ρ = 0.3% 的意思是會從付款中扣掉 0.3 %,也就是從 ∆x 扣。在有手續費的情況下 ∆x 就變成了 (1-ρ)∆x ,若令 γ = 1-ρ 則為 γ∆x。因此,將圖一中的 ∆x 換成 γ∆x,就會得到以下式子:
source: https://www.codecogs.com/latex/eqneditor.php
將等號左方的 γ 移到右方後就得到了圖二中的 ∆x。同理,由於 ∆y 中的 α = ∆x / x ,用 γ∆x 代換 ∆x 就會得到圖二中的 ∆y (有 α 的地方乘上 γ )。而 x’ 還有 y’ 就可以由 ∆x 和 ∆y 推出來了!
然而,將圖二中得到的 x’ 和 y’ 相乘,會得到:
source: https://www.codecogs.com/latex/eqneditor.php
也就是說,當有手續費使得 γ != 1 /ρ != 0,x’ρ * y’ρ 的值其實會稍微和 xy = k 不同:在實作上 γ = 0.997 / ρ = 0.003,因此 1/γ-1 ≒ 0.003。β = ∆y / y 代表的是換得的 Y 幣佔總量的比例,即使最大值為 1,誤差也只有 1 * 0.003,故可知手續費 = 0.3% 對於 k 值的影響極小。
2. 程式碼結構
了解了基本的公式後,就可以開始研究程式碼是怎麼撰寫的。首先來看各個函式的功能:
addLiquidity() 及 removeLiquidity():轉入與轉出資金,留到 三. 流動性 Liquidity 中說明
getInputPrice() 及 getOutputPrice():最主要的函式,用以計算給 ∆x 所能換得的 ∆y 數量、以及為了得到 ∆y 所要支付 ∆x 的數量。此兩函式會被其他負責進行交易、匯幣的函式使用
三組 (eth->Token, Token->eth, Token->Token) 的 swap() 及 transfer():swap() 的收幣人就是付款人、transfer() 的收幣人不是付款人而是指定的對象。基本上這兩函式就是呼叫 getInputPrice() 或是 getOutputPrice() 後進行匯幣的動作,因此不再多做解釋
3. 演算法核心與實作
在研讀程式碼前,先回顧一下 ∆x 和 ∆y 的公式:
首先我們考慮用 ∆x 所能購買到的 ∆y 的 getInputPrice():
什麼…就這幾行程式碼?是的。
以上的程式碼和公式表達方式不同,因此先將 α = ∆x / x 和 β = ∆y / y 代換回來並將上下同乘 x:
source: https://www.codecogs.com/latex/eqneditor.php
由於 γ = 0.003,可以將上下同乘 1000 後得到:
source: https://www.codecogs.com/latex/eqneditor.php
接著就能來對照程式碼了:
(109行) numerator: input_amount 是欲支付的 X 幣數量 ∆x、output_reserve 是 Y 幣數量 y,再乘上 997 後就是等式右邊的上方 (= 997∆xy)
(110行) denominator: input_reserve 是 X 幣的數量,乘上 1000 再加上剛剛算過的 997∆x,就得到了等式右邊的下方 (= 1000x + 997∆x)
此處要注意的是 Vyper 的除法是無條件捨去,等同於 floor() 函式。這會不會造成嚴重的影響呢?如果熟悉 ERC20 的人應該記得,在發幣時輸入的四個參數中有一個參數代表小數點的位數,如同下方程式碼中的 2 代表最後兩位在小數點後。舉例來說,當 getInputPrice() 收到 1234567 為這個幣的 input_amount 時,代表使用者擁有的幣的數目實際上是 12345.67。因此,即使將結果捨去 0.67 後的數字,影響真的不大,況且如果不捨去而選擇無條件進位,那代表交易所反而要虧損一點點啦,太佛心了吧 xD 有興趣者可以看看審計報告的內容,有更詳細地去定義這些誤差所影響的範圍!
再來我們看若要購買 ∆y 需要付出多少 ∆x 的 getOutputPrice()。
一樣先將 α = ∆x / x 、β = ∆y / y 和 γ = 0.003 代換並上下同乘 1000y 得到:
source: https://www.codecogs.com/latex/eqneditor.php
我們已經看過 getInputPrice() 一次了,所以應該能發現第 122–124 行得出的結果和上式相同。要注意的是這邊的結果反而是無條件捨去後直接 +1,因為這是在計算使用者要付多少 ∆x 才能購買到 ∆y,為了不讓交易所虧只能選擇請使用者多付一點點。
4. 段落小結
以上就是撇除匯幣等函示,恆定乘積做市商的 Vyper 實作,沒錯就這樣而已!Uniswap 之所以可以做到低 gas 消耗就是因為這個演算法本身就非常簡單,所需的運算也就是兩三次乘除法而已!
不過我們還沒結束,接下來要談談如何投入資金/注入流動性,而這部分也包含了決定 k 值的精妙機制!
三. 流動性 Liquidity
流動性指的是交易市場中能夠交易的資金/標的物的量。使用自動做市商 (AMM) 而非掛單的最大好處就是市場一定會有流動性,而缺點就是如果交易量越大就會造成越大的滑點 Slippage,意思就是交易價格變動會越大、得到的價格越差 。
source: https://ethresear.ch/t/improving-front-running-resistance-of-x-y-k-market-makers/1281
我們可以用上面提到的 V 文章中的圖片來迅速帶過,畢竟有關注 Uniswap 的讀者大概都已經看過這圖很多次了。
當要兌換的幣的數量越大/占比越重,例如:20% Y 幣的流動性,就會造成要付出比兌換少量時極為不對稱的高額 X 幣。
接著我們要來探討注入流動性的原則,依照市場是否已經有流動性而區分為兩種情形:
1. 第一筆流動性注入、決定 k 值
以下程式碼是 addLiquidity() 函式中 46-48, 51, 及 64-74 行。當市場上還沒有任何流動性時,不會滿足第 51 行而是進入 64 行的 else。
在第 65 行我們可以看到 msg.value ≥ 10¹⁰,以及在 67 行 token_amount 就是其中一個輸入值 max_tokens。這邊代表的是第一個注入流動性的使用者可以自行決定要注入多少 Ether (≥ 10¹⁰) (= x) 以及相應的幣的數量 (= y),也就是上方提到的 k 值 (= x* y),在本例的 X 幣就是 Ether。(本處先不解釋剩餘的程式碼,留到 2. 除了第一筆以外的情況)
那麼問題來了:第一個注入流動性的人要怎麼決定提供各自多少的兩種幣呢?最好的辦法是依照當時兩幣的市價比,讓兩者的價值 (數量 * 價格) 相同,例如:當 1 Ether 的價格為 100 Dai,注入 1 Ether 以及 100 Dai 是最好的,因為兩種幣的總價值是一樣的,以下舉例說明原因。
當 1 Ether 市價為 100 Dai 時,假設第一人決定注入 1 Ether 和 50 Dai (k = 50),總價值為 150 Dai,我們考慮兩種兌換方法:
Ether -> Dai:用 0.1 Ether 來購買 Dai,依照上方公式 (1+0.1)(50-y) = 50 可得 y ≒ 4.55,也就是說得到的價格是 0.1 Ether = 4.55 Dai,遠低於市價 0.1 Ether = 10 Dai,相信沒有人這麼傻~
Dai -> Ether:用 2 Dai 來購買 Ether,依照上方公式 (1-x)(50+2) = 50 可得 x ≒ 0.038,也就是說得到的價格是 2 Dai = 0.038 Ether,高於市價 2 Dai = 0.02 Ether,那麼眼尖的人就會立刻衝來套利了xD
那麼即使如此,第一人有所損失嗎?當然有!假設路人 A 手上有 30 Dai (= 0.3 Ether),A 看到機會後就把 30 Dai 全換成 Ether:(1-x)(50+30) = 50 可得 x = 0.375,大於原本持有的 Dai 的價值 0.3 Ether。此時,第一人即使立刻抽出現存的全部資金 Ether = 0.625 及 Dai = 80,總價值也只剩下 142.5 Dai,比起原本的 150 Dai 還少。以上的計算還有手續費沒有納入考量,但也只有 30 Dai 的 0.3% = 0.09 Dai。
由上例可知,第一位提供流動性的人為了避免自己的損失,確實得依照當時兩幣的市價比去提供相應的數量。傑克,這真是太神奇了0…0
2. 除了第一筆以外的情況
如果市場已經有流動性,使用 addLiquidity() 來注入流動性就會進入第 51 行的 if。
source: https://github.com/Uniswap/uniswap-v1/blob/master/contracts/uniswap_exchange.vy
(53行) eth_reserve: 由於使用者已經透過函式 addLiquidity() 將錢匯入了合約,因此將合約所擁有的 Ether 數量 self.balance (= x + ∆x) 減去使用者匯入的錢 msg.value (= ∆x),得到使用者匯錢之前合約內所擁有的 Ether 數量 (= x)
(54行) token_reserve: self.token 是一個餵入幣地址的 ERC20 instance;透過呼叫 ERC20 的函式 balanceOf() 即可查出合約所擁有的 Y 幣的數量 (= y)
(55行) token_amount: 透過將合約所擁有的 Y 幣的數量 token_reserve (= y) 乘上使用者匯入的錢 msg.value (= ∆x) 對合約原本擁有的Ether 數量 eth_reserve (= x) 的比例,代表使用者應該相應地注入多少 Y 幣 (∆y = y * ∆x / x)。除法一樣是無條件捨去
(56行) liquidity_minted: 將原本交易所中的總流動性 total_liquidity 乘上增加的比率 msg.value / eth_reserve (= ∆x / x) ,代表增加的流動性,隨後會在第 58 行記錄下來
(60行) transferFrom() 函式將使用者應付的 Y 幣數量 token_amount (= ∆y) 匯入當前合約,就完成了流動性的注入。小提示:智能合約中的 assert() 會確保函式內的條件如果失敗就整筆交易 transaction 直接取消,因此只要傳入的參數已經被計算好,於 60 行再進行 transferFrom() 其實與放在前面並沒有太大的差別
以上就是注入流動性的大致實作內容。取出資金 removeLiquidity() 其實與 addLiquidity() 的做法大同小異,因此就不再贅述。
四. 結語
呼,真的累。恆定乘積做市商模型的概念雖然簡單,但解釋起來還是挺複雜的!其實本文並未著墨於審計報告中的主要議題:評估因為整數除法 (不使用浮點數) 而造成的誤差範圍,因為講起來非常複雜、也不是真的這麼需要知道。不過,恰巧就是這些程式碼的細節有可能讓程式產生預期之外的結果!因此,對於有興趣了解該如何去分析智能合約整數除法的讀者,可以研究一下;而 Uniswap 的程式碼因為是用 Vyper 實作,可讀性非常高、同時也不難,因此也非常值得打開來看看、甚至動手實作自己的版本!
最後,如果本文有任何錯誤,請不吝提出,我會盡快做修正;而如果我的文章有幫助到你,可以看看我的其他文章,歡迎一起交流 :)
田少谷 Shao - Medium
Uniswap 解析:恆定乘積做市商模型 Constant Product Market Maker Model 的 Vyper 實作 was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
python程式太長換行 在 在地上滾的工程師 Nic Youtube 的最讚貼文
## 影片觀看說明
由於問題較多,大家的問題也可能是你的問題,建議可以先閱讀下方的「問題總匯」區,找到時間碼 Time code 之後跳轉到自己想聽的部分,會比較有效率哦
本影片 Q&A 留言是抓取
【2020 年度回顧! 成為 Team leader? 業外收入增加? 技術能力成長? (第一次蒐集 Q&A)】https://youtu.be/BGaDN9wxbKE
## 影片中提到的專案
簡單用 React 撰寫的留言爬取篩選功能,可以自己抓去玩
https://github.com/niclin/youtube-comment-filter
## 問題總匯
00:00 開場
01:26 QA-1 - 林天寸
一直很喜歡妳的頻道,不單單是因為工程師,當然也有部分原因是自己也是走工程師這條路的。
前一年2020年開始,其實是我剛轉職工程師的第一年,在滿多地方都遇到不小的問題,在troubleshooting上面也是有許多瓶頸的。
後來除了白天上班,下班看書跟休息,偶然間看到你的影片[工程師如何自我進修],才開始慢慢用計畫的方式取代橫衝猛幹。
不得不說,規劃時間真的是比起技術性的功力還更有成效。因為它讓你適時的放鬆跟加強,然後在工作上面才更有長進,雖然很幹話,但我2020的下半年是這樣做的。
目前在準備考取網路管理的證照CCNA,計畫是走network這一塊,還有很多要磨練的。希望也能多看你產出跟network的影片,這是私心話啦,哈哈。
02:57 QA-2 - 仔仔
1.學程式會建議從前端或是後端哪個開始學會比較好?
2.一開始投履歷如何判斷一家公司是可以成長的,而不是進去3,5年後還是那個跟剛進去程度相差不遠的自己差不多
3.跟程式相關的產業有很多(像是製造業到博弈),可以請Nic分析一下各產業的狀況嗎?以及進去各產業前須要具備哪些程式語言或能力?
4.投履歷時看到一些公司列出所需程式語言和工具一大堆,是不是代表你沒完全具備就不要投履歷了,還是可以請Nic給個意見哪些部分還是可以投看看
5.都說工程師又宅又不會說話,為什麼Nic可以交到女朋友?
10:40 QA-3 - ANDREW NG KAR EARN
如果当写编程语言遇到瓶颈,有什么方法可以有效地避免自己陷入钻牛角尖的情况?
11:46 QA-4 - JS Lin
如果NIC現在選擇能馬上精通一項語言會是哪個?會想用來做什麼PJ?
13:13 QA-5 - Rick0
成為 team leader 後無法直接在技術上有更深入的研究和突破,這樣的變化是否值得?
是否會擔心這樣在技術上跟不上其他人,甚至被下屬看輕呢?
14:39 QA-6 - Henry蔡
因為最近是寒假期間,
我開始考慮下學期的修課,
想請教nic大大,
應該在有什麼樣的基礎上,
開始學design patterns?
我目前是碩士生,
大學非資工本科,
學過Python,
也跟過一些網路影片實作過Flask+PostgreSQL,
大學學過資料結構演算法,
但不到得心應手的程度...
16:07 QA-7 - 黃柏瑋
如何同時Handle好好幾件事
我怎麼覺得上班,然後下班假日寫寫side project後就沒啥時間了🤔🤔🤔
17:24 QA-8 - 乾太
我想問一下這年頭轉行斜槓 VTuber 還有沒有搞頭A?
18:10 QA-9 - uuu06222
之前開始關注你有知道你有面試過人的經驗, 想問一下站在面試官的角度...
面試官會不會比較注重作品需要呈現那些東西, 或是有沒有什麼禁忌是不能碰的嗎?
20:07 QA-10 - Joery Lin
想請教您對於對於給你很多成長和照顧的公司,倘若您有一個更好的機會,無論薪水或未知挑戰都大於現在公司。
您將如何做選擇,或許現在公司會給你加薪留下你。
因為自己曾放棄了許多機會
21:37 QA-11 - YangTing Zheng
Q1: 想問通常一個產品開發的週期都多長呢?負責維運和開發的工作內容是否會差很多?
Q2: 想請您簡單介紹一下資工系學生的出路/工作內容?(如PM.SA.DBA.PG.RD.MIS…或是還有其他的?)
24:16 QA-12 - RTB
Hello World
24:18 QA-13 - Barry
目前是公司MIS 很想轉職成後端工程師,但在面試上面都都時常失敗
常常在問技術關卡時就被問倒了,總覺得 要準備的東西非常的龐大
毫無準備的頭緒,總覺得一直寫side project也不是辦法
26:49 QA-14 - 因地制夷
想請教Nic 有在做投資嗎? ex 股票 想聽一些投資心得
27:13 QA-15 - 比歐
想請教 Nic 大,
在之後的工程師生涯中之後有甚麼規劃或想法嗎?
例如:開發產品創業,或是開班授課、轉做顧問之類的。
28:14 QA-16 - yongming jia
请问新手如何学编程,学完去做什么?怎么自己创业?谢谢🙏
29:33 QA-17 - Minghao Chang
是否能請您推薦用來開發的筆電?(正好最近要汰換電腦),想從今年開始養成寫side project的習慣,謝謝。
30:31 QA-18 - Guan Jun Chen
想知道像Nic這麼厲害的工程師,年薪大概落在哪裡
30:46 QA-19 - Sheng Jiang
想請問Nic,如果非資工背景但是對寫程式有熱情,想轉職當軟體工程師,會建議如何起步?
補充:像是什麼樣的人適合自學,什麼樣的人適合去補習,或者補習跟自學的情況各有哪些優劣?
謝謝Nic
## 結尾
31:49 感想
喜歡影片的話!可以幫忙點個喜歡以及分享、訂閱唷!😘
━━━━━━━━━━━━━━━━
🎬 觀看我的生活廢片頻道: https://bit.ly/2Ldfp1B
⭐ instagram (生活日常): https://www.instagram.com/niclin_tw/
⭐ Facebook (資訊分享): https://www.facebook.com/niclin.dev
⭐ Blog (技術筆記): https://blog.niclin.tw
⭐ Linkedin (個人履歷): https://www.linkedin.com/in/nic-lin
⭐ 蝦皮賣場: https://shopee.tw/bboyceo
⭐ Github: https://github.com/niclin
⭐ Podcast: https://anchor.fm/niclin
━━━━━━━━━━━━━━━━
✉️ 合作邀約信箱: niclin0226@gmail.com
#QA #工程師 #在地上滾的工程師 #前端 #後端 #轉職

python程式太長換行 在 python代碼換行的問題包括PTT、Dcard、Mobile01,我們都能 ... 的推薦與評價
以上這篇python程式碼過長的換行方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多 ... 這兩本書分別來自時報出版和人民郵電所出版。 世新大學 ... ... <看更多>
python程式太長換行 在 python代碼換行的問題包括PTT、Dcard、Mobile01,我們都能 ... 的推薦與評價
以上這篇python程式碼過長的換行方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多 ... 這兩本書分別來自時報出版和人民郵電所出版。 世新大學 ... ... <看更多>
python程式太長換行 在 Python Coding Style | 辛西亞的技能樹 的推薦與評價
是說如果縮排縮太深,應該要考慮重構了。 換行與對齊. 當變數名稱太長或是參數太多,導致需要換行的時候,如果有第一個參數, ... ... <看更多>