จำนวนที่ใหญ่ที่สุดและน้อยที่สุด


16

งาน

เมื่อกำหนดจำนวนที่ไม่เป็นลบให้เอาต์พุตจำนวนที่มากที่สุดและน้อยที่สุดที่สามารถเกิดขึ้นได้โดยการรวมเข้ากับพวกเขา

กฎระเบียบ

อินพุตเอาต์พุตสามารถอยู่ในรูปแบบที่สะดวก

อาร์เรย์อาจมีจำนวนทศนิยมไม่เกิน 1 รายการ

ตัวอย่าง

input:[22,33,44,55.55,33]
output:4433332255.55,55.5522333344

input:[34,900,3,11,9]
output:990034311,113349009

input:[99.93,9,3,39]
output:939399.93,99.933399

input:[45.45,45,45,45]
output:45454545.45,45.45454545

input:[12,21,34,43,45.1]
output:4334211245.1,45.112213443

นี่คือรหัส - กอล์ฟเพื่อให้ได้รหัสที่สั้นที่สุด


1
ผลลัพธ์แรกจะไม่: 4422333355.55, 55.5544333322 หรือไม่ มีขนาดเล็กลงและใหญ่ขึ้นตามลำดับ
ouflak

@ พรางคุณจะต้องให้ผลลัพธ์ที่ใหญ่ที่สุดและเล็กที่สุด
Vedant Kandoi

1
ไม่เป็นไรดูเลยตอนนี้ งงกับทศนิยม
ouflak

จะ[[55.55,22,33,33,44],[44,33,33,22,55.55]]เป็นรูปแบบผลลัพธ์ที่ยอมรับได้หรือไม่
Shaggy

1
ไม่ว่าทางใดก็ดี @Jordan
Vedant Kandoi

คำตอบ:



3

05AB1E , 11 ไบต์

œJΣ'.¡ï}Á2£

ลองออนไลน์! หรือเป็นชุดทดสอบ

คำอธิบาย

 œ             # get permutations of input
  J            # join each
   Σ    }      # sort by
    '.¡        # splitting into [before decimal, after decimal]
       ï       # and converting each to int
         Á     # rotate the result right
          2£   # and take the first 2 values

cast to floatน่าเสียดายที่เราไม่ได้มี ฉันจำได้ว่ามีอยู่หนึ่งในมรดก แต่ฉันเพิ่งดูมันและเห็นได้ชัดว่ามันเป็นstringified cast to floatซึ่งค่อนข้างไร้ประโยชน์เพราะคุณต้องการลอยแทนสตริงที่จะเรียงลำดับ .. xD
Kevin Cruijssen

@KevinCruijssen: ใช่ เรามีแต่โชคร้ายที่ไม่มีis_number to_number
Emigna

3

JavaScript (ES6), 68 66 ไบต์

a=>[1,-1].map(n=>a.sort((a,b)=>[a%1||a]+b<[b%1||b]+a?n:-n).join``)

ลองออนไลน์!

อย่างไร?

เราใช้การทดสอบต่อไปนี้เพื่อเปรียบเทียบสองค่าในอาร์เรย์อินพุต:

[a % 1 || a] + b < [b % 1 || b] + a

x % 1 || xxxx

นิพจน์[x % 1 || x] + yจะรวมผลลัพธ์ข้างต้นเป็นสตริงและเชื่อมโยงกับค่าอื่น

หากมีตัวเลขทศนิยมในรายการจะต้องพิจารณาว่าเป็นค่าที่เล็กที่สุดเสมอ ด้วยการใช้การแปลงของเราตัวเลขทศนิยมจะกลายเป็นสตริงที่ขึ้นต้นด้วย"0."ซึ่งถูกจัดเรียงพจนานุกรมก่อนหน้าสิ่งอื่นใด

ตัวอย่าง:

  a |   b | [a%1||a]+b | [b%1||b]+a
----+-----+------------+------------
  4 |   5 | "45"       | "54"
 10 |  11 | "1011"     | "1110"
  8 |  80 | "880"      | "808"
  7 | 9.5 | "79.5"     | "0.57"

3

Japt, 14 11 ไบต์

á m¬ñn é v2

ลองมัน

บันทึกได้ 1 ไบต์ขอบคุณลูอิสโปรด+1แก้ปัญหาด้วย

á               :Permutations
  m             :Map
   ¬            :  Join
    ñ           :Sort by
     n          :  Converting each to a number
       é        :Rotate right
         v2     :Remove & return the first 2 elements

ตกลงนี่ดีกว่า !! ประณาม!! มันéถูกซ่อนอยู่ตลอดเวลา !!
Luis felipe De jesus Munoz

