增加交并计算功能

This commit is contained in:
algotao
2025-11-05 16:41:06 +08:00
parent 869bae0a9e
commit 44d9206b9f
10 changed files with 950 additions and 12 deletions

View File

@@ -17,23 +17,23 @@ func RunMakeBloom(args ...string) error {
fs := flag.NewFlagSet("makebloom", flag.ExitOnError)
txtFile := fs.String("d", "", "device id filename")
bmpFile := fs.String("b", "", "bitmap filename for output")
outFile := fs.String("o", "", "output bitmap filename")
elements := fs.Uint64("e", 0, "max elements. (max 100 0000 0000). if 0 then auto")
falseRate := fs.Float64("r", FalseRate, "false rate (0.01--0.0000 0000 1)")
if err := fs.Parse(args); err != nil {
return err
} else if fs.NArg() > 0 || *txtFile == "" || *bmpFile == "" ||
} else if fs.NArg() > 0 || *txtFile == "" || *outFile == "" ||
*elements > 10000000000 ||
*falseRate > 0.01 || *falseRate < 0.000000001 {
fs.Usage()
return nil
}
return makeBloom(*txtFile, *bmpFile, *elements, *falseRate)
return makeBloom(*txtFile, *outFile, *elements, *falseRate)
}
func makeBloom(txtFile string, bmpFile string, elements uint64, falseRate float64) error {
func makeBloom(txtFile string, outFile string, elements uint64, falseRate float64) error {
// 打开设备号文件
slog.Info("open source file", "filename", txtFile)
tfile, err := os.Open(txtFile)
@@ -76,8 +76,8 @@ func makeBloom(txtFile string, bmpFile string, elements uint64, falseRate float6
}
// 保存文件
slog.Info("save bitmap file", "filename", bmpFile)
err = bloombmp.SaveToFile(bmpFile)
slog.Info("save bitmap file", "filename", outFile)
err = bloombmp.SaveToFile(outFile)
if err != nil {
slog.Error("save bitmap file error", "err", err)