Fast Power

2024-09-04 15:08
文章标签 fast power

本文主要是介绍Fast Power,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Calculate the an % b where a, b and n are all 32bit non-negative integers.

Example

For 231 % 3 = 2

For 1001000 % 1000 = 0

Challenge

O(logn)

思想:recursion算一半,然后base case,处理算完一半以后的情况;

公式就是 (a*b) % p = (a%p * b%p) % p;

a^n % b = (a ^ n/2 % b * a ^ n/2 % b ) % b;

如果n为奇数,还要再加一个 (a%b *(a ^ n/2 % b * a ^ n/2 % b ) )% b;

public class Solution {/*** @param a: A 32bit integer* @param b: A 32bit integer* @param n: A 32bit integer* @return: An integer*/public int fastPower(int a, int b, int n) {if(a == 1 || n == 0) return 1 % b;if(n == 1) return a % b;long halfpower = fastPower(a, b, n/2) % b;halfpower = ((halfpower % b) * (halfpower % b)) % b;if(n % 2 == 0) {return  (int)halfpower;} else {return (int)(((a % b) * halfpower) % b);}}
}

 

这篇关于Fast Power的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1136307

相关文章

Spark MLlib模型训练—聚类算法 PIC(Power Iteration Clustering)

Spark MLlib模型训练—聚类算法 PIC(Power Iteration Clustering) Power Iteration Clustering (PIC) 是一种基于图的聚类算法,用于在大规模数据集上进行高效的社区检测。PIC 算法的核心思想是通过迭代图的幂运算来发现数据中的潜在簇。该算法适用于处理大规模图数据,特别是在社交网络分析、推荐系统和生物信息学等领域具有广泛应用。Spa

Keysight U8031A DC power supply

Keysight U8031A DC power supply 文章目录 Keysight U8031A DC power supply前言电容充电⽰意图一、恒定电压操作二、恒定电流操作三、5v操作四、跟踪模式操作五、存储器操作六、对过电压保护编程七、对过电流保护编程八、锁键操作 前言 U8031A Power Supply 是一款具备前面板编程能力的三路输出电源。通过使

每天一道面试题(2):fail-safe 机制与 fail-fast 机制分别有什么作用?

当谈论Java集合的 fail-fast 和 fail-safe 机制时,涉及的是在集合被并发修改时的行为和处理方式。这些机制对保证程序的正确性和稳定性非常重要,尤其是在多线程环境中。 1. Fail-Fast 机制 定义: Fail-fast 机制的核心是在检测到集合在遍历过程中被修改时,立即抛出 ConcurrentModificationException 异常,从而中断迭代操作。这种

PrimeTime low power-SMVA分析(4)

1.6使用示例 以下使用示例展示了SMVA流程: - 所有电压条件下的SMVA分析 - 特定DVFS约束下的SMVA分析 在以下脚本示例中,红色突出显示的文本显示了在SMVA流程中使用的命令、命令选项和变量。这些功能只有在将timing_enable_cross_voltage_domain_analysis变量设置为true时才能使用。 1.6.1所有电压条件下的SMVA分析 要对多

PrimeTime low power-SMVA分析(2)

1.4 DVFS 场景 对于使用动态电压和频率缩放(DVFS)的设计,可以使用 DVFS 场景来同时分析设计在所有 DVFS 条件下的性能。有关详细信息,请参见以下主题: - DVFS 场景概念 - 查询 DVFS 场景 - 将 DVFS 场景应用于命令和属性 - 与 DVFS 相关的对象属性 注意: DVFS 场景是在 SMVA 分析中使用的电压/频率场景。它们与分布式多场

【Power Compiler手册】9.时钟门控(4修改时钟门控结构)

修改时钟门控结构 在执行 RTL 时钟门控时,可以指定 `set_clock_gating_style -max_fanout` 命令来限制由单个时钟门控元素门控的寄存器数量。结果可能是具有相同使能信号的多个时钟门控元素,并且在逻辑上,具有相同的门控时钟信号。所有具有相同使能信号的时钟门控单元属于同一个时钟门控组。由单个时钟门控元素门控的所有寄存器属于同一个时钟门控子组。 由 `compi

幂等运算power

分治思想   public static double power(double base, int exponent) {if ((equalToZero(base)) && (exponent <= 0)) {throw new IllegalArgumentException();}int positiveExponent = (exponent > 0 ? exponent : -ex

UVa 11992 Fast Matrix Operations 线段树

UVa 11992 Fast Matrix Operations 题目大意:有一个r行c列的全0矩阵,支持三种操作: 1 x1 y1 x2 y2 v 子矩阵(x1,y1,x2,y2)的所有元素增加v(v > 0)。 2 x1 y1 x2 y2 v 子矩阵(x1,y1,x2,y2)的所有元素设为v(v > 0)。 3 x1 y1 x2 y2    查询子矩阵(x1,y1,x2,y2

【HDU】4965 Fast Matrix Calculation 矩阵快速幂

传送门:【HDU】4965 Fast Matrix Calculation 题目分析:因为比赛的时候写的太匆忙。。写的不堪入目,所以赛后重写了一次,顺便就贴一下了。 因为A*B=C,所以C^(N*N-1) = A*B*A*B*A*...*B*A*B,因为满足结合律所以变成A*( (B*A)^(N*N-2) )*B,因为中间得到的矩阵最大不超过K(K<=6),所以可以对中间的矩阵快速幂,然

Fast Image Cache

https://github.com/path/FastImageCache   Fast Image Cache is an efficient, persistent, and—above all—fast way to store and retrieve images in your iOS application. Part of any good iOS applica