gpt4 book ai didi

max - EBNF 最大代币

转载 作者:行者123 更新时间:2023-12-02 09:05:27 25 4
gpt4 key购买 nike

假设我有以下 EBNF:

ProductNo   ::= Digitgroup "-" Lettergroup;
Digitgroup ::= Digit Digit? Digit? Digit?;
Digit ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9";
Lettergroup ::= Letter Letter? Letter? Letter? Letter?;
Letter ::= "A" | "B" | "C" | "D" | "E" | "F" | "G"
| "H" | "I" | "J" | "K" | "L" | "M" | "N"
| "O" | "P" | "Q" | "R" | "S" | "T" | "U"
| "V" | "W" | "X" | "Y" | "Z";

现在我想设置 ProductNo = 5 的最大 token

示例:

Input : 1-A      (EBNF valid and Token < 5)
Input : 023-A (EBNF valid and Token < 5)
Input : 0231-ABI (currently EBNF valid but Token = 8 > 5 so this should not be valid)
Input : 022-ABCDE(currently EBNF valid but Token = 9 > 5 so this should not be valid)

正如您在此示例输入中所看到的,只要其 EBNF 符合(最少 1 位数字,最多 4 位数字),(最少 1 个字母,最多 5 个字母),数字和字母的组合就可以有所不同,但 token 的总和<= 5(包括“-”)。

问题:除了写下字母和数字的每个有效组合之外,还有其他方法吗?

我当前的解决方案:

ProductNo   ::= Token Token Token Token? Token?;
Token ::= Digit | Letter | "-";
Digit ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9";
Letter ::= "A" | "B" | "C" | "D" | "E" | "F" | "G"
| "H" | "I" | "J" | "K" | "L" | "M" | "N"
| "O" | "P" | "Q" | "R" | "S" | "T" | "U"
| "V" | "W" | "X" | "Y" | "Z";

问题:ProductNo(数字组、“-”、字母组)的组成未再现。所以我需要将两个 EBNF 合并为一个,但我真的不知道如何做到这一点。

最佳答案

我假设您使用的是 W3C 表示法:http://www.w3.org/TR/REC-xml/#sec-notation ,不是标准 ISO 表示法:http://en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_Form .

如果我错了,请指定您正在使用哪个 EBNF!

在 W3C 表示法中,您可以使用:

Digit       ::= [0-9]
Letter ::= [A-Z]
GoodFormat ::= Digit+ "-" Letter+
Token ::= Digit | Letter | "-"
TooLong ::= Token Token Token Token Token Token+
ProductNo ::= GoodFormat - TooLong

关于max - EBNF 最大代币,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19728784/

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