Inhaltsverzeichnis
Problemstellung
Methode 1
Beispiel
Ausgabe
Methode 2: Optimierungsmethode
Fazit
Heim Backend-Entwicklung C++ Drücken Sie die Fakultät n als Summe aufeinanderfolgender Zahlen aus

Drücken Sie die Fakultät n als Summe aufeinanderfolgender Zahlen aus

Sep 07, 2023 pm 02:29 PM
连续数字 求和 Faktorielle Darstellung

Drücken Sie die Fakultät n als Summe aufeinanderfolgender Zahlen aus

Wir werden zwei Methoden besprechen, um herauszufinden, wie man die Fakultät einer Zahl als Summe aufeinanderfolgender Zahlen ausdrücken kann. Die erste Methode ist die direkte und einfache Methode, während wir bei der anderen Methode das Konzept der arithmetischen Progression verwenden, um sie hinsichtlich des Zeit- und Raumbedarfs weniger komplex zu machen.

Problemstellung

Bei einer gegebenen Zahl müssen wir einen Weg finden, die Fakultät der Zahl als Summe aufeinanderfolgender natürlicher Zahlen auszudrücken.

Hierbei handelt es sich um zwei unterschiedliche Funktionen –

  • Finden Sie die Fakultät einer Zahl.

  • Finden Sie die Anzahl der Möglichkeiten, wie eine Zahl als Summe aufeinanderfolgender natürlicher Zahlen ausgedrückt werden kann.

Beispiel 1

Given : Number = 3
Result: 1
Nach dem Login kopieren

Wir alle wissen, dass die Fakultät von 3 6 ist, was als 1+2+3 geschrieben werden kann, daher lautet unsere Antwort: 1-Weg.

Beispiel 2

Given: Number = 4
Result: 1
Nach dem Login kopieren

Wir alle wissen, dass die Fakultät von 4 24 ist, was als 7+8+9 geschrieben werden kann, daher lautet unsere Antwort: 1-Weg.

Methode 1

Dies ist eine einfache Methode, bei der wir zunächst die Fakultät einer Zahl ermitteln und dann die Anzahl der Möglichkeiten berechnen, wie sie als Summe aufeinanderfolgender natürlicher Zahlen ausgedrückt werden kann. Die Methode besteht darin, die Fakultät als eine Reihe der arithmetischen Länge len+1 als -

auszudrücken
Factorial of Number = p + (p+1) + (p+2) + … + (p+len) 
So, p = (Number- len*(len+1)/2)/(len+1) 
We will check for the values of len from 1 to len*(len+1)/2<Number
Nach dem Login kopieren

Wenn wir len als positive ganze Zahl erhalten, betrachten wir es als Lösung.

Beispiel

Im folgenden Beispiel versuchen wir herauszufinden, wie viele Möglichkeiten es gibt, die Fakultät einer Zahl als Summe aufeinanderfolgender Zahlen auszudrücken.

#include <bits/stdc++.h>
using namespace std;

// code for obtaining number of possible solutions
long int Number_of_solutions(long int NUMBER){
   long int counter = 0;
   for (long int len = 1; len * (len + 1) < 2 * NUMBER; len++) {
      double p = (1.0 * NUMBER - (len * (len + 1)) / 2) / (len + 1);
      if (p - (int)p == 0.0)
      counter++;
   }
   return counter;
}

// main program goes here
int main(){
   long int NUMBER = 15;
   cout << "Number of ways to write 15 as a sum of consecutive numbers: ";
   cout << Number_of_solutions(NUMBER) << endl;
   NUMBER = 10;
   cout << "Number of ways to write 10 as a sum of consecutive numbers: ";
   cout << Number_of_solutions(NUMBER) << endl;
   return 0;
}
Nach dem Login kopieren

Ausgabe

Wenn Sie das obige C++-Programm ausführen, wird die folgende Ausgabe erzeugt:

Number of ways to write 15 as a sum of consecutive numbers: 3 
Number of ways to write 10 as a sum of consecutive numbers: 1
Nach dem Login kopieren

Methode 2: Optimierungsmethode

Dies ist ein besserer Ansatz; der oben gesehene Ansatz führt zu einem Überlauf.

