Den første programkoden min var sletta på trinket.io/python 3 , så eg måtte skrive inn alle kommandoane på nytt.
I realiteten trengde eg berre å endre på to - tre instuksjonar for å få med primtal som inneheld sifferet 1.
Her er i alle fall den oppdaterte lista:
Eksempel: Input N = 20 returnerer denne talrekkja: 11 - 19 - 29 - 41 - 61 - 89 - 101 - 109 - 149 - 181 - 191 - 199 - 211 - 229 - 241 - 269 - 281 - 401 - 409 - 419 ( sum = 3640 )
Programmering - maraton
Moderatorer: Aleks855, Gustav, Nebuchadnezzar, Janhaa, DennisChristensen, Emilga
-
- Weierstrass
- Innlegg: 495
- Registrert: 26/02-2021 21:28
Takk for tilbakemelding. Ei heilt kurant sak å legge inn a[ 1 ] = 2. Vil gjerne legge ved heile programmet, men har problem med å kopiere "dokumentet" inn i
Mat.net . Eg har utklippsverktøy på PC-en. Kunne nokon der ute gjere vel å forklare/instruere framgangsmåten ?
Mat.net . Eg har utklippsverktøy på PC-en. Kunne nokon der ute gjere vel å forklare/instruere framgangsmåten ?
Når du har skrevet ferdig programmet kan du markere all koden, kopiere den, og komme hit.
Trykk på knappen som ser slik ut over tekstfeltet:

Den åpner kode-tags. Lim inn koden mellom der, så ser den og den bevarer blant annet indentering (som er veldig viktig når vi formidler Python).
Trykk på knappen som ser slik ut over tekstfeltet:

