开发者

What is the way to apply extension methods?

开发者 https://www.devze.com 2022-12-08 17:10 出处:网络
When attempting to solve the problem How many seven-element subsets (not repeatable) are there in a set of nine elements ?

When attempting to solve the problem

How many seven-element subsets (not repeatable) are there in a set of nine elements ?

I tried

IEnumerable<string> NineSet =new string[] {"a","b","c","d","e","f","g","h开发者_JS百科","i"};

var SevenSet = 
from first in NineSet
from second in NineSet
where first.CompareTo(second)< 0 && first.Count() + second.Count()==7
select new { first, second };

What is the problem that prevents me from attempting to use first.Count() and second.Count()? I did not check whether it is the best solution for the problem.


As already stated, what you have written down will lead you to nowhere. This is a question of combinatorics. AFAIK there is nothing pre-made in the .NET framework to solve for you combinatorics problems, hence you will have to implement the correct algorithm. If you get stuck, there are solutions out there, e.g. http://www.codeproject.com/KB/recipes/Combinatorics.aspx, where you can look at the source to see what you need to do.


first and second are strings, so you'll count their characters (this compiles, but intellisence hides it).
You're looking for something like NineSet.Count(first.Equals)


Well...

  • You haven't shown the error message, so it's hard to know what's wrong
  • Every element is of length exactly one, so I'm not sure what you're expecting to happen
  • As you know that first and second are strings, why aren't you using first.Length and second.Length?

As a side issue, I don't think this approach is going to solve the problem for you, I'm afraid...

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号