两种拜占庭算法
方法一:
package mainimport ("fmt""time" ) var ch = make(chan string) var t=[4]int{1}func aa(cnt int){for i:=0;i<4;i++{if i!=cnt {t[i] = t[cnt]+t[i]fmt.Println(t)}} } func main() {fmt.Println(t)go func () {cnt:=0for {msg:=<-chfmt.Println(msg)aa(cnt)}}()go func() {time.Sleep(time.Second)ch<-"1"}()for {} }方法二:
package mainimport "fmt"type Node struct {name stringdata int }var n = [4]Node{Node{"N0", 0},Node{"N1", 0},Node{"N2", 0},Node{"N3", 0}, }func main() {n[0].data = 1for i:=0;i<len(n);i++ {for j:=0;j<len(n) ;j++ {if i==j {continue}n[j].data = n[j].data+1}fmt.Println(n)} }總結
- 上一篇: 其他的拜占庭算法
- 下一篇: 拜占庭将军问题与中本聪