Könnte mir jemand helfen, ich verstehe nicht, was das Problem hier ist. Ich habe gerade angefangen R zu lernen (vor ein paar Tagen). Hier muss ich eine Funktion konstruieren, die mir alle Marsenne-Primzahlen gibt, nachdem ich Marsenne-Zahlen erstellt habe. Es gibt 3 Funktionen, die ich erstellt habe: 1) factorlist Finden Sie einfach alle Faktoren einer Nummer 2) Marsenne Zahl ist eine Funktion, die Marsenne-Nummern erstellt 3) CheckForMersennePrimes ist eine Funktion, die überprüft, ob fundierte Mersenne-Zahlen Primzahl sind oder nicht. *** Funktion "Primzahlen" gibt alle Primzahl, die im Intervall von 0 bis x"Keine Funktion, um von der obersten Ebene zurück zu springen"
sindDas Problem ist: First 2 Funktionen funktioniert einwandfrei. Aber der dritte funktioniert nicht und gibt folgenden Fehler. Ich kann nicht verstehen, was überhaupt falsch ist. Was ich versucht habe, ist, dass Mersenne-Zahlen nicht alle Primzahlen sind. Ich schaue in den Satz von MersenneNumber und prüfe jedes Element darin, ob es prim ist oder nicht und dann entferne es.
Kann jemand bitte helfen, was falsch zu finden?
Hier sind meine Funktionen:
factorlist<-function(x) {
if (x<2) {return ("Invalid input")}
if (x%%1!=0) {return ("Invalid input")}
if (x==2) {return(2)}
if (x==3) {return(3)}
vec<-0
for(i in 1:x){
if(x%%i==0){
vec[length(vec)]<-i
vec<-c(vec,0)
}
}
vec<-vec[-length(vec)]
vec<-vec[-length(vec)]
return(vec)
}
primes <- function(n){
primesR <- function(p, i = 1){
f <- p %% p[i] == 0 & p != p[i]
if (any(f)){
p <- primesR(p[!f], i+1)
}
p
}
primesR(2:n)
}
MarsenneNumber<-function(x){
vec<-c(0)
for (i in 3:x){
vec<-union(vec, c(2^primes(i)-1))
}
return(vec[-length(1)])
}
CheckForMersennePrimes<-function(x){
b<-length(MarsenneNumber(x)){
for (i in 1:b){
vec<-MarsenneNumber(x){
if (factorlist(vec[i])!=1){
vec<-c(-vec[i])
}
}
}
}
return(vec)
}
Mein Fehler zur letzten Funktion:
Error: unexpected '}' in " }"
> }
Error: unexpected '}' in " }"
> }
Error: unexpected '}' in " }"
> return(vec)
Error: no function to return from, jumping to top level
> }
Error: unexpected '}' in "}"
Hier ist ein Beispiel dafür, wie diese Funktionen arbeiten.
> factorlist(20)
[1] 1 2 4 5 10
> primes(20)
[1] 2 3 5 7 11 13 17 19
> MarsenneNumber(20)
[1] 3 7 31 127 2047 8191 131071 524287
Danke. Aber wird die Funktion meine neue Variable "vec" in der Zeile "if (factorlist (vec [i])! = 1) {" erkennen, da sie beide auf der gleichen "Ebene" im Code sind? Ich dachte, wenn wir eine neue Variable einführen und sie später verwenden wollen, müssen wir {} verwenden. Vielleicht verstehe ich etwas falsch. Auch ich habe immer noch das gleiche Problem .. – ike
Fehler: keine Funktion, von, zurück zur obersten Ebene zu springen >} Fehler: unerwartete '}' in "}" immer noch mit diesem Problem konfrontiert. – ike
Ich habe meine Frage durch Hinzufügen von Beispielen und 'Primes'-Funktion aktualisiert. Ich benutze Basic R Studio, habe nichts daran geändert und habe nichts heruntergeladen. – ike