Die Summe von len aufeinanderfolgenden Zahlen beginnend mit der Zahl p kann als -

geschrieben werden
sum = (p+1) + (p+2) + (p+3) … + (p+len) 
Hence, sum = (len*(len + 2*p + 1))/2
Nach dem Login kopieren

Weil Summe auch gleich Zahl ist!.

Wir können schreiben

2*Number! = (len*(len + 2*p + 1))
Nach dem Login kopieren

Anstatt alle (len, p)-Paare zu zählen, zählen wir hier alle (len, (len + 2*p + 1))-Paare. Das bedeutet, dass wir alle geordneten pf (A, B) berechnen, wobei AB=2*Zahl! Und A< B 且 A 和 B 的奇偶性不同,这意味着如果 len 是奇数,则 (len + 2*p + 1) 是偶数,如果 len 是偶数,则 (len + 2*p + 1) 是奇数。

Das heißt, wir suchen nach ungeraden Teilern von 2*Zahl! Dies ist auch der ungerade Teiler von Number!

Berechnen Sie die Anzahl der Teiler! , wir müssen die Potenzen der Primzahlen bei der Faktorisierung berechnen, die Anzahl der Teiler ist (f1 + 1)*(f2 + 1)* … *(fn + 1).

Wir werden die Formel von Legendre verwenden, um die höchste Potenz einer Primzahl in der Fakultät einer Zahl zu berechnen.

Beispiel

Der Code für diesen Ansatz ist unten angegeben -

#include <bits/stdc++.h>
using namespace std;
#define maximum 5002
vector<int> v;
void sieve(){
   bool Is_the_number_prime[maximum];
   memset (Is_the_number_prime, true, sizeof(Is_the_number_prime) );
   for (int prime = 2; prime * prime < maximum; prime++) {
      if (Is_the_number_prime[prime] == true) {
         for (int iterator = prime * 2; iterator < maximum; iterator += prime)
         Is_the_number_prime[iterator] = false;
      }
   }
   for (int prime = 2; prime < maximum; prime++)
   if (Is_the_number_prime[prime])
   v.push_back(prime);
}
long long int calculate_largest_power(long long int a, long long int b){
   long long int c = 0;
   long long int x = b;
   while (a >= x) {
      c += (a / x);
      x *= b;
   }
   return c;
}
long long int modular_mult(long long int a,
long long int b,
long long int m){
   long long int result = 0;
   a = a % m;
   while (b > 0) {
      if (b % 2 == 1)
      result = (result + a) % m;
      a = (a * 2) % m;
      b /= 2;
   }
   return result % m;
}
long long int no_of_ways(long long int n,
long long int m){
   long long int answer = 1;
   for (int iterator = 1; iterator < v.size(); iterator++) {
      long long int powers = calculate_largest_power(n, v[iterator]);
      if (powers == 0)
      break;
      answer = modular_mult(answer, powers + 1, m)%m;
   }
   if (((answer - 1) % m) < 0)
   return (answer - 1 + m) ;
   else
   return (answer - 1) ;
}
int main(){
   sieve();
   long long int n = 4, m = 7;
   cout << "Number of solutions after performing modulo with 7 is " <<no_of_ways(n, m);
   return 0;
}
Nach dem Login kopieren

Ausgabe

Wenn das obige C++-Programm ausgeführt wird, erzeugt es die folgende Ausgabe:

Number of solutions after performing modulo with 7 is 1.
Nach dem Login kopieren

Fazit

In diesem Artikel haben wir zwei verschiedene Möglichkeiten besprochen, die Fakultät einer Zahl als Summe aufeinanderfolgender natürlicher Zahlen herauszufinden.

Das obige ist der detaillierte Inhalt vonDrücken Sie die Fakultät n als Summe aufeinanderfolgender Zahlen aus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Absolute Tupelsumme in Python Absolute Tupelsumme in Python Sep 12, 2023 pm 07:37 PM

