Come nota David Arenburg, questa è una differenza tra il 3 Versioni R a 2 e 64 bit, almeno su macchine Windows. Presumibilmente, è implicata una sorta di errore di arrotondamento. È interessante notare che la R a 32 bit ottiene la risposta giusta, mentre la R a 64 bit trova troppi numeri univoci.
primo a confermare che 9183
è davvero la risposta corretta, ho usato il pacchetto gmp
(un wrapper per il C multipla precisione aritmetica libreria GMP), che fornisce risultati che non sono soggetti a errori di arrotondamento:
library(gmp)
x <- as.bigz(2:100)
length(unique(do.call(c, sapply(x, function(X) x^X))))
[1] 9183
Ecco i risultati del mio 32 bit R:
length(unique(sort(c(outer(2:100,2:100,"^")))))
# [1] 9183
R.version[1:7] _
# platform i386-w64-mingw32
# arch i386
# os mingw32
# system i386, mingw32
# status
# major 3
# minor 1.2
E qui sono i risultati del mio 64-bit R:
length(unique(sort(c(outer(2:100,2:100,"^")))))
# [1] 9220
R.version[1:7]
# platform x86_64-w64-mingw32
# arch x86_64
# os mingw32
# system x86_64, mingw32
# status
# major 3
# minor 1.2
fonte
2014-12-02 20:44:57
Puoi postare 'sessionInfo()' da entrambi solo per confermare versioni/build? – MrFlick
Penso che sia una differenza tra le versioni a 32 e 64 bit. Stai eseguendo 64 su Rstudio e 32 sul normale R. In Rstudio vai su Strumenti -> Opzioni globali -> Versione R -> Cambia -> cambia in versione 32 bit di 3.1.1 ed esegui di nuovo il codice –
Ottengo 9220 in esecuzione questo in R 3.1.2 (64-bit) nei terminali RStudio e R e 9183 quando lo eseguo a 32-bit ... Confermando il suggerimento di DavidArenburg – andyteucher