我有一个由小写字母a-z组成的char[26],通过嵌套的for循环语句,我正在生成一系列序列,例如:
aaa, aaz... aba, abb, abz, ... zzy, zzz.
目前,该软件编写成生成aaa-zzz的所有可能值列表,然后维护一个索引,并对每个值执行操作。
这个列表显然很大,虽然不是非常大,但已经到了内存占用过大的地步(还有其他方面正在被研究,但这是其中之一)。
我正在尝试制定一个公式,可以保留索引,但取消序列列表,并根据当前索引计算当前序列(因为序列之间的操作时间很长)。
例如:
char[] characters = {a, b, c... z};
int currentIndex = 29; // abd
public string CurrentSequence(int currentIndex)
{
int ndx1 = getIndex1(currentIndex); // = 0
int ndx2 = getIndex2(currentIndex); // = 1
int ndx3 = getIndex3(currentIndex); // = 3
return string.Format(
"{0}{1}{2}",
characters[ndx1],
characters[ndx2],
characters[ndx3]); // abd
}
我尝试使用子集(abc)来进行小例子的练习,并尝试使用模除法进行索引,但今天我的思路不太清晰,我束手无策。
我不是在寻求答案,只是需要任何形式的帮助。也许是给我指明正确方向的一脚?