wac*_*ock 2 c# algorithm boolean
我正在尝试找到一个允许我执行以下操作的算法:想象一下,我有10个布尔变量,我想尝试每个组合,因为我的目标是找到任何组合,这将给我的一个结果方法是真的(这个方法有很多限制,这就是为什么我想测试每个可能的组合,如果没有组合可以解决问题,那么我想通知用户这个).我希望这是可以理解的!
试试这个:
for (int i = 0; i < (1 << 10); i++)
{
bool b1 = (i & (1 << 0)) != 0;
bool b2 = (i & (1 << 1)) != 0;
bool b3 = (i & (1 << 2)) != 0;
bool b4 = (i & (1 << 3)) != 0;
...
if (MyMethod(b1, b2, b3, b4, ...))
{
// Found a combination for which MyMethod returns true
}
}
Run Code Online (Sandbox Code Playgroud)
当然,您也可以使用LINQ:
var result = from b1 in new[] { false, true }
from b2 in new[] { false, true }
from b3 in new[] { false, true }
from b4 in new[] { false, true }
...
where MyMethod(b1, b2, b3, b4, ...)
select new { b1, b2, b3, b4, ... };
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3588 次 |
| 最近记录: |