原创 分割字符串爲迴文串(每一個子串都是迴文串)

void dfs(string s, vector<string> &path, vector<vector<string>> &res) { if(s.size() < 1) { res.push_back(path);

原创 比特幣腳本

本文譯自比特幣WIKI:https://en.bitcoin.it/wiki/Script 譯者:申屠青春 深圳大學ATR國防科技重點實驗室博士 新浪微博 @我看比特幣 注意:本文可隨意轉發,請留下譯者信息,如果覺得本文對你有用,請

原创 O(n)的quickselect算法

Note: You are looking at a static copy of the former PineWiki site, used for class notes by James Aspnes from 2003 to 2

原创 什麼是POW和POS,二者區別聯繫?

        POW:全稱Proof ofWork,工作證明。這是什麼意思呢?這就是說,你獲得多少貨幣,取決於你挖礦貢獻的有效工作,也就是說,你電腦性能越好,分給你的礦就會越多,這就是根據你的工作證明來執行貨幣的分配。大部分的虛擬貨幣,

原创 比特幣協議工作原理

比特幣 現在,讓我們離開Infocoin,轉向的真正的比特幣協議。比特幣和我們剛纔一步步建立起來的Infocoin沒有多大的差別,除了一個明顯的改變。 要使用比特幣,首先你得在電腦裏安裝一個錢包。爲了讓你更好的理解,下圖是一個叫做M

原创 私有鏈 vs 公有鏈 vs 聯盟鏈

在過去的一年,“私有區塊鏈”(private blockchains)的概念在區塊鏈技術討論中成了熱門詞彙。從本質上而言,相較於完全公開、不受控制,並通過加密經濟來保證網絡安全的系統(例如,工作量證明pow以及權益證明pos),“私有區

原创 硬分叉 vs 軟分叉 孰是孰非?

2015年這個漫長而炎熱的夏季,已經暴露了一些關於比特幣社區,令人驚訝的東西:很多人對於區塊鏈算法如何實際運行的技術原理,其實是陌生的。 最終,bitcoin.org及各個論壇的管理者邁克爾·馬夸特(Michael Marquardt

原创 比特幣交易腳本詳解

其實我們可以這樣看待比特幣的交易:『交易的發起者懸賞若干比特幣,在網絡上貼出了一到數學題,誰解出了這道數學題,懸賞就歸誰了』。 順着這個思路,Alice對Bob的轉賬可以理解爲『Alice把一道只有Bob才能解開的數學題發到網絡上,Bo

原创 區塊鏈-智能合約簡單腳本編寫方法(solidity)

        “一個智能合約是一套以數字形式定義的承諾(promises) ,包括合約參與方可以在上面執行這些承諾的協議。”協議是技術實現(technical implementation),在這個基礎上,合約承諾被實現,或者合約承諾實

原创 SPV證明

一、什麼是SPV SPV是“Simplified Payment Verification”(簡單支付驗證)的縮寫。中本聰論文簡要地提及了這一概念,指出:不運行完全節點也可驗證支付,用戶只需要保存所有的block header就可以了

原创 python二叉樹的層次遍歷

class Node(object): def __init__(self, data, left=None, right=None): self.data = data self.left =

原创 區塊鏈分叉機制

區塊鏈的組裝與選擇 比特幣去中心化的共識機制的最後一步是將區塊集合至有最大工作量證明的鏈中。一旦一個節點驗證了一個新的區塊,它將嘗試將新的區塊連接到到現存的區塊鏈,將它們組裝起來。 節點維護三種區塊:第一種是連接到主鏈上的,第二種

原创 數組的子集

Given a set of distinct integers,  S , return all possible subsets. Note:  Elements in a subset must be in non-descen

原创 手機按鍵組合問題

Given a digit string, return all possible letter combinations that the number could represent. A mapping of digit to

原创 python閉包解釋

閉包(closure)是函數式編程的重要的語法結構。函數式編程是一種編程範式 (而面向過程編程和麪向對象編程也都是編程範式)。在面向過程編程中,我們見到過函數(function);在面向對象編程中,我們見過對象(object)。函數和對