2

好吧,这是我在作业中遇到的一个问题..我不知道继续
这个问题是这样 的数字(不是十进制) 外星人表示包含字符集(ofa) 现在用于输入(9,5)男人给他以下(foo,fa) 你能给我提示或代码,以便我可以尝试自己编写代码




4

3 回答 3

0

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

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

于 2011-03-08T05:54:46.070 回答
0

提示:

  • 有三个符号。在十进制(base-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) 相同。我们可以猜测哪些外星符号代表哪些人类手指吗?

于 2011-03-08T05:55:14.940 回答
0

看起来他们是三元的。

您想将十进制(以 10 为底)转换为三进制(以 3 为底)。

您会注意到外星人使用0,1而不是,和。它们基本上映射到相同的数字。2ofa

所以要得到答案,将十进制转换为三进制,然后用数字代替外星字符。

示例 PHP 代码

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

这在任何语言中都是可行的,尽管 PHP 有幸拥有原生base_convert()函数。

于 2011-03-08T05:55:45.490 回答