In Python sind Tupel unveränderliche Sequenzen, die mehrere Elemente unterschiedlichen Typs speichern können. Sie werden häufig verwendet, um Sammlungen verwandter Werte darzustellen. Bei der Tupelsummierung werden die entsprechenden Elemente von zwei oder mehr Tupeln addiert, um ein neues Tupel zu erzeugen. In einigen Szenarien kann es jedoch erforderlich sein, die absolute Summe der Elemente anstelle der herkömmlichen Summe zu berechnen. In diesem Blogbeitrag werden wir untersuchen, wie man in Python absolute Tupelsummen berechnet. Traditionelle Tupelsumme Bevor wir uns mit der absoluten Tupelsumme befassen, wollen wir zunächst verstehen, wie man eine traditionelle Tupelsumme berechnet. Bei zwei Tupeln gleicher Länge können wir eine einfache Python-Schleife oder ein Listenverständnis verwenden, um die Summe der entsprechenden Elemente −deftuple_sum(t1,t2) zu berechnen:

Wissen Sie, wie man eine Word-Tabelle zusammenfasst? Wissen Sie, wie man eine Word-Tabelle zusammenfasst? Mar 21, 2024 pm 01:10 PM

Manchmal stoßen wir auf Zählprobleme in Word-Tabellen. Wenn solche Probleme auftreten, kopieren die meisten Schüler die Word-Tabelle zur Berechnung in die Hand. Gibt es eine schnelle Möglichkeit, es zu berechnen? Natürlich gibt es das, tatsächlich lässt sich die Summe auch in Word berechnen. Wissen Sie also, wie es geht? Lasst uns heute gemeinsam einen Blick darauf werfen! Freunde in Not sollten es kurzerhand schnell abholen! Schrittdetails: 1. Zuerst öffnen wir die Word-Software auf dem Computer und öffnen das zu bearbeitende Dokument. (Wie im Bild gezeigt) 2. Als nächstes positionieren wir den Cursor auf der Zelle, in der sich der summierte Wert befindet (wie im Bild gezeigt), und klicken dann auf [Menüleiste

Ermitteln Sie die Summe einer arithmetischen Folge versetzter Vorzeichen Ermitteln Sie die Summe einer arithmetischen Folge versetzter Vorzeichen Sep 16, 2023 pm 05:01 PM

Eine arithmetische Folge (AP) ist eine Zahlenfolge, bei der die Differenz zwischen zwei aufeinanderfolgenden Termen gleich ist. Die Differenz wird berechnet, indem der zweite Term vom ersten Term subtrahiert wird. Lassen Sie uns AP anhand einer Beispielsequenz verstehen: 5,7,9,11,13,15,... Die Toleranz (d) dieser arithmetischen Reihe beträgt 2. Dies bedeutet, dass sich jedes nachfolgende Element um 2 vom vorherigen Element unterscheidet. Der erste Punkt (a) in dieser Reihenfolge ist 5. Die allgemeine Formel zum Ermitteln des n-ten Termes lautet a{n}=a+(n-1)(d). In diesem Problem wird uns ein AP gegeben und wir müssen die Summe einer Reihe alternierender vorzeichenbehafteter Quadrate ermitteln, die Reihe wird sein Wie unten gezeigt, a12-a22+a32-a42+a52+... Nehmen wir zum besseren Verständnis ein Beispiel.

Finden Sie die Summe der Elemente in einem Array mit der Funktion array_sum() in PHP Finden Sie die Summe der Elemente in einem Array mit der Funktion array_sum() in PHP Nov 18, 2023 am 11:20 AM

Titel: Ermitteln Sie die Summe von Array-Elementen mithilfe der Funktion array_sum() in PHP. PHP ist eine weit verbreitete serverseitige Skriptsprache. Sie bietet zahlreiche integrierte Funktionen, die den Entwicklungsprozess vereinfachen und die Effizienz verbessern können. Unter diesen ist die Funktion array_sum() eine sehr praktische Funktion, mit der die Summe der Elemente in einem Array berechnet werden kann. In diesem Artikel erfahren Sie, wie Sie die Funktion array_sum() verwenden und geben konkrete Codebeispiele. Zuerst müssen wir die Verwendung der Funktion array_sum() verstehen

So summieren Sie Summen automatisch in Excel So summieren Sie Summen automatisch in Excel Mar 20, 2024 pm 12:20 PM

Für Benutzer, die häufig Excel-Tabellen verwenden, ist die automatische Summenfunktion ein sehr einfacher Vorgang und kann je nach Bedarf automatisch auf mehrere Dezimalstellen summiert werden, was viel praktischer ist als das manuelle Drücken des Taschenrechners. Für unerfahrene Benutzer müssen Sie lernen, wie man Summen in Excel von Grund auf automatisch summiert. Schauen wir uns die Schritte an: Automatische Summierung in Excel: Zuerst müssen wir die Zahlen in den Zellen A1 und B1 addieren und die Ergebnisse in der Zelle anzeigen C1. Geben Sie dazu zunächst die Zahlen, die Sie hinzufügen möchten, in die Zellen A1 und B1 ein. Wählen Sie als Nächstes Zelle C1 aus und geben Sie die folgende Formel ein: „=A1+B1“. Nach Drücken der Eingabetaste zeigt Zelle C1 die Summe der Zahlen in den Zellen A1 und B1 an.

Wie verwende ich die Array-Funktion der Go-Sprache, um das Ergebnis zu summieren und zurückzugeben? Wie verwende ich die Array-Funktion der Go-Sprache, um das Ergebnis zu summieren und zurückzugeben? Jul 31, 2023 pm 02:25 PM

Wie verwende ich die Array-Funktion der Go-Sprache, um das Ergebnis zu summieren und zurückzugeben? Die Go-Sprache bietet eine Fülle von Array-Operationsfunktionen, einschließlich Funktionen zum Ermitteln der Summe von Array-Elementen. Mit diesen Funktionen können Sie bequem Summenoperationen für Arrays durchführen und die Ergebnisse zurückgeben. In diesem Artikel wird anhand von Codebeispielen erläutert, wie Sie die Array-Funktion der Go-Sprache verwenden, um das Ergebnis zu summieren und zurückzugeben. Werfen wir zunächst einen Blick auf Arrays in der Go-Sprache. Ein Array ist eine Datenstruktur, die eine Folge von Elementen fester Größe speichert. In der Go-Sprache sind die Länge des Arrays sowie der Typ und das Element des Arrays festgelegt

So verwenden Sie die Excel-Summenformel – Tutorial zur Verwendung der Excel-Summenformel So verwenden Sie die Excel-Summenformel – Tutorial zur Verwendung der Excel-Summenformel Mar 05, 2024 pm 12:40 PM

Viele Freunde wissen immer noch nicht, wie man die Summationsformel in Excel verwendet, daher erklärt der Herausgeber unten das Tutorial zur Verwendung der Summationsformel in Excel. Wenn Sie es brauchen, schauen Sie sich es bitte an alle. Schritt 1: Zuerst öffnen wir Excel (wie im Bild gezeigt). Schritt 2: Rufen Sie die Excel-Arbeitsoberfläche auf (wie im Bild gezeigt). Schritt 3: Anschließend öffnen wir das zu bearbeitende Dokument. Hier ist ein Beispieldokument (wie im Bild dargestellt). Schritt 4: Wählen Sie „Gesamtpunktzahl“ und geben Sie „=C2+D2+E2“ in das FX-Funktionsfeld ein. Drücken Sie dann die Eingabetaste. Die Gesamtpunktzahl ergibt sich (wie im Bild dargestellt). Schritt 5: Klicken Sie auf das Dropdown-Menü des Füllfelds. Tragen Sie die Gesamtpunktzahl ein (wie in der Abbildung gezeigt). Schritt 6: Füllen Sie das Dropdown-Menü aus (wie im Bild gezeigt). Schritt 7:

Java-Programm zum Drucken der Summe von Zahlen Java-Programm zum Drucken der Summe von Zahlen Aug 20, 2023 am 09:49 AM

Es gibt verschiedene Möglichkeiten, die Zahlen in Java hinzuzufügen. Die hinzuzufügenden Zahlen können zur Laufzeit eingegeben oder direkt im Programm eingegeben werden. Allerdings ist es schwierig, Zahlen auf diese Weise hinzuzufügen, wenn die Liste der Zahlen zu groß ist. Manchmal werden die hinzuzufügenden Daten in einer Excel-Tabelle/g angegeben

See all articles