3

Japt , 14 11 10 ไบต์

á m¬ñn gJò

ลองออนไลน์!


ทำได้ดีนี่. ฉันมีá ®¬nÃnสำหรับบรรทัดแรก - เตะตัวเองที่ฉันไม่ได้คิดในแบบของคุณ
Shaggy

12 ไบต์โดยใช้-hแฟล็ก
Shaggy

11 ไบต์โดยใช้-gแฟล็ก ยังทำงานร่วมกับแทนí ï
Shaggy

@Shaggy ยอดเยี่ยม! ขอบคุณ !!
Luis felipe De jesus Munoz

แดง! ดูเหมือนว่าฉันจะยอมแพ้ในไม่ช้า; ทำได้ดีมาก
Shaggy

3

เยลลี่ขนาด 6 ไบต์

Œ!VṢ.ị

ลองออนไลน์!

คำอธิบาย:

Œ!VṢ.ị Arguments: x
Œ!     Permutations of x
  V    Concatenate the representations of each permutation's elements and evaluate the result as Jelly code
   Ṣ   Sort
    .ị Get element at index 0.5, i.e. elements at indices 0 (last) and 1 (first)

ฉันไม่เคยเขียนโปรแกรมใน Jelly แต่.ịเป็นวิธีที่ยอดเยี่ยมในการรับทั้งรายการแรกและรายการสุดท้ายของรายการ คำตอบที่ดี! +1 จากฉัน
Kevin Cruijssen

1
@KevinCruijssen จริง ๆ แล้วจะได้รับรายการสุดท้ายและรายการแรก : P
Erik the Outgolfer

ฉันไม่เคยตั้งโปรแกรมใน Jelly แต่ฉันสับสนว่ามัน.ịทำงานอย่างไร ถ้าผมอ่านเอกสารอย่างถูกต้องผมจะคิดว่าได้รับองค์ประกอบของปีที่ชั้น (x) และ ceil (x) และเป็น. 0.5นั่นไม่ได้หมายความว่ามันจะได้องค์ประกอบของ y ที่ดัชนี 0 และ 1 หรือไม่?
Cowabunghole

ทำดัชนีโดยใช้ Jelly 1 หรือไม่ นั่นจะอธิบายพฤติกรรมนี้ แต่ฉันไม่เห็นอะไรเกี่ยวกับสิ่งนั้นในเอกสาร
Cowabunghole

1
@Cowabunghole ใช่ Jelly มีการจัดทำดัชนี 1 รายการ
Erik the Outgolfer

3

Ruby , 56 45 ไบต์

->a{a.permutation.map{|p|p.join.to_f}.minmax}

ลองออนไลน์!

-11 ไบต์ขอบคุณจอร์แดน


1
เยี่ยมมาก! คุณสามารถบันทึก 2 ไบต์โดยปล่อยวงเล็บไว้รอบอาร์กิวเมนต์ของคุณ ( ->a{...) และอีก 9 รายการโดยใช้minmaxวิธีการที่สะดวก: tio.run/…
Jordan

2

Pyth, 13 12 ไบต์

hM_BSvsM.p`M

[smallest, largest]ขาออกในรูปแบบ ลองออนไลน์ได้ที่นี่หรือตรวจสอบทุกกรณีการทดสอบในครั้งเดียวที่นี่

hM_BSvsM.p`MQ   Implicit: Q=eval(input())
                Trailing Q inferred
          `MQ   Stringify all elements of Q
        .p      Generate all permutations of the above
      sM        Concatenate each permutation
     v          Evaluate each as a number
    S           Sort them
  _B            Pair the sorted list with its reverse
hM              Take the first element of each, implicit print

แก้ไข: บันทึกไบต์โดยนำการทำให้เป็นสตริงออกจากฟังก์ชันการแมป รุ่นก่อนหน้า: hM_BSmvs`Md.p



1

Huskขนาด 10 ไบต์

§,▼▲morṁsP

ลองออนไลน์หรือยืนยันทั้งหมด!

คำอธิบาย

§,▼▲m(rṁs)P  -- example input: [2,3,1.1]
          P  -- permutations: [[2,3,1.1],[3,2,1.1],[1.1,3,2],[3,1.1,2],[1.1,2,3],[2,1.1,3]]
    m(   )   -- map the following
                (example with [1.1,2,3])
       ṁs    -- | show each and join: "1.123"
      r      -- | read: 1.123
             -- : [231.1,321.1,1.132,31.12,1.123,21.13]
§,           -- fork and join as tuple
  ▼          -- | min: 1.123
   ▲         -- | max: 321.1
             -- : (1.123,321.1)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.