将Pi转换成字母?

时间:2012-03-14 14:30:13

标签: java numbers

对于Pi Day,我正在尝试编写一个Java程序,试图在Pi中找到一个给定的单词(或另一个给定的无理数)。我几乎完成了所有这些,但是我对如何将pi的每个数字/数字转换为字母感到矛盾。我想说:A = 01,B = 02,C = 03 ...... Y = 25,Z = 26。

然而,我对所有可能没有机会的可怜数字序列感到不好,因为任何不以“0”或“2”开头的序列都将被完全忽略。这意味着80%的序列无关紧要?

我可以进行base-26到base-10的转换吗?如果这确实是一个合适的解决方案,不知道如何做代码?

谢谢!

2 个答案:

答案 0 :(得分:5)

您可以使用方法like this one将Pi从其基础10形式转换为任何其他基础(即基础26,您只使用字母A-Z,而不是数字0-9)。由此产生的"数字"将是所有的信件。

您必须修改fromDecimalToOtherBase方法,以便它只输出字母。否则,它应该非常简单,并且在十进制和任意基数之间进行转换是相同的算法。

仅仅为了踢,我还发现this page包含一个任意的基本转换器。如果输入不带小数的Pi,则输入" 26"对于目的地基础,它会进行转换(虽然它仍然使用数字0-9,所以它不会解决问题,你想要的方式)。

答案 1 :(得分:3)

您可以将字母表包围并使用所有代码。

00 = A
01 = B
...
24 = Y
25 = Z
26 = A
27 = B
...

或者,为什么要打算使用10号基座呢?只需在基数26中表示开头的数字,每个数字代表一个字母。

pi = D,DRSQLOLYRTRCLRGGUKBJKPSRFVKRODHLJRFSZSOXNHXZ...