Matematikos mėgėjams. Ramūno "kosminės kaimynystės" mįslė

Komentarai Prisijungti

Viršuje:   Seniausi | Naujausi

Strong_Bad 2010-01-14 01:07
1 4 2 5 3 8 12 9 11 7 10 6 Lygtai tenkina salyga
nikis 2010-01-14 01:55
ligonis 2010-01-14 02:50
1 4 8 3 7 12 9 5 2 7 11 6 (pusiau mieganciam atrodo teisingai)
Mikis 2010-01-14 09:27
Labai smagiai pateiktas uždavinis buvo smagu skaityti ne kaip kitus straipsnius
nondescript 2010-01-14 10:10
skaiciai negali pasikartot
ligonis 2010-01-14 11:19
vakar tikrinau ir atrode teisingai miego trukumas padare savo.
Minde317 2010-01-14 12:26
Uzsukau programele, tai nerado atsakymu
nondescript 2010-01-14 13:27
1, 6, 11, 4, 9, 2, 7, 12, 5, 10, 3, 8 o kaip sis variantas? paemiau paprasta seka, skaicius +5
nikis 2010-01-14 13:41
Nu 8 su 1 niekaip nesueina. Kaip ir 11 su 4, 9 su 2, 12 su 5, 10 su 3. Pasirodo gan sunkus čia gavosi.
nondescript 2010-01-14 14:18
tarkiml 8 su 1 yra penkti kaimynai
Strong_Bad 2010-01-14 15:43
Aisku, kazkodel man atrode, kad gali buti 2 skirtumas, pasirode kad reik 3 minimum... Bet jeigu jau programele nerado atsakymu, tai reiskias ir ner, nebent programele su trukumais Nesigincykit, kad 8 ir 1 tinka, nes 1 = 13, taip nera, nes cia tik skaiciai paimti nuo 1 iki 12 ir niekur kitur nera pamineta 13-24 ar 0. Turim nuo 1 iki 12 ir juos reik deliot. Reiks dar pazaist padeliot pakol atsibos
nikis 2010-01-14 15:46
Paskaityk dar kartą sąlygą. Kalba eina ne apie kaimynystę ant laikrodžio, ne skirtumą padalose, bet tik apie pačius skaičius. 8 - 1 = 7 Jei tavo uždavinio interpretacija būtų teisinga, tai šis pateikstas pvz: Pasižiūrėkite, mes spėjome viską pamatyti. ------------------------------3----12 --------------------------10----------9 -------------------------7--------------4 --------------------------2------------1 ----------------------------6---------5 -------------------------------11--8 būtų teisingas. O jis paminėtas kaip antras neteisingas bandymas. "Padėkite surašyti ratuku, kokia norite tvarka, visus skaičius nuo 1 iki 12 taip, kad bet kurie du gretimi skaičiai skirtųsi ne mažiau kaip per 3 ir ne daugiau kaip per 5 (kitais žodžiais, gretimi skaičiai gali skirtis arba per 3, arba per 4, arba per 5)." Kokį algoritmą/principą panaudojai?
ligonis 2010-01-14 16:00
programelei manau tiktu ciklai. pagrindinei programoi pirmas ciklas, kuris eina nuo 1 iki 12. toliau siuncia masyva kuriam suzymeti skaiciai kurie jau buvo, ir kuris skaicius buvo pries tai. ir vis toi funkcijoi patikrinus jei nera laisvu skaiciu atitinkanciu salyga - keiciam pirmo ciklo skaiciu ir t.t.
nikis 2010-01-14 16:06
Na, jei gerai įsivaizduoju tavo mintį, tai tam reikėtų, tarkim, paimt vieną statinį skaičių(nes vistiek apskritimą gaunam, ir viršūnę bet kokią galim imt), ir tada jei su ciklais, reikėtų kaip ir 11 ciklų. O tai nelabai praktiška. Būtų įdomu pamatyt tos nerandančios programos pagrindinį algoritmą, ar visą kodą.
Minde317 2010-01-14 17:41
Progremeles ideja tokia: reikia suformuoti masyva is 12 nariu (darom 12 ciklu cikle) tada tikrinam ar kiekvieno masyvo nariai atitinka salyga (tarp gretimu elementu skirtumas 3,4,5) Tokia "paleidus" programele mano kompas (Intel Core 2 Duo E8200 2.66Ghz, 4GB) "uzduso", tai teko optimizuot tuos ciklus. Nera prasmes eit i cikla jei masyvo vienas narys = sekanciam iseiles nariui (1,1,.....) Taip pat ner prasmet eit i ciklus jei vienas narys didesnis at mazesnis nei 3,4,5 uz sekanti nari (...,5,12...) arba (,2,4,...) MS Access programele (VBA pagrindu): Private Sub Command1_Click() Dim pr, pab pr = Time mas2 = Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) kiekis = 1 ' sukurti mas2 For i0 = 0 To 11 mas2(0) = i0 + 1 For i1 = 0 To 11 If i1 <> i0 Then mas2(1) = i1 + 1 If Tinkamas(1) = True Then For i2 = 0 To 11 If i2 <> i0 And i2 <> i1 Then mas2(2) = i2 + 1 If Tinkamas(2) = True Then For i3 = 0 To 11 If i3 <> i0 And i3 <> i1 And i3 <> i2 Then mas2(3) = i3 + 1 If Tinkamas(3) = True Then For i4 = 0 To 11 If i4 <> i0 And i4 <> i1 And i4 <> i2 And i4 <> i3 Then mas2(4) = i4 + 1 If Tinkamas(4) = True Then For i5 = 0 To 11 If i5 <> i0 And i5 <> i1 And i5 <> i2 And i5 <> i3 And i5 <> i4 Then mas2(5) = i5 + 1 If Tinkamas(5) = True Then For i6 = 0 To 11 If i6 <> i0 And i6 <> i1 And i6 <> i2 And i6 <> i3 And i6 <> i4 And i6 <> i5 Then mas2(6) = i6 + 1 If Tinkamas(6) = True Then For i7 = 0 To 11 If i7 <> i0 And i7 <> i1 And i7 <> i2 And i7 <> i3 And i7 <> i4 And i7 <> i5 And i7 <> i6 Then mas2(7) = i7 + 1 If Tinkamas(7) = True Then For i8 = 0 To 11 If i8 <> i0 And i8 <> i1 And i8 <> i2 And i8 <> i3 And i8 <> i4 And i8 <> i5 And i8 <> i6 And i8 <> i7 Then mas2(8 ) = i8 + 1 If Tinkamas(8 ) = True Then For i9 = 0 To 11 If i9 <> i0 And i9 <> i1 And i9 <> i2 And i9 <> i3 And i9 <> i4 And i9 <> i5 And i9 <> i6 And i9 <> i7 And i9 <> i8 Then mas2(9) = i9 + 1 If Tinkamas(9) = True Then For i10 = 0 To 11 If i10 <> i0 And i10 <> i1 And i10 <> i2 And i10 <> i3 And i10 <> i4 And i10 <> i5 And i10 <> i6 And i10 <> i7 And i10 <> i8 And i10 <> i9 Then mas2(10) = i10 + 1 If Tinkamas(10) = True Then For i11 = 0 To 11 If i11 <> i0 And i11 <> i1 And i11 <> i2 And i11 <> i3 And i11 <> i4 And i11 <> i5 And i11 <> i6 And i11 <> i7 And i11 <> i8 And i11 <> i9 And i11 <> i10 Then mas2(11) = i11 + 1 ' skaiciuoti If Tinkamas(11 ) Then SK2 mas2 End If End If Next i11 End If End If Next i10 End If End If Next i9 End If End If Next i8 End If End If Next i7 End If End If Next i6 End If End If Next i5 End If End If Next i4 End If End If Next i3 End If End If Next i2 End If End If Next i1 Next i0 pab = Time MsgBox "baige: " & vbCr & " pradzia: " & pr & vbCr & " pabaiga: " & pab End Sub Sub SK2(mas2 As Variant) ' cia paziuri ar visi masyvo nariai atitinka salygai ' ji naudojama tik kele kartu Dim kiekis As Integer kiekis = 0 For i = 0 To 10 If Ar_tinka(Abs(mas2(i) - mas2(i + 1))) = True Then kiekis = kiekis + 1 Else Exit For End If Next i ' patikrina paskutinio ir pirmojo masyvo nariu skirtuma If Ar_tinka(Abs(mas2(11) - mas2(0))) = True Then kiekis = kiekis + 1 End If If kiekis = 12 Then Debug.Print " rado" End If End Sub Function Ar_tinka(k As Integer) As Boolean ' uzdavinio salyga skirtumui tarp dvieju gretimu masyvo nariu Select Case k Case 3, 4, 5 Ar_tinka = True Case Else Ar_tinka = False End Select End Function Function Tinkamas(m As Integer) As Boolean ' suzinome ar masyvo gretimi nariai atitinka salyga If Ar_tinka(Abs(mas2(m - 1) - mas2(m))) = True Then Tinkamas = True Else Tinkamas = False End If End Function
Minde317 2010-01-14 17:43
nelabai graziai sukele ta koda
nikis 2010-01-14 19:15
http://www.copypastecode.com/ pabandyk.
DzeiPi 2010-01-14 22:18
Nepavyks nuvyti baubo vardu To Tu Ne(padarysi), nes neįmanoma sudėlioti skaičių taip, kaip prašoma: akivaizdu, kad skaičiai 1, 2, 3, 10, 11, 12 negali būti tarpusavyje kaimynais, tad tarp jų turi būti įsiterpę po vieną iš likusių skaičių. Vadinasi, kiekvienas iš likusių skaičių, turi būti "artimas" bent dviems iš išvardintųjų. Tačiau 4 "artimas" tik vienam iš išvardintųjų (vienetui), tad neįmanoma sudelioti skaičių kaip prašoma.
Vilmas 2010-01-14 23:24
Jooo... O aš jau pradėjau dulkes pūsti nuo tos smegenų srities, kur dar kažkokios žinios likusios apie grafų teoriją... O čia sprendimas - super paprastas
diskrecioji 2010-02-11 23:13
Taip skaičių surašyti tiesiog neįmanoma! Ir uždavinio esmė ir yra įrodyt, kad taip surašyt tiesiog negalima.