Jag ska beräkna en summa på ett effektivt sätt
Här är min kod för att beräkna en viss summan s med hjälp av en snurra. Summan går att beräkna effektivare med ett enda kommando, utan snurran. :
import numpy as np
s=0
for k in [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57]:
s=s+np.cos(k);
np.sum(np.cos(np.arange(5,57, 52)))
=0.2836
som jag tolkar det som så kan jag beräkna summan med enbart mitt sista kommando. Vilket gav samma output=0.2836
Är det rätt kommando för att beräkna den summan?
Men tredje argumentet till arange är väl ändå steget - din lösning har i så fall räknat cos(5) + cos(57)
Beundransvärt illvilligt val av range i så fall när resultatet blir samma
Eller ska man använda linspace istället för arange eller array eller range? Har lite svårt att ta skillnad på dem
DEt här borde jag kanske inte ge mig in i att svara på eftersom jag aldrig skrivit ett pythonprogram.
Men arange borde fungera om du anger step 1 i stället för 52, range borde också gå bramen array vill ha en array som första argument så undvik dete.
det finns inte som alternativ, enligt summan så blir np.sum(np.cos(np.linspace(5,57,53)
lika med 1.8686.
Jag frågade datorn oxå att beräkna summan vilket var samma svar