本文整理汇总了C++中Connections::numSegments方法的典型用法代码示例。如果您正苦于以下问题:C++ Connections::numSegments方法的具体用法?C++ Connections::numSegments怎么用?C++ Connections::numSegments使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Connections
的用法示例。
在下文中一共展示了Connections::numSegments方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: getLeastUsedCell
static CellIdx getLeastUsedCell(
Random& rng,
UInt column,
const Connections& connections,
UInt cellsPerColumn)
{
const CellIdx start = column * cellsPerColumn;
const CellIdx end = start + cellsPerColumn;
UInt32 minNumSegments = UINT_MAX;
UInt32 numTiedCells = 0;
for (CellIdx cell = start; cell < end; cell++)
{
const UInt32 numSegments = connections.numSegments(cell);
if (numSegments < minNumSegments)
{
minNumSegments = numSegments;
numTiedCells = 1;
}
else if (numSegments == minNumSegments)
{
numTiedCells++;
}
}
const UInt32 tieWinnerIndex = rng.getUInt32(numTiedCells);
UInt32 tieIndex = 0;
for (CellIdx cell = start; cell < end; cell++)
{
if (connections.numSegments(cell) == minNumSegments)
{
if (tieIndex == tieWinnerIndex)
{
return cell;
}
else
{
tieIndex++;
}
}
}
NTA_THROW << "getLeastUsedCell failed to find a cell";
}