F3llony Posted April 18, 2015 Report Share Posted April 18, 2015 (edited) Izskatās, ka PHP topā tagad prātlauži. Te būs viens diezgan vienkāršs. Ir dota skaitļu sekvence (A): 10110101010001001010010100101000101010100010101001010101001001010010101 Apstrādājot doto sekvenci ar algoritmu X, iegūstam skaitļu sekvenci (B): 100001100111111111000010011 Uzdevums: Implementē algoritmu X un nosaki sekvenci (B) šai sekvencei: 10101001000001010101001010100101001000010010101001000101011110001010001 P.S. codez, es zinu, ka tu zini. Ļauj kādam citam vispirms. Edited April 18, 2015 by F3llony Quote Link to comment Share on other sites More sharing options...
Леший Posted April 20, 2015 Report Share Posted April 20, 2015 #trololo http://www.wolframalpha.com/input/?i=x%3D70516243*1558941649468527918161%2F1671903540909242487445 Ja vien autors kaut ko aizmirsa precizēt. Quote Link to comment Share on other sites More sharing options...
F3llony Posted April 20, 2015 Author Report Share Posted April 20, 2015 (edited) Ja vien autors kaut ko aizmirsa precizēt. Neaizmirsa, bet uzdevumam ir maz sakara ar matemātiku. T.i. risinājums neprasa aprēķinus. Risinājums vairāk izskatītos kaut kā šādi: b = x(a) Edited April 20, 2015 by F3llony Quote Link to comment Share on other sites More sharing options...
martins256 Posted April 20, 2015 Report Share Posted April 20, 2015 function X($input) { return "100001100111111111000010011"; } Quote Link to comment Share on other sites More sharing options...
F3llony Posted April 20, 2015 Author Report Share Posted April 20, 2015 Asprātis :D bet nē, tik vienkārši arī nav. Quote Link to comment Share on other sites More sharing options...
F3llony Posted April 21, 2015 Author Report Share Posted April 21, 2015 Ok, neviens? Hint: rising edge, falling edge. Quote Link to comment Share on other sites More sharing options...
codez Posted April 21, 2015 Report Share Posted April 21, 2015 (edited) Kaut arī funkcija garāka kā martins256, tomēr: 11000001110010111000011 https://ideone.com/f4NY5t def X(d:String) = d.sliding(2).zipWithIndex.collect{case ("01",i) => i%2}.mkString.init Edited April 21, 2015 by codez Quote Link to comment Share on other sites More sharing options...
F3llony Posted April 21, 2015 Author Report Share Posted April 21, 2015 Kaut arī funkcija garāka kā martins256, tomēr: 11000001110010111000011 Tuvu, bet tomēr nē. Otrā sekvence ir 1110000011100101110000111 Un risinājums ir b = X(Y) => buffer = nil each 2 from Y if '00' || '11' skip if '01' buffer += '0' if '10' buffer += '1' return buffer Quote Link to comment Share on other sites More sharing options...
Kavacky Posted April 21, 2015 Report Share Posted April 21, 2015 <?php $s = $_GET['s']; for ($i = 0; $i < strlen($s) - 1; $i = $i + 2) { if ($s[$i].$s[$i + 1] == '01') { echo '0'; } else if ($s[$i].$s[$i + 1] == '10') { echo '1'; } } Quote Link to comment Share on other sites More sharing options...
ieleja Posted April 21, 2015 Report Share Posted April 21, 2015 un es jau iedomājos, ka vietējie guru no jebkuriem ieejas, izejas datiem spēs "uzlauzt melno kasti" Quote Link to comment Share on other sites More sharing options...
Леший Posted April 21, 2015 Report Share Posted April 21, 2015 Šis uzdevums nebija īpaši labs. Un nemaz nebija "prātlauzis". Quote Link to comment Share on other sites More sharing options...
codez Posted April 21, 2015 Report Share Posted April 21, 2015 Pēc uzdevuma nosacījumiem, pareiza atbilde ir jebkura funkcija, kura atgriež piemēra atbildi, tā kā citu nosacījumu nav. Uzdevumu varētu piemēram padarīt par kompetatīvu, teiksim nosakot uzvarētāju pēc īsākā koda un dodot vismaz vairākus piemērus, lai vienkārša piemēra izvades atgriešana nebūtu pareiza. Quote Link to comment Share on other sites More sharing options...
F3llony Posted April 21, 2015 Author Report Share Posted April 21, 2015 Īsākais kods noteikti neuzvarēs. Okei, izvirzīšu kritērijus lai būtu interesantāk: Kodam jādarbojas; Kodam jābūt viegli lasāmam, skaidri saprotamam un ar komentāriem; Jebkurā valodā izņemot Scala; Un nav gluži tā, ka pareiza ir jebkura, kas atgriež pareizu piemēra atbildi - tik pat labi var uzrakstīt vienkāršu return kā martins. Tas neskaitīsies gan. Pirmo sekvenci es speciāli sāku rakstīt šādi, lai plus mīnus būtu saprotams uzreiz: A: 10110101010001001010010100101000101010100010101001010101001001010010101 B: 100001100111111111000010011 // B ir vismaz 2x īsāks, kā A. Tātad pārveidošana notiek ar vismaz ar zudumu vismaz x2. // Pirmais solis 10 // Pirmais skaitlis no rezultāta 1 // Otrais solis 11 // Otrais skaitlis no rezultāta 0 // Trešais solis 01 // Trešais skaitlis no rezultāta 0 // Okei, 11 un 01 rezultē uz to pašu 0? Kas ir nākamie 3 soļi? 010101 // Un nākamie 3 skaitļi rezultātā? 000 // Tātad 01 = 0, bet 11 tiek atmests un 10 = 1 // Mēģinam tālāk, no sākuma. Mēs zinām, ka 10 ir 1, 01 ir 0. Mēģinam aizvietot. 10 => 1 11 => 01 => 0 01 => 0 01 => 0 00 => 01 => 1 00 => 10 => 1 10 => 1 01 => 0 01 => 0 00 => 10 => 1 10 => 1 00 => 10 => 1 10 => 1 10 => 1 10 => 1 00 => 10 => 1 10 => 1 10 => 1 01 => 0 01 => 0 01 => 0 01 => 0 00 => 10 => 1 01 => 0 01 => 0 00 => 10 => 1 10 => 1 1 => // Filtrētais atmetot nezināmos izskatās awful lot like rezultāts. 10 => 1 01 => 0 01 => 0 01 => 0 01 => 1 10 => 1 10 => 1 01 => 0 01 => 0 10 => 1 10 => 1 10 => 1 10 => 1 10 => 1 10 => 1 10 => 1 10 => 1 10 => 1 01 => 0 01 => 0 01 => 0 01 => 0 10 => 1 01 => 0 01 => 0 10 => 1 10 => 1 Rezultāts: 100011100111111111000010011 Quote Link to comment Share on other sites More sharing options...
codez Posted April 21, 2015 Report Share Posted April 21, 2015 Un nav gluži tā, ka pareiza ir jebkura, kas atgriež pareizu piemēra atbildi - tik pat labi var uzrakstīt vienkāršu return kā martins. Tas neskaitīsies gan. Kuru tieši no uzdevuma nosacījumiem pārkāpj martins256 kods? Quote Link to comment Share on other sites More sharing options...
F3llony Posted April 21, 2015 Author Report Share Posted April 21, 2015 Kuru tieši no uzdevuma nosacījumiem pārkāpj martins256 kods? Tas atgriež piemēra rezultātu, ne uzdevumā prasītās ievades rezultātu. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.