gpt4 book ai didi

algorithm - 设计一个自动完成系统来选择聚合类型的实例

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:35:11 25 4
gpt4 key购买 nike

聚合类型 T 由 4 个字符串组成:t = c1 c2 c3 c4

每个c1 c2 c3 c4都可以有多个唯一值:

  • c1 可能有多个唯一值 c1.1、c1.2、c1.3、... c1.n,其中“n”可以相当高,大约 30,000。
  • c2 的唯一值要少得多,不超过 5,即 n < 5
  • 对于 c3 和 c4,n 是不可预测的,但通常为 10 < n < 100。

有很多类型 T 的实例,大约有 200,000 个——全部由 c1 c2 c3 c4 的不同值组成。

    t1 = c1.1 c2.1 c3.1 c4.1    t2 = c1.2 c2.1 c3.2 c4.2    t3 = c1.3 c2.2 c3.2 c4.3    ...    tN = c1.n c2.n c3.n c4.n

目标是允许用户选择类型 T 的单个有效实例。目前 (C# Winforms .NET 2.0) UI 显示 4 个自动完成下拉列表,每个下拉列表中的 c1 c2 c3 c4 具有唯一值。一旦选择了一个有效实例,它就会作为输入提供给外部系统。当前 UI 的优势在于它可以快速想出(鉴于这是 v1.0 版本)并且速度相当快——Winforms 的标准自动完成下拉列表似乎没有 30k 个独特项目的问题,并且用户可以快速选择一组四个值。

问题在于,虽然它确实允许用户快速键入他们需要的内容,但自动完成功能无法帮助用户找到合适的,因为他们不知道他们选择的值组合是否匹配现有的有效对象。对于有经验的用户来说,这大多不是问题。然而,新用户最终会选择 c1 c2 c3 c4 的值,这些值实际上不会产生类型 T 的有效实例。

我的问题是:有没有其他方法可以构建用于输入 T 的 UI,以便用户可以享受自动完成的好处(我真的想避免选择列表样式的界面,它们输入数据的速度要慢得多)同时允许新用户选择有效的值组合?

虽然最初的实现是基于 .NET 的,但我很乐意听到任何其他平台上的解决方案。我的问题实际上是关于设计更高效的 UI,而不是关于特定平台。

编辑以澄清:也欢迎算法(即非 UI)建议。

最佳答案

我的回答与如何实现 GUI 没有直接关系,但您可以将所有有效组合 t1->tN 放入 patricia trie 中并用它来构建autocompletion as you type .

关于algorithm - 设计一个自动完成系统来选择聚合类型的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1142836/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com