Q 数字

主要观点:介绍如何使用有限自动机匹配和比较数字,需将数字转换为具有特定词法属性的字符串,希望有至少 12 人对数字表示与有限自动机的交集感兴趣。Quamina 是基于 Go 语言的库,受 AWS Event Ruler 启发,可编译模式并匹配事件。之前 Quamina 不知“20”“20.0”等是相同数量,现通过将数字规范化为固定大小字符串来解决,需满足数字在 -/+5×10⁹ 之间且小数部分不超过 5 位等约束。同时探讨了可改进的方式,如用其他方式表示二进制等,Ruler 已实现 6 位小数,而 Go 无 BigDecimal 较难实现,Quamina 不愿引入依赖。代码中对数字转换的约束和转换代码不便宜,需注意在特定条件下进行转换,Quamina 有自己的 JSON 解析器可辅助判断。结论是 Quamina 现在能处理数字,匹配 14 位 Q 数比“20”稍慢但正确性更重要。

关键信息:

  • Quamina 库及与 AWS Event Ruler 的关系。
  • 数字规范化为 14 位 hex 字符串的过程及约束。
  • 可改进方式及与 Ruler 的对比。
  • JSON 解析器在数字处理中的作用。

重要细节:

  • Quamina 处理事件速度快且与模式数量弱相关。
  • 不同数字示例及其规范化结果。
  • 对代码优化及性能影响的讨论。
  • 关于“Q 数”的命名及相关讨论。
阅读 11
0 条评论