我在下面的模式中生成三个字母的可能组合,如(A,B,C)。修复外部字母并更改内部。
对于(A,B,C)= 3 * 3 * 3的可能性。
我将所有数据存储在数组中,现在按顺序可以知道哪个索引 发生了特殊的组合。示例:6 A处的“A B C”, 27岁的“C C C”。
同样通过索引可以得出它看起来像6 =“A B C”的索引。
有什么模式可以找到吗? 不期待仅代码公式
A A A
A A B
A A C
A B A
A B B
A B C
A C A
A C B
A C C
B A A
B A B
B A C
B B A
B B B
B B C
B C A
B C B
B C C
C A A
C A B
C A C
C B A
C B B
C B C
C C A
C C B
C C C
答案 0 :(得分:3)
您的组合对应于基数为3的数字,它们使用字母C
,A
和B
作为其数字:
C
对应0 WebView webview = (WebView) findViewById(R.id.webview);
webview.getSettings().setJavaScriptEnabled(true);
String pdfUrl = "http://www.adobe.com/devnet/acrobat/pdfs/pdf_open_parameters.pdf";
webview.loadUrl("http://drive.google.com/viewerng/viewer?embedded=true&url=" + pdfUrl);
对应1 如果将索引转换为base-3,则会得到相应的组合。您从1开始编号组合,因此您需要在转换前减去1。
例如,要获得第6行的组合减去1得到5,然后将5转换为base-3得到012,然后用字母替换数字以获得ABC。
同样,您可以将组合转换为base-3,例如CAB变为201,然后将其转换为十进制以获得19,将其加1以获得20 - 列表中的CAB索引。
答案 1 :(得分:2)
让我们看一下A和B的简单案例
你会得到
AA
AB
BA
BB
但等等 - 这就像二进制
00
01
10
11
那么在这种情况下如何 - 如果我们要写行,我们会得到:
1 = AA
2 = AB
3 = BA
4 = BB
所以它就像一行的二进制表示 - 1; 例如第2行=> 2-1 = 1 =>二进制1是01 => AB 强>
所以事实上你应该做同样的但不是二元的,而是三元的(是一个单词吗?) - 意思是你的例子中的索引为3
最右边的'数字'是字母大小(在你的例子中为3),幂为0 下一个是字母大小,功率为1
所以 - CAC => 2 * 3 ^ 2 + 0 * 3 ^ 1 + 2 * 3 ^ 0 = 18 + 0 + 2 = 20(+1确定行从0开始)= 21 等