Java 将1024个数字映射到唯一字符

Java 将1024个数字映射到唯一字符,java,Java,我想从这里使用Ron Begleiter的代码:以便对某些序列数据执行一些预测 代码基于字符比较,即读取上下文(字符序列)和字符,并返回概率p(char | context),表示给定上下文时出现char的概率 我的问题是我的字母表由0到1023的整数组成。因此,像P(1 | 111)这样的比较并不构成唯一的查询。现在还不清楚你是在要求P(1 | 11)(e 1s)还是P(1 | 11)(一个接11)或P(1 | 11 1)(11接1)。这种比较是不明确的,所以我想将每个数字映射到唯一的字符,以

我想从这里使用Ron Begleiter的代码:以便对某些序列数据执行一些预测

代码基于字符比较,即读取上下文(字符序列)和字符,并返回概率p(char | context),表示给定上下文时出现char的概率

我的问题是我的字母表由0到1023的整数组成。因此,像P(1 | 111)这样的比较并不构成唯一的查询。现在还不清楚你是在要求P(1 | 11)(e 1s)还是P(1 | 11)(一个接11)或P(1 | 11 1)(11接1)。这种比较是不明确的,所以我想将每个数字映射到唯一的字符,以消除歧义

我特别想探讨如何为0到1023之间的每个数字唯一地分配唯一字符。Unicode是我读到的方法,我不想打印它们,赋值仅用于比较目的。换句话说,我想循环0-1023并将每个数字分配给唯一的Unicode字符

我认为这对很多人来说是可能的,也是微不足道的,但对我来说不是

建议?

您说“我不想打印它们”,但也说这是出于输入目的,以消除“111”和“1,1,1”以及“11,1”等之间的歧义。因此它们必须是可读/可打印的字符。。。你有几个选择,那么:

  • 使用固定的多字符输入,如@BobTheBuilder建议的。“0001001”和“0011001”之间的区别非常明显,尽管对人类来说可能不是最容易阅读的

  • 使用分隔符来分隔输入,就像我在上面第一段中所做的那样。“111”对“11,1”等

  • 两种方法的结合可以缩短时间。1024=32*32,所以如果您有一个32个字符的“字母表”,那么每个可能的值只需要两个字符
    0-9A-Z
    ,取出
    I
    O
    Q
    ,和
    Z
    (我只选择了这四个,以减少与
    1
    0
    ,和
    2
    )可能产生的混淆)将非常有效。然后,您可以编写“1MFF”或“1M,FF”来表示两个独立的值
    53
    495

  • 从Unicode中找到1024个连续的可打印字符。这是我第一次想看的地方,但是你会让你的用户用随机汉字输入这些信息。也许这样行得通,但我怀疑。我会选择前两个选项中的一个,然后再选择后一个;没有1024个不同的字符可以用西式键盘轻松输入


  • 您还可以用4位数字表示每个“数字”。0将是0000,依此类推。谢谢,但这是不可能的,因为它需要更改预测代码。代码包含一个字符序列和一个字符,就是这样。是的,这与我所要求的相似。在提问之前,我看了一下,我想彝语音节可能会起作用。看来你的最后一个建议是顺理成章的。现在我必须阅读关于如何实际实施它的文档。谢谢