【发布时间】:2017-10-30 08:44:10
【问题描述】:
我正在尝试建立一个网站,该网站本质上是 6 弦吉他的备用调音数据库。我真正想做的第一件事就是把调音列表放在一起。
我的常量:
1.) 六个字符串
2.) 最低音可能是标准调弦的完美 4 度音(低 e 变为 b,弦变为 e,d 弦变为 g,等等)。
3.) 高音(目前)是大三度 高于 标准调弦(低 e 变成 g#,弦变成 c#,d 弦变成 f#,等等)。
4.) 这意味着每个弦有 10 个可能的音符范围,其中一些会重叠(例如,在低 e 和弦之间:e、f、f#、g、g#)
因此,鉴于这些信息,我正在尝试构建 ALL 可能排列的列表。
我尝试过使用 python 的 itertools,但我的笔记本电脑不能很好地处理计算。所以我想也许java会有一些更有用的内置函数。
谁能帮帮我?我是一个非常业余的编码员,所以任何帮助都会很棒。
谢谢
编辑:这是我目前的代码:
import java.util.Arrays;
import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;
public class TuningList{
public static void main(String[] args){
List<String> string6 = Arrays.asList("B1", "C2", "C#2/Db2", "D2", "D#2/Eb2", "E2", "F2", "F#2/Gb2", "G2", "G#2/Ab2");
List<String> string5 = Arrays.asList("E2", "F2", "F#2/Gb2", "G2", "G#2/Ab2", "A2", "A#2/Bb2", "B2", "C3", "C#3/Db3");
List<String> string4 = Arrays.asList("A2", "A#2/Bb2", "B2", "C3", "C#3/Db3", "D3", "D#3/Eb3", "E3", "F3", "F#3/Gb3");
List<String> string3 = Arrays.asList("D3", "D#3/Eb3", "E3", "F3", "F#3/Gb3", "G3", "G#3/Ab3", "A3", "A#3/Bb3", "B3");
List<String> string2 = Arrays.asList("F#3/Gb3", "G3", "G#3/Ab3", "A3", "A#3/Bb3", "B3", "C4", "C#4/Db4", "D4", "D#4/Eb4");
List<String> string1 = Arrays.asList("B3", "C4", "C#4/Db4", "D4", "D#4/Eb4", "E4", "F4", "F#4/Gb4", "G4", "G#4/Ab4");
}
【问题讨论】:
-
所有可能的排列?这要求有很多不和谐。
-
“构建所有可能排列的列表”是一个常见的新手陷阱。遍历任何事物的所有可能排列几乎不是一个好主意,在您真正想要这样做的情况下,按需生成排列几乎总是比预先构建整个列表更好。
-
“所有可能的排列?这要求很多不和谐”是的,我知道!这就是重点哈哈! “一个常见的新手陷阱”我不怀疑。但有可能吗?
标签: java python arraylist itertools