Я написал функцию умножения большого числа, и я хочу изменить ее для вычисления мощности больших чисел.Многократное большое число параллельно
ех: (2321313200000888)^25, так что я сделать так:
public string power(string num1, int n)
{
Stopwatch timer = new Stopwatch();
timer.Start();
string answer= num1;
for (int i = 1; i < n; i++)
answer= multiply(num1, answer);
if (this.InvokeRequired)
{
this.richTextBox1.BeginInvoke((MethodInvoker)delegate() { richTextBox1.Text = answer; });
this.label6.BeginInvoke((MethodInvoker)delegate() { label6.Text = answer.Length.ToString(); });
this.label2.BeginInvoke((MethodInvoker)delegate() { label2.Text = timer.Elapsed.ToString(); });
}
return answer;
Я хочу сделать это параллельно, чтобы сократить время, как я могу это сделать? Я попытался сделать задачу, но это то же самое, что и seqential.
Что случилось с [BigNum.pow] (https://msdn.microsoft.com/en-us/library/system.numerics.biginteger.pow(v=vs.110).aspx)? И каков контекст? Вы много вычисляете эти экспонаты? Для какого приложения? – spirulence
Вы не можете вычислить мощность, умножая ее параллельно, так как каждый результат зависит от предыдущего результата. В лучшем случае вы можете рекурсивно вычислять _pairs_ параллельно и продолжать, пока не останется только один номер. –
Строгая арифметика всегда будет медленной ... – leppie