
function Main(input) {
    var N = parseInt(input[0], 10);
    var K = parseInt(input[1], 10);

    var kakurituList = [0.5]; // 連続で表をだす確率のリスト(17回やれば必ず100000を越えるため長さは14)
    for (i = 0; i < 16; i ++) {
        kakurituList.push(kakurituList[i]/2);
    }

    var numList = []; // 何回表を出す必要があるかのリスト
    for (var nIndex = 1; nIndex < N + 1; nIndex++) {
        var num = nIndex; // サイコロで出した数
        var omoteNum = 0;
        while (num < K) {
            num = num * 2;
            omoteNum++;
        }
        numList.push(omoteNum);
    }
    // console.log(numList);

    var result = 0;
    var nKakuritu = 1 / N;

    for (var rIndex = 0; rIndex < numList.length; rIndex++) {
        result += numList[rIndex] !== 0 ? kakurituList[numList[rIndex] - 1] : 1;
    }

    console.log(result * nKakuritu);

}

Main(require("fs").readFileSync("/dev/stdin", "utf8").trim().split(/\n|\s/));