我对如何实施unary encoding有疑问。例如:我们怎样才能将 n (非负)与 n (严格为正)区别开来?我不明白。请帮帮我。
我已经改变并编写了代码。
public class unary {
public static void main (String[] args) {
int n = 10;
int i = 0;
String t = "";
while (i<n) {
t += "1";
i++;
}
t += "0";
System.out.println(n);
System.out.println("unary representation:");
System.out.println(t);
}
}
结果:
10
unary representation:
11111111110
这样吗?
答案 0 :(得分:4)
非负自然数包括0。 严格的正数自然数不会。 你不需要将非负面与严格正面区分开来,这完全取决于定义。
一元字符串0表示第一个自然数,如果域为非负数,则为0;如果域为严格正数,则为1。
数字10表示为1111111110
,同时处理严格正数或11111111110
处理非负数。