最近在看Steven Skiena写的The Algorithm Design Manual,第二章遇到一个习题,想了一个naive的方法,在网上也没有查到解答。想到这个题是不是会有更一般的解法,希望路过的大神如果有insight的话给点指导
这个题是这样描述的:
We have 1,000 data items to store on 1,000 nodes. Each node can store copies of exactly three different items. Propose a replication scheme to minimize data loss as nodes fail. What is the expected number of data entries that get lost when three random nodes fail?
初看这个问题,有以下几个初步想法
1. 显然,每个数据的重要性都是一样的,所以每个数据都应该存储3个备份;
2. 对于任意两个node,它们的交集越少越好,比如两个node存储的数据完全一样,那么它们同时fail掉,丢失一个数据的概率就是10^-3 + 10^-3 + 10^-3