Jeg er ikke sikker på hvilket felt dette omhandler, så jeg beklager den lite informerende tittelen. Uansett, dette er ingen matematikkoppgave fra en bok, men derimot et praktisk problem jeg gjerne vil løse for å kunne kalkurere dens verdi.
Det starter med 20 sekunder som teller nedover. Hvert fjerde sekund vil det legges til to sekunder. Hvor lang tid tar det før denne 'telleren' når null? Jeg er litt usikker på hvilken fremgangsmetode som vil være optimal å bruke.
All hjelp er satt stor pris på.
Problemstilling
Moderatorer: Aleks855, Gustav, Nebuchadnezzar, Janhaa, DennisChristensen, Emilga
Er det nødvendig for deg å finne en analytisk løsning for det?
Her er et program i python som løser problemet for deg. (Bare bytt ut variabelen tid=20 med den verdien du vil teste).
For tid=20 får jeg 38 som svar.
(Utskrift av sekunder i nedtellingen der det legges til 2 sekunder. Funksjon ikke inkludert i programmet over.)
Edit:
Og da fikk jeg et spørsmål til deg. Den skal kanskje ikke legge til tid når nedtellingen når null, selv om det er på et av de "fjerde sekundene"? Da blir svaret i så fall 36.
Her er et program i python som løser problemet for deg. (Bare bytt ut variabelen tid=20 med den verdien du vil teste).
For tid=20 får jeg 38 som svar.
Kode: Velg alt
tid = 20
legg = 0
teller = 0
while (tid > 0):
teller = teller+1;
legg = legg + 1;
tid = tid-1;
if(legg == 4):
tid = tid+2;
legg = 0;
print(teller);
![Razz :P](./images/smilies/icon_razz.gif)
Kode: Velg alt
16
14
12
10
8
6
4
2
0
Og da fikk jeg et spørsmål til deg. Den skal kanskje ikke legge til tid når nedtellingen når null, selv om det er på et av de "fjerde sekundene"? Da blir svaret i så fall 36.
An ant on the move does more than a dozing ox.
Lao Tzu
Lao Tzu
I tilfelle det riktige svaret skal være 36 og jeg ikke er her, så er dette programkoden for det:
Kode: Velg alt
tid = 20
legg = 0
teller = 0
while (tid > 0):
teller = teller+1;
legg = legg + 1;
tid = tid-1;
if(legg == 4 and tid > 0):
tid = tid+2;
legg = 0;
print(teller);
An ant on the move does more than a dozing ox.
Lao Tzu
Lao Tzu
Det er så klart lett å komme fram til et riktig svar, men det er bare tungvint og tar tid. Derfor lurte jeg på om det var en lett måte å regne det ut på matematisk, men jeg ville skjønt det om det ikke var mulig, ettersom mengden gjenstående sekunder som det legges to sekunder til forandrer seg hele tiden.Markonan skrev:Er det nødvendig for deg å finne en analytisk løsning for det?
Jeg er ikke familiær med Python, men ettersom programmeringsspråk har så mange likhetstrekk seg imellom, skjønner jeg hva som skjer.Her er et program i python som løser problemet for deg. (Bare bytt ut variabelen tid=20 med den verdien du vil teste).
For tid=20 får jeg 38 som svar.
Kode: Velg alt
tid = 20 legg = 0 teller = 0 while (tid > 0): teller = teller+1; legg = legg + 1; tid = tid-1; if(legg == 4): tid = tid+2; legg = 0; print(teller);
Når telleren er 0 så skal det ikke legges til 2, nei, så 36 er riktig. Det var det jeg også kom fram til gjennom den tungvinte metoden.Edit:
Og da fikk jeg et spørsmål til deg. Den skal kanskje ikke legge til tid når nedtellingen når null, selv om det er på et av de "fjerde sekundene"? Da blir svaret i så fall 36.
Hvilket program bruker du for å utføre kodesekvensen? Jeg kan eventuelt transkribere koden til Flash og utføre det der.
Jeg kjører linux så jeg kan kompilere og kjøre filen med en kommando.
For actionscript blir det noe sånt:
Tror det skal funke direkte.
For actionscript blir det noe sånt:
Kode: Velg alt
var tid = 20;
var legg = 0;
var teller = 0;
while (tid > 0) {
teller = teller+1;
legg = legg+1;
tid = tid-1;
if(legg == 4 && tid > 0) {
tid = tid+2;
legg = 0;
}
}
trace(teller);
An ant on the move does more than a dozing ox.
Lao Tzu
Lao Tzu
Da slapp jeg å transkibere det selv også. Og det fungerte som en drøm. Tusen takk!
Hvordan fikk du til å skrive ut sekunder i nedtellingen der det legges til to sekunder? Jeg kan fjerne 'trace (teller)' og legge inn 'trace (tid)' i if-en, men da regner den med 18 også av en eller annen grunn.
Hvordan fikk du til å skrive ut sekunder i nedtellingen der det legges til to sekunder? Jeg kan fjerne 'trace (teller)' og legge inn 'trace (tid)' i if-en, men da regner den med 18 også av en eller annen grunn.
Kode: Velg alt
18
16
14
12
10
8
6
4
-
- von Neumann
- Innlegg: 525
- Registrert: 03/10-2010 00:32
Det tar ikke 36 sekunder, det tar 71 sekunder!
20
19
18
17
+2
19
18
17
16
+2
18
17
16
15
+2
17
16
15
14
+2
16
15
14
13
+2
15
14
13
12
+2
14
13
12
11
+2
13
12
11
10
+2
12
11
10
09
+2
11
10
09
08
+2
10
09
08
07
+2
09
08
07
06
+2
08
07
06
05
+2
07
06
05
04
+2
06
05
04
03
+2
05
04
03
02
+2
04
03
02
01
+2
03
02
01
00
Der 20 er den 1.sekund og 01 den 71.sekund.Total 71 sekunder.
20
19
18
17
+2
19
18
17
16
+2
18
17
16
15
+2
17
16
15
14
+2
16
15
14
13
+2
15
14
13
12
+2
14
13
12
11
+2
13
12
11
10
+2
12
11
10
09
+2
11
10
09
08
+2
10
09
08
07
+2
09
08
07
06
+2
08
07
06
05
+2
07
06
05
04
+2
06
05
04
03
+2
05
04
03
02
+2
04
03
02
01
+2
03
02
01
00
Der 20 er den 1.sekund og 01 den 71.sekund.Total 71 sekunder.