List<int> sum = new List<int>();
for (int i = 1; i <= 15; i++)
sum.Add(i);
var s = from t1 in sum
from t2 in sum
from t3 in sum
……
[/Quote]
刚测试了一下,发生System.OutOfMemoryException异常!
耗费资源太大!!
List<int> sum = new List<int>();
for (int i = 1; i <= 15; i++)
sum.Add(i);
var s = from t1 in sum
from t2 in sum
from t3 in sum
……
[/Quote]
谢谢!请问还有更高效的算法?
List<int> sum = new List<int>();
for (int i = 1; i <= 15; i++)
sum.Add(i);
var s = from t1 in sum
from t2 in sum
from t3 in sum
from t4 in sum
from t5 in sum
where t1 != t2 && t1 != t3 && t1 != t4 && t1 != t5 && t2 != t3 && t2 != t4 && t2 != t5 && t3 != t4 && t3 != t5 && t4 != t5
select new { sum = t1 + t2 + t3 + t4 + t5 };
int sumcount = s.Count();
var source = from temp in s group s by temp.sum into g select new { g,key=g.Key, count = g.Count() };
DataTable dt = new DataTable();
dt.Columns.Add("和", typeof(int));
dt.Columns.Add("概率", typeof(double));
dt.Columns.Add("出现次数", typeof(int));
foreach (var temp in source)
{
DataRow dr = dt.NewRow();
dr["和"] = temp.key;
dr["概率"] = temp.count / Convert.ToDouble(sumcount);
dr["出现次数"] = temp.count;
dt.Rows.Add(dr);
}
GridView1.DataSource = dt;
GridView1.DataBind();