如何编码以下数字表示

时间:2011-03-08 05:49:56

标签: numbers representation

好吧,这是我在任务中得到的一个问题......我不知道如何进行任务 问题是这样的  一个男人想要与外星人交流,通过提供
安全地将他安置在地球站上 坐标,但外国人使用不同的数字表示(不是十进制)
外星人表示包含字符集(o f a)
现在输入(9,5)男人给他以下(foo,fa)
你可以给我提示或代码,以便我可以尝试自己编写代码

3 个答案:

答案 0 :(得分:0)

提示:外星人正在使用像我们这样的位置编号系统。 (换句话说,它可能不像罗马数字或拼写出数字的名称。)

第二个提示:考虑外星人数字系统中有多少个字符。

答案 1 :(得分:0)

提示:

  • 有三个符号。在十进制(基数为10)中,有10个数字:0 1 2 3 4 5 6 7 8 9.在二进制(base-2)中有两个数字,0和1.在base-16中有16个数字。由于外星系统中有三个符号,我们可以猜测它的组织吗?

  • 5base10 = 12base3。 9base10 = 100base3。因此,十进制中的(9,5)与三进制中的(100,12)相同。我们可以猜测哪些外星符号代表哪些人类数字?

答案 2 :(得分:0)

看起来他们是三元的。

您想将十进制(基数为10)转换为三元(基数为3)。

您会注意到,外国人使用012而不是ofa。它们基本上映射到相同的数字。

因此,要获得答案,请将十进制转换为三元,然后将数字替换为外来字符。

PHP代码示例

$chars = 'ofa';
$ternary = str_split(base_convert(9, 10, 3));
foreach($ternary as $num) {
   echo $chars[$num];
}

这在任何语言都可行,尽管PHP很幸运,有一个原生的base_convert()函数。