cari

Rumah  >  Soal Jawab  >  teks badan

php - Terdapat 48 rentetan 1 dan 0 mewakili masa satu hari, dalam unit setengah jam

Keperluan adalah untuk menukar 00:30 - 11:00 hari semasa kepada rentetan hanya 1 dan 0, dengan 1 bermakna termasuk dalam tempoh masa dan 0 bermakna tidak termasuk

Rentetan yang terhasil dari 00:30 - 11:00 ialah 01111111111111111111111000000000000000000000000

Masa mungkin berselerak dan tidak semestinya koheren Contohnya, 11:00-12:00 14:00-16:00

Sila beritahu saya apa yang perlu dilakukan. Terima kasih semua~

阿神阿神2773 hari yang lalu505

membalas semua(3)saya akan balas

  • 淡淡烟草味

    淡淡烟草味2017-05-16 13:05:25

    Menulis versi js untuk konsol

    let calcPos = arr=>arr[0]*2+(arr[1]===0?0:1);
    ([[0,30],[11,0]].reduce(
        (a,b,i,arr)=>
            a+= new Array(calcPos(b)+(i===0||i%2===0?0:1)-a.length)
                .fill(i%2===0?"0":"1")
                .join("")
        , "")+new Array(48).fill("0").join(""))
        .slice(0,48);

    Masa digunakan[[0,30],[11,0]]表示00:30 - 11:00, jadi situasi kedua macam ni

    ([[0,30],[11,0],[14,0],[16,0]].reduce((a,b,i,arr)=>a+=new Array(calcPos(b)+(i===0||i%2===0?0:1)-a.length).fill(i%2===0?"0":"1").join(""), "")+new Array(48).fill("0").join("")).slice(0,48);

    Berikut ialah penyahkodan

    ("0"+"011111111111111111111110000011111000000000000000")
        .split("")
        .reduce(
            (a,b,i,arr)=>
                i===0?a:b!==arr[i-1]?[...a, (b==="1"?i:(i-1)) -1]:a
            , [])
        .map(i=>[(i-(i%2===0?0:1))/2, i%2===0?0:30]);

    balas
    0
  • 黄舟

    黄舟2017-05-16 13:05:25

    Tukar masa kepada saat, dan tidak mengapa untuk menukar saat kepada binari - sama ada anda boleh menggunakan format binari mengikut jadual pengekodan atau kaedah lain, terpulang kepada anda.

    balas
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-16 13:05:25

    Unit setengah jam membahagikan 1 hari kepada 48 segmen menunjukkan bahawa nombor segmen sepadan dengan setiap tempoh masa
    Rentetan ke-i sepadan dengan nombor segmen i masa. 1 menunjukkan bahawa ia bukan pada masa ini
    Program khusus tidak sukar untuk ditulis.
    Hanya minta nombor segmen dan gantikan kandungan rentetan
    Nombor segmen adalah untuk menukar masa kepada jam dan kemudian bahagikannya dengan 0.5 untuk dibundarkan.

    balas
    0
  • Batalbalas