是否存在与pythons itertools.combinations_with_replacement等价的c
本文关键字:replacement with 是否 pythons itertools combinations 存在 | 更新日期: 2023-09-27 17:59:38
我正在寻找滚动5个六面骰子的所有可能方法。我知道在python中,你可以使用itertools来实现这一点,c中有什么可以实现同样的目的吗?
itertools.combinations_with_replacement(iterable, r)
for i in itertools.combinations_with_replacement(range(1, 6), 5)
https://docs.python.org/dev/library/itertools.html#itertools.combinations_with_replacement
范围1,6是骰子上的面数,5是正在掷的骰子数。想要生产出所有7776种你可以掷骰子的方式。例如,初始滚动可能看起来像:
骰子1、骰子2、骰子3、骰子4、骰子5=1,2,3,4,5
这很容易-它基本上是1-65次之间的交叉连接。
var range = Enumerable.Range(1,6);
var result = from d1 in range
from d2 in range
from d3 in range
from d4 in range
from d5 in range
select new { d1,d2,d3,d4,d5 };
现场示例:http://rextester.com/VKA17045
3615建议的实现:
Random root = new Random();
List<int> results = new List<int>()
for (int i = 0; i < 5; i++)
{
results.Add(root.Next(1, 6));
}
//results now contain the 5 dice throws