Den åpner kode-tags. Lim inn koden mellom der, så ser den
Kode: Velg alt
slik ut
-
- Weierstrass
- Innlegg: 495
- Registrert: 26/02-2021 21:28
Greier ikkje å finne knappen( </> ) du refererer til.
Aleks: Kan du gjere vel å vise prosedyren med eit konkret eksempel ( sjå nedanfor )
sum = 0
for i in range(1 , 11 ):
sum = sum + i
print(" Summen av alle heiltal f.o.m. 1 t.o.m. 10 = " , sum )
Aleks: Kan du gjere vel å vise prosedyren med eit konkret eksempel ( sjå nedanfor )
sum = 0
for i in range(1 , 11 ):
sum = sum + i
print(" Summen av alle heiltal f.o.m. 1 t.o.m. 10 = " , sum )
-
- Weierstrass
- Innlegg: 495
- Registrert: 26/02-2021 21:28
Takk Aleks ! Greidde å "knekke koden" utan fleire instruksar. Eigentleg svært enkelt.
Kode: Velg alt
sum = 0
for i in range(1 , 11):
i = i + 1
sum = sum + i
print(" Summen av alle heiltal f.o.m. 1 t.o.m.10 = ", sum)
-
- Weierstrass
- Innlegg: 495
- Registrert: 26/02-2021 21:28
Kode: Velg alt
# Primtal utan odde primtalsiffer ( 3 , 5 og 7)
from pylab import *
liste = [ 3 , 5 , 7]
N = int(input(" Oppgi eit heiltal > 1: "))
a = zeros(100)
nummer = 2 ; ptal = 11 ; sum = 13 ; a[1] = 2; a[2] = 11
#
# Modul 1 : Plukkar ut neste primtal
#
while nummer < N:
ptal = ptal + 2
treff = True
faktor = 3
while (faktor < ptal/2) and (treff == True):
if ( ptal/faktor) == floor(ptal/faktor):
treff = False
else:
faktor = faktor + 2
#
# Modul 2: Testar om neste primtal inneheld primtalsiffer
#
if treff == True:
i = 0; m = floor(log10(ptal)); test = True
while (i <= m) and (test == True):
rest = floor(ptal/10**i)
siffer = rest - floor(rest/10)*10
if siffer in liste:
test = False
else:
i = i + 1
#
# Modul 3: Legg inn neste primtal i tabell og oppdaterer sum
#
if test == True:
nummer = nummer + 1
a[nummer] = ptal
sum = sum + ptal
#
# Modul 4: Presenterer utdata
#
for i in range(1 , N + 1):
print(round(a[i]))
print(" Summen av dei ", N , " første primtala, utan odde primtalsiffer, = ", sum)
-
- Weierstrass
- Innlegg: 495
- Registrert: 26/02-2021 21:28
Kode: Velg alt
# Primtal utan odde primsiffer
#
from pylab import *
liste = [3 , 5 , 7]
a = zeros(100)
a[1] = 2; a[2] = 11; sum = 13 ; ptal = 11; nummer = 2
#
N = int(input("Tast inn eit heiltal > 1 :"))
#
# Søkjer neste primtal( ptal )
while ( nummer < N):
ptal = ptal + 2
treff = True
faktor = 3
while (treff == True) and ( faktor < ptal/2):
if (ptal/faktor) == floor(ptal/faktor):
treff = False
else:
faktor = faktor + 2
#
# Undersøk om funne primtal inneheld odde primsiffer
#
if treff == True:
i = 0; m = floor(log10(ptal))
while ( treff == True) and ( i <= m):
rest = floor(ptal/10**i)
siffer = rest - floor(rest/10)*10
if siffer in liste:
treff = False
else:
i = i + 1
#
# Legg inn gyldig primtal(ptal) i tabell og oppdaterer sum
#
if treff == True:
nummer = nummer + 1
a[nummer] = ptal
sum = sum + ptal
#
# Presenterer utdata
#
for i in range(1 ,N + 1):
print(round(a[i]))
print(" Summen av dei ", N ," første primtala, utan odde primsiffer, =", sum)
Enig. Har noen en oppfølger?Aleks855 skrev: ↑31/07-2022 20:24 Hva er outputen?
Jeg tror maratonet fungerer best dersom spørsmålene har et entydig svar (f. eks. et tall, eller ja/nei), og at den som avgir et svar oppgir svaret, og har med koden ved siden av.
På den måten slipper andre å kjøre koden selv for å verifisere at den gir riktig svar.
Jeg synes denne er fin, men litt vanskeligere enn de foregående.
I den ene hånden har du ni pyramideformede terninger med fire sider.
I den andre hånden har du seks vanlige terninger med seks sider.
Du kaster begge terninggruppene.
Hva er sannsynligheten for at pyramidene får høyere totalsum enn kubene?
Oppgi svaret på desimalform avrundet til 7 siffer etter desimaltegnet. Eks: $0.1234567$.
I den ene hånden har du ni pyramideformede terninger med fire sider.
I den andre hånden har du seks vanlige terninger med seks sider.
Du kaster begge terninggruppene.
Hva er sannsynligheten for at pyramidene får høyere totalsum enn kubene?
Oppgi svaret på desimalform avrundet til 7 siffer etter desimaltegnet. Eks: $0.1234567$.
Jeg får 0.5731441. Stemmer dette?
Kode: Velg alt
import operator as op
import math
from functools import reduce
def ncr(n, r): # binomialkoeffisienten
r = min(r, n-r)
numer = reduce(op.mul, range(n, n-r, -1), 1)
denom = reduce(op.mul, range(1, r+1), 1)
return numer / denom
def nuofways(p,n,k): #ways to obtain p from n dice each with k sides
t=0
for j in range(0,int(math.floor((p-n)/k))+1): t+=((-1)**j)*ncr(n,j)*ncr(p-k*j-1,n-1)
return t
s=0
for n in range(9,37):
for m in range(6,37):
if n>m: s += nuofways(n,9,4)*nuofways(m,6,6)
print s / (4.**9*6**6)
Er ingen programmerer, så koden min er nok langt ifra noe prakteksemplar (i tillegg svært rusten i programmering). Kan sikkert gjøres bedre av noen proffe. Hadde vært interessant å sett koden til Aleks, som faktisk er utdannet innen data (right?).
PS: Har du forresten drevet noe med Project Euler, Aleks?
Ja, oppgaven der er faktisk fra Project Euler. Spesifikt problem nummer 205.
Jeg syntes den oppgaven var ekstra fin fordi den krevde litt problemløsing på papir før man begynner å kode (i alle fall for min egen del).
Jeg syntes den oppgaven var ekstra fin fordi den krevde litt problemløsing på papir før man begynner å kode (i alle fall for min egen del).
Jeg er usikker på om koden fins enda. Jeg var veldig ivrig på Euler da jeg først begynte å studere som dataingeniør, så koden var neppe god eller ryddig.Hadde vært interessant å sett koden til Aleks, som faktisk er utdannet innen data (right?).