译自 ROI 2018 Regional. Day2 T4. Обработка больших данных
某实验室正在研发一种能处理大规模数据的新型超级计算机。
这台超算的内存包含  个存储单元,依次编号为  用内存段  表示编号  且  的所有存储单元,该内存段的长度为 
定义:如果内存段  的长度是  的整数次幂(不妨假设是 ),且  是  的整数倍,那么这个内存段是「正确的内存段」。
若  则正确的内存段为               和 
现在,每个存储单元所存储的值均为 0. 你需要给每个存储单元赋值。简单起见,我们用游程编码的形式给出每个单元上的值。开头的  个单元中存储的值为  接下来  个单元中存储的的值为  以此类推,最后的  个单元中存储的值为  
举个例子,如果          那么内存将被赋值为        
你只有一种方法给单元赋值: 该函数表示将内存段  中所有单元全部赋值为  注意, 必须是合法的内存段。
试求至少需要多少次操作才能达成要求。