Side 2 af 2

: 17 jul 2008, 09:25
af FrZ
Den lidt hurtigere og kortere version:

Kode: Vælg alt

Sub dag_short()
Dim i As Long
Dim AntalS As Long
Dim AntalSS As Long
    
    For i = 1 To 36525
        If DatePart("w", CDate(366 + i), vbMonday) = 7 Then
            AntalS = AntalS + 1
        End If
        If DatePart("w", CDate(366 + i), vbMonday) = 7 And Format(CDate(366 + i), "d") = 1 Then
            AntalSS = AntalSS + 1
        End If
    Next i

    MsgBox "Der er " & AntalS & " søndage i det 19. århundrede" & Chr(13) & "Der er " & AntalSS & " søndage på den 1. i måned i det 19. århundrede"

End Sub
Til dem som morer sig med den slags :P

: 17 jul 2008, 09:44
af odder
FrZ skrev:Det msgbox'en siger, er at der er 5218 søndage i perioden, hvoraf 171 ligger den 1. i en måned :)
Min første hovedregning gav rent faktisk 1.7 søndage :) Ærgerligt, at jeg ikke skrev dem ned egentligt :?

: 17 jul 2008, 16:45
af wanze
Ah, jeg synes VB gør rimelig meget af tænkningen for dig, men det er jo korrekt. ;-)

Vi er nok lidt off-topic, men vil du have flere? :-D

n defineres som:
n -> n/2 (hvis n er lige)
n -> 3n + 1 (hvis n er ulige)

Som eksempel, hvis man starter med 3, vil man få rækken:
13 -> 40 -> 20 -> 10 -> 5 -> 16 -> 8 -> 4 -> 2 -> 1

Hvilket begyndelsesnummer under én million producerer den længste kæde? (Kæderne vil altid slutte med én).

Du kan eventuelt gå ind på Project Euler for mere dejlig matematik!

: 17 jul 2008, 18:21
af FrZ
wanze skrev:Ah, jeg synes VB gør rimelig meget af tænkningen for dig, men det er jo korrekt. ;-)

Vi er nok lidt off-topic, men vil du have flere? :-D

n defineres som:
n -> n/2 (hvis n er lige)
n -> 3n + 1 (hvis n er ulige)

Som eksempel, hvis man starter med 3, vil man få rækken:
13 -> 40 -> 20 -> 10 -> 5 -> 16 -> 8 -> 4 -> 2 -> 1

Hvilket begyndelsesnummer under én million producerer den længste kæde? (Kæderne vil altid slutte med én).

Du kan eventuelt gå ind på Project Euler for mere dejlig matematik!
? Hvis du starter med 26 får du 13, starter du derimod med 3 som skrevet så får du 10...

3*3+1 = 10
26/2 = 13

Udover det så gjorde VBA da ikke min "tænkning", den talte blot for mig, den er lidt hurtigere end mig :)

: 17 jul 2008, 18:46
af wanze
Ja, der skulle selvfølgelig stå 13. Og nej, hvis du starter med 13 får du ikke 26:
n -> 3n + 1 (hvis n er ulige - 13 er så vidt jeg ved ulige :))
13 -> 3*13 +1 = 40.

Jo, synes da at VB gør en stor del. Du skal slet ikke tælle dage i måneder eller højde for skudår, da VB selv kan holde styr på dagene.

: 17 jul 2008, 18:56
af mammut
Damn det gør helt ondt at se hvor meget i 2 snakker forbi hinanden :D

: 17 jul 2008, 18:59
af wanze
Ah, ja ok - vi taler nok lidt forbi hinanden. Jeg misforstod det han sagde, men pyt - han forstår vel, hvad jeg mener. Hans løsning er jo også fin nok - den gav det rigtige resultat. Hvis man var rigtig doven kunne man også bare have sagt 1200/7 og håbet på, at der var nok regularitet. :-)

: 17 jul 2008, 21:29
af FrZ
wanze skrev:Ja, der skulle selvfølgelig stå 13. Og nej, hvis du starter med 13 får du ikke 26:
n -> 3n + 1 (hvis n er ulige - 13 er så vidt jeg ved ulige :))
13 -> 3*13 +1 = 40.

Jo, synes da at VB gør en stor del. Du skal slet ikke tælle dage i måneder eller højde for skudår, da VB selv kan holde styr på dagene.
Kig på min første kode, der laver jeg jo "kalenderen" - så er resten jo bare at tælle - som koden så også gør :)

That a side, så talte vi forbi hinanden ja..

: 17 jul 2008, 23:31
af wanze
Ja, men stadig så har du VB til at håndtere "kalenderen", så du skal stadig ikke tage højde for datoer i de forskellige måneder. Men det er også ligemeget - du løste den.

Men tør du ikke give den 2. opgave et skud? ;-) Ellers måske denne:

Trekantstal er generet ved at lægge alle de foregående naturlige tal sammen. Fx vil det 6. trekantstal være 1+2+3+4+5+6 = 21.

21 har 4 faktorer: 1, 3, 7, 21.
28 har 6 faktorer: 1, 2, 4, 7, 14, 28.

Hvad er det første trekantstal til at have over 500 faktorer?

: 21 jul 2008, 15:12
af B.
wanze skrev: Trekantstal er generet ved at lægge alle de foregående naturlige tal sammen. Fx vil det 6. trekantstal være 1+2+3+4+5+6 = 21.

21 har 4 faktorer: 1, 3, 7, 21.
28 har 6 faktorer: 1, 2, 4, 7, 14, 28.

Hvad er det første trekantstal til at have over 500 faktorer?
øøøoeee :I

125250?!