C# 输出。在代码中运行一次循环意味着您需要在编译之前或编译时确定的内容上消耗cpu资源。而且,它需要由程序的每个实例计算,总共消耗的cpu时间比我在本地运行循环所花费的时间要多。你是如何计算出这个字符串的?我看不见那条路pattern@CasperT-我也花了
C# 输出。在代码中运行一次循环意味着您需要在编译之前或编译时确定的内容上消耗cpu资源。而且,它需要由程序的每个实例计算,总共消耗的cpu时间比我在本地运行循环所花费的时间要多。你是如何计算出这个字符串的?我看不见那条路pattern@CasperT-我也花了,c#,linq,C#,Linq,输出。在代码中运行一次循环意味着您需要在编译之前或编译时确定的内容上消耗cpu资源。而且,它需要由程序的每个实例计算,总共消耗的cpu时间比我在本地运行循环所花费的时间要多。你是如何计算出这个字符串的?我看不见那条路pattern@CasperT-我也花了一些时间。没有模式,它是预先计算的-s/他运行了60个可能的值,这些是结果。我寻找了一个模式,但无法简化循环。是的,这是60个可能的值,它们会一次又一次地重复自身。如果你喜欢暴力解决方案,你可能只需要预先计算前千个结果,希望没有人能找到两个50
输出。在代码中运行一次循环意味着您需要在编译之前或编译时确定的内容上消耗cpu资源。而且,它需要由程序的每个实例计算,总共消耗的cpu时间比我在本地运行循环所花费的时间要多。你是如何计算出这个字符串的?我看不见那条路pattern@CasperT-我也花了一些时间。没有模式,它是预先计算的-s/他运行了60个可能的值,这些是结果。我寻找了一个模式,但无法简化循环。是的,这是60个可能的值,它们会一次又一次地重复自身。如果你喜欢暴力解决方案,你可能只需要预先计算前千个结果,希望没有人能找到两个500个字符的名字……;)但是一个简单的循环不是比一些神奇的字符串更好吗?您只需要运行一次循环,然后保存模式。我运行了一次循环,这就是输出。在代码中运行一次循环意味着您需要在编译之前或编译时确定的内容上消耗cpu资源。另外,它需要由程序的每个实例计算,总共消耗的cpu时间比我在本地运行循环所花费的时间还要多。谢谢David,我怀疑第三步是关键部分,不是吗?谢谢David,我怀疑第三步是关键部分,不是吗?
Male : Albert
Female : Hebarna
Male : $ l $ $ r t
Female: H $ $ $ r n a
F L A M E S
1 2 3 4 5 6
7
(Here the count 7 ends at F ,so strike F)
$ L A M E S
$ L A M E S
(igonre) 1 2 3 4 5
(ignore) 6 7
$ L $ M E S
1 2 3
ignore 4 ignore 5 6 7
$ L $ M E $
ignore 1 ignore 2 3
4 ignore 5 6
7
$ $ $ M E $
ignore 1 2 ignore
ignore ignore ignore 3 4 ignore
5 6
7
var count = male.Length + female.Length - male.Intersect( female ).Count();
while (flames.Length > 1)
{
flames = string.Join( '', flames.Where( (c,i) => i != (count % flames.Length) -1 ).ToArray() );
}
public static Char GetChar(int diff) {
var idx = (diff - 1) % 60;
return "efefmeaelmaafmfaflefefeemsasamfmfallslslesmsasmmaelmlaslslfs"[idx];
}
var firstLookup = firstName.ToLookup(c => c.ToLower());
var secondLookup = secondName.ToLookup(c => c.ToLower());
var allChars = firstLookup.Keys.Union(secondLookup.Keys);
int count =
(
from c in allChars
let firstCount = firstLookup[c].Count()
let secondCount = secondLookup[c].Count()
select
firstCount < secondCount ? secondCount - firstCount :
firstCount - secondCount
).Sum()
List<char> word = "FLAMES".ToList();
while (word.Count > 1)
{
int wordCount = word.Count;
int remove = (count-1) % wordCount;
word =
word.Select( (c, i) => new {c, i =
i == remove ? 0 :
i < remove ? i + wordCount + 1 :
i})
.OrderBy(x => x.i)
.Select(x => x.c)
.Skip(1)
.ToList();
}
char result = word.Single();