Rosetta Stone Challenge: ค้นหากฎสำหรับซีรี่ส์


15

เป้าหมายของการท้าทาย Rosetta Stone คือการเขียนวิธีแก้ปัญหาในภาษาต่างๆให้ได้มากที่สุด แสดงการเขียนโปรแกรมได้หลายภาษาของคุณ!

ความท้าทาย

ความท้าทายของคุณคือการใช้โปรแกรมที่ป้อนข้อมูลจะแสดงรายชื่อของตัวเลขและการส่งออกกฎที่ใช้ในการสร้างแต่ละหมายเลขเนื่องในซีรีส์ที่เป็นหลายภาษาการเขียนโปรแกรมที่เป็นไปได้ คุณได้รับอนุญาตให้ใช้ฟังก์ชั่นไลบรารีมาตรฐานทุกประเภทที่ภาษาของคุณมีเนื่องจากนี่เป็นการนำเสนอภาษาเป็นส่วนใหญ่

"ซีรีส์คืออะไร"

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

สำหรับซีรีส์กฎสามารถเขียนเป็น2 5 11 2 1ซึ่งหมายความว่าแต่ละหมายเลขเป็นหมายเลขก่อนหน้าคูณ 2 และ 1 ข้อเท็จจริงที่สำคัญคือชุดส่วนใหญ่มีกฎเดียวทั้งหมด บางซีรี่ส์มีจำนวนอนันต์หรือไม่มีเลย แต่คุณจะไม่ต้องจัดการกับเรื่องนี้

อินพุต

การป้อนข้อมูลจะเป็นรายการของสามจำนวนเต็มที่แตกต่างกันซึ่งเป็นตัวเลขในลำดับ ตัวเลขสามารถเว้นวรรคจุลภาคหรือขึ้นบรรทัดใหม่ได้ แต่โปรดระบุว่า ฉันจะยืดหยุ่นตามข้อ จำกัด นี้เพราะบางภาษาอาจมีข้อ จำกัด ในการป้อนข้อมูล นี่คือสี่ตัวอย่างของการป้อนข้อมูล:

0 7 14
2 5 11
2 0 -4
5 -19  77

เอาท์พุต

เอาต์พุตจะเป็นจำนวนเต็มสองจำนวนซึ่งแทนกฎที่ใช้ในการสร้างชุดข้อมูล จำนวนแรกจะเป็นค่าคงที่การคูณในขณะที่ตัวเลขที่สองจะเป็นค่าคงที่การเติม การจัดรูปแบบของผลลัพธ์สามารถเว้นวรรคจุลภาคหรือขึ้นบรรทัดใหม่ ฉันมีความยืดหยุ่นกับข้อ จำกัด นี้เช่นกัน นี่คือตัวอย่างที่เกี่ยวข้องของการส่งออก:

1 7
2 1
2 -4
-4 1

เกณฑ์การชนะอย่างมีวัตถุประสงค์

สำหรับเกณฑ์การชนะอย่างมีวัตถุประสงค์นี่คือ: แต่ละภาษาเป็นการแข่งขันแยกกันว่าใครสามารถเขียนผลงานที่สั้นที่สุด แต่ผู้ชนะโดยรวมจะเป็นคนที่ชนะการแข่งขันย่อยมากที่สุดเหล่านี้ ซึ่งหมายความว่าบุคคลที่ตอบคำถามในภาษาแปลก ๆ หลาย ๆ แห่งจะได้รับการพิจารณาเป็นพิเศษ Code-golf ส่วนใหญ่เป็น tiebreaker เมื่อมีวิธีแก้ปัญหามากกว่าหนึ่งภาษา: บุคคลที่มีโปรแกรมที่สั้นที่สุดจะได้รับเครดิตสำหรับภาษานั้น

กฎข้อ จำกัด และหมายเหตุ

โปรแกรมของคุณสามารถเขียนในภาษาใด ๆ ที่มีอยู่ก่อนวันที่ 9 เมษายน 2012 ฉันจะต้องพึ่งพาชุมชนเพื่อตรวจสอบคำตอบบางอย่างที่เขียนในภาษาที่แปลกประหลาด / ลึกลับมากกว่าเนื่องจากฉันไม่สามารถทดสอบได้ พวกเขา


กระดานแต้มนำปัจจุบัน

ส่วนนี้จะได้รับการปรับปรุงเป็นระยะเพื่อแสดงจำนวนภาษาและผู้ที่เป็นผู้นำในแต่ละภาษา

  • AWK (32) - mellamokb
  • bash (31) - Peter Taylor
  • Befunge (29) - Howard
  • bc (39) - kernigh
  • brainfuck (174) - CMP
  • C (78) - l0n3_shArk
  • C ++ (96) - วนรอบซ้าย
  • เสียงกระเพื่อมสามัญ (88) - kernigh
  • โบสถ์ Cray (59) - Kyle Kanos
  • csh (86) - kernigh
  • Cuda (301) - ซ้ายรอบ ๆ
  • dc (30) - kernigh
  • DOS BATCH (54) - mellamokb
  • องค์ประกอบ (27) - Howard
  • es (95) - kernigh
  • ปัจจัย (138) - kernigh
  • เฟลิกซ์ (86) - kirbyfan64sos
  • Fortran (44) - Kyle Kanos
  • ไป (101) - โฮเวิร์ด
  • GolfScript (16) - ฮาวเวิร์ด
  • Golflua (44) - Kyle Kanos
  • Haskell (35) - รอบซ้าย
  • J (23) - Gareth
  • Java (141) - ฮาวเวิร์ด
  • JavaScript (47) - mellamokb
  • Julia (71) - ML
  • Lua (51) - ฮาวเวิร์ด
  • ปรอท (319) - ซ้ายรอบ ๆ
  • MoonScript (48) - kirbyfan64sos
  • นิมรอด (146) - ซ้ายรอบ ๆ
  • Owl (22) - ความละเอียด
  • Pascal (88) - ซ้ายรอบ ๆ
  • Perl (57) - Gareth
  • PHP (61) - mellamokb
  • PicoLisp (72) - kernigh
  • Piet (56) - ML
  • PostScript (61) - ฮาวเวิร์ด
  • Python (40) - โฮเวิร์ด
  • Q (36) - tmartin
  • QBasic (34) - mellamokb
  • R (50) - ความละเอียด
  • ทับทิม (44) - ฮาวเวิร์ด
  • สกาลา (102) - กาเร็ ธ
  • SQL (57) - Aman ZeeK Verma
  • TI-83 พื้นฐาน (25) - mellamokb
  • เครื่องลงทะเบียนไม่ จำกัด (285) - Paxinum
  • VBA (57) - Gaffi
  • ช่องว่าง (123) - ความละเอียด
  • zsh (62) - kernigh

อันดับผู้ใช้ปัจจุบัน

อันดับที่เท่าเทียมกันจะถูกจัดเรียงตามตัวอักษร

  1. Howard (9): Befunge (29), Element (27), Go (101), GolfScript (16), Java (141), Lua (51), PostScript, (61) Python, (40) Ruby (44)

  2. kernigh (8): bc (39), Common Lisp (88), csh (86), dc (30), es (95), ปัจจัย (138), PicoLisp (72), zsh (62)

  3. ซ้ายรอบ (6): C ++ (96), Cuda (301), Haskell (35), Mercury (319), Nimrod (146), Pascal (88)

  4. mellamokb (6): AWK (32), DOS BATCH (54), จาวาสคริปต์ (47), PHP (61), QBasic (34), TI-83 พื้นฐาน (41)

  5. Gareth (3): J (23), Perl (57), Scala (102)

  6. Kyle Kanos (3): โบสถ์ Cray (59), Fortran (44), Golflua (44)

  7. ความละเอียด (3): Owl (22), R (50), Whitespace (123)

  8. kirbyfan64sos (2): Felix (86), MoonScript (48)

  9. ML (2): Julia (71), Piet (56)

  10. Aman Zeek verma (1): SQL (57)

  11. CMP (1): brainfuck (174)

  12. Gaffi (1): VBA (57)

  13. l0n3_shArk (1): C (78)

  14. Paxinum (1): เครื่องลงทะเบียนไม่ จำกัด (285)

  15. Peter Taylor (1): ทุบตี (31)

  16. tmartin (1): Q (36)


ดูเหมือนว่าผู้คนจะอ่านแท็กหรือคำอธิบายอื่น ๆ ...
หยุดหันมาดูนาฬิกา

@leftaroundabout: ทำไมคุณถึงพูดแบบนั้น? ฉันรู้ (ตัวอย่าง) ว่าโซลูชันของฉันไม่ใช้อินพุตอาร์เรย์และวางแผนที่จะแก้ไขในภายหลัง และฉันขี้เกียจเกินไปที่จะโพสต์มากกว่าหนึ่งโซลูชันในขณะนี้ :) ตาม Object Winning Criterio โค้ดกอล์ฟเป็น tie-breaker สำหรับการโพสต์สองรายการด้วยภาษาเดียวกันดังนั้นฉันจึงรวมจำนวนตัวละครเพื่อความสะดวก การอ้างอิงในกรณีที่คนอื่นโพสต์โซลูชัน JavaScript อันที่จริงอาจเป็นช่วงเวลาที่หายากเหล่านั้นเมื่อมีคำถามที่ควรได้รับทั้งcode-golf และ code-challengeแท็ก
mellamokb

ใช่คุณพูดถูก: มีคนต้องทำภาษาที่ไม่ธรรมดาเช่นกัน
หยุดหมุนทวนเข็มนาฬิกาเมื่อ

3
ตราบใดที่คุณรักษากระดานผู้นำปัจจุบันในรูปแบบมาตรฐานเดียวกันกับด้านบนคุณสามารถใช้สิ่งนี้เพื่อสร้างคะแนนของผู้ใช้แต่ละคน: jsfiddle.net/bk2WM/2
mellamokb

1
เวอร์ชันใหม่ล่าสุดของฉัน ( jsfiddle.net/bk2WM/4 ) ให้ผลดิบ (ใน textarea) คุณสามารถคัดลอก / วางลงในโพสต์และจัดรูปแบบเหมือนที่ฉันทำในโพสต์ของฉัน รู้สึกอิสระที่จะเปลี่ยน / เล่นกับเค้าโครง
mellamokb

คำตอบ:


9

GolfScript 16 ตัวอักษร

~1$- 1$3$-/.p@*-

อินพุตถูกกำหนดเป็นรายการที่คั่นด้วยช่องว่าง

JavaScript, 56 ตัวอักษร

p=prompt;x=alert;a=p();b=p();x(m=(p()-b)/(b-a));x(b-a*m)

ป้อนข้อมูลจะได้รับพร้อมท์

Ruby, 44 ตัวอักษร

a,b,c=eval("[#{gets}]");m=c-b;p m/=b-a,b-m*a

ป้อนที่นี่ให้เป็นรายการคั่นด้วยเครื่องหมายจุลภาค

Python 40 ตัวอักษร

a,b,c=input();m=c-b;m/=b-a;print m,b-m*a

อินพุตถูกคั่นด้วยคอมมาอีกครั้ง

Java, 141 ตัวอักษร

enum E{E;static int s(){return new java.util.Scanner(System.in).nextInt();}{int a=s(),b=s(),m=s()-b;m/=b-a;System.out.print(m+" "+(b-a*m));}}

อินพุตคั่นด้วยบรรทัดใหม่

Lua, 51 ตัวอักษร

r=io.read
a,b=r(),r()
m=(r()-b)/(b-a)
print(m,b-m*a)

อินพุตคั่นด้วยบรรทัดใหม่

ไป 101 ตัวอักษร

package main
import"fmt"
var a,b,c int
func main(){fmt.Scan(&a,&b,&c)
c-=b
c/=b-a
fmt.Print(c,b-a*c)}

อินพุตคั่นด้วยบรรทัดใหม่

Fortran, 90 ตัวอักษร

      PROGRAM X
      READ(*,*)I,J,K
      K=(K-J)/(J-I)
      WRITE(*,*)K,J-I*K
      END

อินพุตคั่นด้วยบรรทัดใหม่

Befunge, 29 ตัวอักษร

&01p&:11p:&-01g11g-/:.01g*-.@

PostScript, 61 ตัวอักษร

2 5 14
1 index sub 1 index 3 index sub idiv dup = 3 2 roll mul sub =

Owl 23 ตัวอักษร

<%<%<$-1`4'-/%.32)2'*-.

อินพุตคั่นด้วยบรรทัดใหม่

องค์ประกอบ , 27 อักขระ

_-a;_3:'-_+"a~+/2:`a~*+\ ``

อินพุตคั่นด้วยบรรทัดใหม่


การขโมยโซลูชัน JavaScript ของฉันที่ไม่มีรูปแบบ;)
mellamokb

1
ทั้งสองสามารถเล่นเกมนี้ได้ ... : P
mellamokb

@mellamokb หนึ่งที่ดี แต่ฉันได้ยกเลิกคำตอบของคุณแล้ว ;-) ดังนั้นสิ่งที่เหลืออยู่สำหรับเรา: เอาชนะ 48 ตัวอักษร ...
Howard

2
ว้าวคุณเล่นกอล์ฟเป็นภาษาของฉัน ฉันรู้สึกเป็นเกียรติ ฉันยังรู้สึกผูกพันที่จะต้องเอาชนะคุณ :)
PhiNotPi

1
เกี่ยวกับวิธีแก้ปัญหาองค์ประกอบของคุณปรากฏว่าไม่จำเป็นต้องใช้เครื่องหมาย `สุดท้าย นี่เป็นข้อผิดพลาดในส่วนของคุณหรือข้อผิดพลาดในล่ามที่ฉันโพสต์บน Pastebin หรือไม่ โอ้และฉันมีโซลูชัน 27 ตัวอักษร
PhiNotPi

8

Brainfuck - 174

,>,>,<[>->+>+<<<-]>>>[<<<+>>>-]<<<<[>>>->+<<<<-]>>>>[<<<<+>>>>-]<<[->-
[>+>>]>[+[-<+>]>+>>]<<<<<]>>>[<<<+>>>-]<[-]<[-]<.[>>+<<-]>>[<<<<[>>+>+
<<<-]>>>[<<<+>>>-]>-]<<[<->-]<.

Piet - 82?

ไม่แน่ใจว่าจะวัดผลการแข่งขันกอล์ฟได้อย่างไร ฉันจะไปด้วยขนาดภาพทั้งหมด (เป็น codels) Mine เป็น 41x2: ป้อนคำอธิบายรูปภาพที่นี่

Befunge - 34

&00p&10p&10g-10g00g-/:.00g*10g\-.@

ภาษาอังกฤษ - 278

The multiplier is the quotient of the difference of the second 
and third values and the second and first values. 
To generate a new term, multiply the current term by the multiplier
and add the difference of the first value and the product of the 
multiplier and the second value.

ไม่แน่ใจว่านี่มีค่าหรือไม่ แต่คิดว่าฉันจะให้มันเป็นช็อต มันเป็นเรื่องยากที่จะอธิบายแม้แต่อัลกอริธึมที่เรียบง่ายอย่างแม่นยำ Kinda wish English สนับสนุนสัญลักษณ์การจัดกลุ่มบางอย่างเพื่อสร้างความสำคัญ


เชื่อมโยงฉันกับล่าม (ภาษาที่เข้าใจทั้งภาษาและไม่ได้เป็นเพียงการแก้ปัญหานี้) และฉันอาจยอมรับมัน
PhiNotPi

ummm, worldinterpreting.comหรือไม่
captncraig

1
ไม่เป็นไรบุคคลอื่นได้เขียนหลักฐานทางคณิตศาสตร์ใน LaTeX มันไม่ได้นับ แต่เพิ่มความหลากหลาย
PhiNotPi

ถ้าฉันลองใช้โซลูชัน Piet ของคุณด้วย npiet ฉันจะได้ผลลัพธ์นี้: D:\Software\Programming\Piet\npiet-1.3a-win32>npiet series2.png ? 5 ? -19 ? 77 05 ทางออกควรเป็น-4 1
ML

รูปภาพที่คุณโพสต์ไม่ทำงานเว้นแต่ว่าคุณจะเพิ่มขึ้นหนึ่งพิกเซล (ไม่ใช่ codel!) ทางด้านขวา 461 พิกเซลไม่สามารถหารด้วย 11 ซึ่งเป็นขนาด codel ที่ค่อนข้างผิดปกติโดยวิธี;)
ML

8

QBasic, 42

INPUT "",a,b,c
m=(c-b)/(b-a)
PRINT m;b-m*a

ต้องการอินพุตด้วยเครื่องหมายจุลภาคเอาต์พุตพร้อมช่องว่าง (ใช้ได้หรือไม่)


ปรอท 319

:-module r.
:-interface.
:-import_module io,list,int,char,string.
:-pred main(io::di,io::uo)is det.
:-implementation.
main(!IO):-io.read_line_as_string(J,!IO),(if J=ok(I),[A,B,C]=list.map(string.det_to_int,string.words_separator(char.is_whitespace,I)),M=(C-B)/(B-A)then io.format("%d %d",[i(M),i(B-M*A)],!IO)else true).

Haskell, 85 81

f[a,b,c]|m<-(c-b)`div`(b-a)=[m,b-m*a]
main=getLine>>=mapM_ print.f.map read.words

ตอนนี้อินพุตด้วยช่องว่างเอาต์พุตด้วยบรรทัดใหม่


C, 80

main(a,b,c,m){scanf("%d %d %d",&a,&b,&c);m=(c-b)/(b-a);printf("%d %d",m,b-m*a);}

C ++, 96

#include<iostream>
main(){int a,b,c,m;std::cin>>a>>b>>c;m=(c-b)/(b-a);std::cout<<m<<' '<<b-m*a;}

นิมรอด, 146

import strutils
var
 q:array[0..3,int]
 b,m:int
for i in 0..2:q[i]=ParseInt(readLine(stdin))
b=q[1]
m=(q[2]-b)div(b-q[0])
echo($m,",",$(b-m*q[0]))

ป้อนข้อมูลด้วยบรรทัดใหม่เครื่องหมายจุลภาคเอาต์พุต


อันนี้จะไม่นับ แต่ฉันรู้สึกว่ามันยังคงพอดีในบางวิธี:

ทฤษฎีทางคณิตศาสตร์, 713 ตัวอักษรของ LaTeX

\documentclass{article}\usepackage{amsmath}\usepackage{amsthm}\begin{document}Theorem: for a sequence $(a_i)_i$ of integers with $a_2\neq a_1$ where $a_3-a_2$ is divisible by $a_2-a_1$, $m:=\frac{a_3-a_2}{a_2-a_1},\ p:=a_2-m\cdot a_1$ give rise to a sequence\[b_i:=\begin{cases}a_1&\text{for }i=1\\b_{i-1}\cdot m+p&\text{else}\end{cases}\] such that $b_i=a_i\ \forall i\leq 3$.

Proof: $i=1$ is trivial,\[\begin{aligned}b_2=&b_1\cdot m+p=a_1\frac{a_3-a_2}{a_2-a_1}+a_2-\frac{a_1a_3-a_1a_2}{a_2-a_1}=a_2,\\b_3=&b_2\cdot m+p=\frac{a_2a_3-a_2^2}{a_2-a_1}+a_2-\frac{a_1a_3-a_2^2}{a_2-a_1}\\=&\frac{a_2a_3-a_1a_3+(a_2-a_1)a_2-a_2^2+a_1a_2}{a_2-a_1}\\=&\frac{a_2-a_1a_3+0}{a_2-a_1}=a_3.\end{aligned}\]\qed\end{document}

ผลลัพธ์ของโซลูชันทางคณิตศาสตร์และทฤษฎีของ LaTeX


ในขณะที่เรากำลังเขียน :=คำจำกัดความ ...

ปาสกาล 90 88

program r;var a,b,c:integer;begin;read(a,b,c);c-=b;c:=c div(b-a);write(c,' ',b-c*a);end.

Cuda, 301

#include<stdio.h>
__global__ void r(int*q){if(!(blockIdx.x|threadIdx.x)){q[1]-=*q;q[1]/=(*q-q[2]);*q-=q[1]*q[2];}}
main(){int p[3],*q;scanf("%d%d%d",p+2,p,p+1);cudaMalloc(&q,24);cudaMemcpy(q,p,24,cudaMemcpyHostToDevice);r<<<1,1>>>(q);cudaMemcpy(p,q,24,cudaMemcpyDeviceToHost);printf("%d %d",p[1],*p);}

1
คุณสามารถบันทึกสองตัวอักษร C ในการแก้ปัญหาโดยการกำจัดmและนำcและอีกสองโดยใช้แทนc-=b;c/=b-a; c=(c-b)/(b-a);
Peter Taylor

ในโซลูชัน C คุณไม่ต้องการช่องว่างในscanf()สตริงรูปแบบ
Reto Koradi

7

AWK, 35 ตัวอักษร

{m=($3-$2)/($2-$1);print m,$2-$1*m}
  • รูปแบบอินพุต: 2 0 -4

bc, 39 ตัวอักษร

define f(a,b,c){
m=(c-b)/(b-a)
m
b-a*m}
  • รูปแบบอินพุต: z=f(2, 0, -4)
  • อินพุตเป็นbcนิพจน์ หลังจากbcอ่านไฟล์ต้นฉบับมันจะอ่านอินพุตมาตรฐาน นี่คือสาเหตุที่อินพุตต้องมีลักษณะเหมือนกับการเรียกใช้ฟังก์ชัน
  • ผมใช้ OpenBSD ซึ่งจะต้องมีการขึ้นบรรทัดใหม่หลังจากbc{

เสียงกระเพื่อมสามัญ 88 ตัว

(let*((a(read))(b(read))(c(read))(m(/(- c b)(- b a))))(format
t "~A ~A" m (- b(* a m))))
  • รูปแบบอินพุต: 2 0 -4

csh, 86 ตัวอักษร

set i=(`cat`)
@ m=($i[3] - $i[2]) / ($i[2] - $i[1])
@ n=$i[2] - $i[1] * $m
echo $m $n
  • รูปแบบอินพุต: 2 0 -4
  • อักขระลำดับที่ 86 ขึ้นบรรทัดใหม่ท้ายไฟล์ cshเป็นภาษาเดียวที่ฉันนับบรรทัดใหม่เมื่อสิ้นสุดไฟล์ นี่เป็นเพราะcshไม่เคยรันคำสั่งสุดท้ายยกเว้นว่ามีการขึ้นบรรทัดใหม่
  • set i=($<) ไม่ทำงานเพราะ $<ไม่มีการแบ่งคำ

dc, 30 ตัวอักษร

?scsbsalclb-lbla-/psmlblalm*-p
  • รูปแบบอินพุต: 2 0 _4ซึ่ง_เป็นขีดล่าง

es, 95 ตัวอักษร

i=(`cat)
b=$i(2)
m=`{expr \( $i(3) - $b \) / \( $b - $i(1) \)}
echo $m `{expr $b - $i(1) \* $m}
  • รูปแบบอินพุต: 2 0 -4
  • esเป็นเปลือกที่ขยายได้โดย Paul Haahr และ Byron Rakitzis

ตัวอักษร 138 ตัว

USING: eval formatting io kernel locals math ;
contents eval( -- a b c ) [let :> ( a b c )
c b - b a - / dup a * b swap - "%d %d" printf ]
  • รูปแบบอินพุต: 2 0 -4

PicoLisp, 74 72 ตัวอักษร

(in()(let(r read a(r)b(r)c(r)m(/(- c b)(- b a)))(print
m (- b(* a m)))))
  • รูปแบบอินพุต: 2 0 -4
  • แก้ไข: หายไป 2 ตัวอักษรโดยการเปลี่ยนไปa(read)b(read)c(read)r read a(r)b(r)c(r)

พื้นฐาน TI-83, 63 61 ตัวอักษร

:Input A
:Input B
:Input C
:(C-B)/(B-A)→M
:Disp M
:Disp B-A*M
  • รูปแบบการป้อนข้อมูล: 2ENTER 0ENTER ¯4ENTER ที่¯เครื่องคิดเลขมีค่าเป็นลบ
  • ฉันนับตัวอักษร Unicode; (ลูกศรขวา) นับเป็น U + 2192 ตัวอย่างเช่นเครื่องคิดเลขนับInput Aเป็น 2 ตัวอักษร แต่ฉันนับInput Aเป็น 7 ตัวอักษร ฉันยังนับ:เป็น 1 ตัวละคร
  • แก้ไข: ฉันผิด: มี 61 ไม่ใช่ 63 ตัวอักษร

zsh, 62 ตัวอักษร

i=(`cat`)
((b=i[2],m=(i[3]-b)/(b-i[1]),n=b-i[1]*m))
echo $m $n
  • รูปแบบอินพุต: 2 0 -4

7

AWK (32)

{m=$3-$2;print m/=$2-$1,$2-$1*m}

ตัวอย่าง: http://ideone.com/kp0Dj


ทุบตี (38)

awk '{m=$3-$2;print m/=$2-$1,$2-$1*m}'

ตัวอย่าง: http://ideone.com/tzFi8


DOS / BATCH (54 55 )

set/a m=(%3-%2)/(%2-%1)&set/a n=%2-%m%*%1&echo %m% %n%

รับพารามิเตอร์เป็นรายการอาร์กิวเมนต์ที่คั่นด้วยช่องว่าง


Java (143 185 )

enum R{R;{int a=0,b=0,c,i=2;for(;(c=new java.util.Scanner(System.in).nextInt()+b*--i)+i>=c;b=c)a+=c*i;c/=b-a;System.out.print(c+" "+(b-a*c));}}


JavaScript (48 61 67 )

p=prompt;m=p(b=p(a=p()))-b;alert([m/=b-a,b-a*m])

ตัวอย่าง: http://jsfiddle.net/BT8bB/6/


PHP (61 77 )

<?list(,$a,$b,$c)=$argv;$c-=$b;echo($c/=$b-$a).' '.$b-=$c*$a;

การสาธิต: http://ideone.com/CEgke


QBasic (34)

INPUT a,b,c
m=(c-b)/(b-a)
?m;b-m*a

พื้นฐาน TI-83 (25) 41 )

:Prompt A,B,C
:(C-B)/(B-A
:Disp Ans,B-AAns

ใช่เครื่องหมายวงเล็บขวาที่ขาดหายไปนั้นมีจุดมุ่งหมาย เป็นเทคนิคการปรับให้เหมาะสมที่รู้จักกันดีซึ่งการปิดวงเล็บก่อนการดำเนินการ STO นั้นไม่จำเป็นในการเขียนโปรแกรม TI-83 Basic


1
JS หนึ่งไม่ทำงานสำหรับฉันใน Firefox - ฉันได้รับข้อผิดพลาดที่pไม่ได้กำหนด JS spec บอกว่าควรจะประเมินค่าอาร์กิวเมนต์ของฟังก์ชันก่อนที่จะแก้ไขฟังก์ชันหรือไม่
Peter Taylor

อืมมม ใช่คุณถูกต้อง. ตามสเปคก็ไม่ควรทำงานตามที่อธิบายไว้ในคำถามนี้จึงคล้ายกัน: stackoverflow.com/questions/9941736/... ฟังก์ชั่นที่ควรจะถูกผูกไว้ก่อนที่จะมีการประเมินข้อโต้แย้งของพวกเขาและ Chrome ดูเหมือนจะทำในลำดับที่กลับกัน
mellamokb

ฉันลองมานานและยากที่จะเอาชนะโซลูชัน Java สูงสุดด้วยวิธีที่แตกต่างอย่างสิ้นเชิงที่คุณเห็นด้านบน 143 นั้นใกล้เคียงที่สุดที่ฉันสามารถหามาได้ ใครมีความคิดเห็นใด ๆ โปรดส่งทางของฉัน!
mellamokb

6

ช่องว่าง 123

    





















I / O คั่นด้วยบรรทัดใหม่ (หากต้องการรับซอร์สโค้ดให้เข้าสู่โหมดแก้ไขและคัดลอกช่องว่างระหว่างแท็ก preformat หรือดูตัวอย่างออนไลน์ที่ Ideone )

คำอธิบายโดยที่ S, T, L แทน Space, Tab, Linefeed:

Pseudocode     Whitespace
----------     ----------
push 0         SS SSL
readn          TLTT
push 1         SS STL
readn          TLTT
push 2         SS STSL
dup            SLS
readn          TLTT
retr           TTT
push 1         SS STL
retr           TTT
-              TSST
push 1         SS STL
retr           TTT
push 0         SS SSL
retr           TTT
-              TSST
/              TSTS
dup            SLS
outn           TLST
push 10        SS STSTSL
outc           TLSS
push 0         SS SSL
retr           TTT
*              TSSL
push 1         SS STL
retr           TTT
swap           SLT
-              TSST
outn           TLST
exit           LLL

R, 50

x=scan(n=3);y=diff(x);z=y[2]/y[1];c(z,x[2]-x[1]*z)

I / O คั่นด้วยช่องว่าง


นกฮูก

--- 22 ---

< <%<-2`2`-/%.10)2'*-.

I / O คั่นด้วยบรรทัดใหม่

--- 19 --- (ถ้ารุ่นนี้ได้รับอนุญาต แต่ฉันคิดว่ามันโกงเนื่องจาก \ เป็นรหัสปฏิบัติการ):

1`-1`3`-/%.32)2'*-.

I / O คั่นด้วยช่องว่าง การใช้บรรทัดคำสั่ง: owl prog 5 19\ 77(\ ทำหน้าที่เหมือน postfix unary ลบด้วย Owl)


ด้วยรายการนกฮูกของคุณฉันสามารถระงับการตัดสินโซลูชันถ่าน 19 ตัวของคุณได้เนื่องจากสารละลายถ่าน 22 ตัวของคุณชนะแล้วสำหรับภาษา
PhiNotPi

5

J, 23 ตัวอักษร

(],1{x-0{x*])%~/2-/\x=:

การใช้งาน:

   (],1{x-0{x*])%~/2-/\x=: 5 _19 77
_4 1

ตัวเลขลบแสดงด้วยเครื่องหมายขีดล่างใน J

PHP, 88 ตัวอักษร

<?php
list($x,$y,$z)=split(' ',fgets(STDIN));
$a=($z-$y)/($y-$x);
echo$a." ".($y-$a*$x);

สกาลา 102 ตัวอักษร

val x=readLine.split(" ").toList.map(_.toInt)
val a=(x(2)-x(1))/(x(1)-x(0))
print(a+" "+(x(1)-x(0)*a))

Perl, 57 ตัวอักษร

s!(.+) (.+) (.+)!$a=($3-$2)/($2-$1);$a." ".($2-$1*$a)!e

ต้องใช้ตัวเลือก '-p' ซึ่งฉันได้เพิ่ม 2 ตัวอักษร สมมติว่าอินพุตนั้นถูกต้องเพื่อบันทึกอักขระบางตัว

คำตอบของฉันทั้งหมดใช้ตัวเลขคั่นด้วยช่องว่าง


เกี่ยวกับโปรแกรม J ... อินพุตได้รับอนุญาตให้เข้ารหัสโดยตรงในไฟล์ต้นฉบับแทนที่จะแจ้งจากผู้ใช้หรือไม่
res

@res ฉันได้รับมันอย่างที่ฉันจะเรียกใช้ในบรรทัดคำสั่ง การเพิ่ม1!:1]3ทางด้านขวาของนิพจน์จะอ่านอินพุตจาก STDIN ฉันคิดว่ามีการอภิปรายเกี่ยวกับเมตาดาต้าหรือแสดงความคิดเห็นต่อคำตอบ J บางส่วนว่าควรอนุญาตหรือไม่ ฉันค่อนข้างสับสน - ฉันสนุกกับการหาวิธีทำให้ J ทำสิ่งที่ฉันต้องการในพื้นที่ที่เล็กที่สุดฉันจะใช้บทลงโทษ 6 ตัวสำหรับการป้อนข้อมูลจาก STDIN ถ้านั่นคือสิ่งที่ทุกคนต้องการ
Gareth

ฉันคิดว่าถ้ามันอนุญาตให้ J รายการอื่น ๆ ก็อาจสั้นลงในทำนองเดียวกัน (BTW ฉันไม่สามารถใช้นิพจน์ที่คุณแนะนำให้ทำงานได้ แต่(],1{x-0{x*])%~/2-/\x=:".1!:1]1ดูเหมือนจะโอเคในโหมดคอนโซล)
res

@res ใช่แล้วฉันลืมที่จะแปลงจากสตริงเป็นรายการตัวเลข (แม้ว่า 3 ในตอนท้ายปกติจะใช้ได้สำหรับฉันหรือเปล่า)
Gareth

หากคุณทำให้รูทีนย่อย Perl ไม่ใช่โปรแกรมเต็มคุณสามารถทำให้มันเหลือ 50 ไบต์ (และไม่จำเป็นต้องใช้แฟล็กบรรทัดคำสั่ง):($a=($_[1]-pop)/($_[0]-$_[1])).$/.($_[1]-$_[0]*$a)
msh210

4

PHP, 74,72 , 69

<?fscanf(STDIN,'%d%d%d',$a,$b,$c);echo($d=($c-$b)/($b-$a)).' '.($b-$d*$a);

เมื่ออินพุตถูกส่งเป็นอาร์กิวเมนต์:

<?echo($d=($argv[3]-$argv[2])/($b=$argv[2]-$a=$argv[1])).' '.($b-$d*$a);

ตอนนี้ตามที่ @mellamokb แนะนำให้ใช้ $ n = $ argv:

<?$n=$argv;echo($d=($n[3]-$n[2])/($b=$n[2]-$a=$n[1])).' '.($b-$d*$a);

C, 77 , 78

main(a,b,c,d){printf("%d %d",d=(c-b)/(b-a),b-d*a,scanf("%d%d%d",&a,&b,&c));}

^ ไม่ทำงานนี่คือสิ่ง: [ขอบคุณ @ugoren ที่ทำให้มันสังเกตเห็น]

main(a,b,c,d){printf("%d %d",d,b-a*(d=(c-b)/(b-a)),scanf("%d%d%d",&a,&b,&c));}

+1 ว้าวไม่รู้ว่าคุณทำได้fscanfและscanfไม่มีช่องว่าง ! น่ากลัว
mellamokb

1
ในโซลูชัน PHP ตัวที่สองของคุณคุณไม่สามารถบันทึกตัวละครอีกสองสามตัวโดยการเปลี่ยนชื่อ$argvเช่น$n=$argvตอนแรกหรือไม่?
mellamokb

@ mellamokb- ใช่! ฉันไม่ได้คิดอย่างนั้น! ขอบคุณ! :)
l0n3sh4rk

รหัส C ของคุณไม่ทำงาน (ฉันลองบน Linux) ผมอาศัยอยู่กับการประเมินผลเพื่อพารามิเตอร์ที่แปลกมาก - ทำไมจะscanfต้องทำก่อนแล้วd=..แล้วb-d*a?
ugoren

1
จากสิ่งที่ผมสามารถบอกได้เพียงแค่นี้โดยพลการ "เกิดขึ้น" ในการทำงานในสภาพแวดล้อมมากที่สุด (เช่น: ideone.com/I2cPg ) แต่คำสั่งของการประเมินผลพารามิเตอร์ใน C เป็นพฤติกรรมที่ไม่ได้กำหนดและเทคนิคที่ไม่ควรพึ่งพา: orangejuiceliberationfront .com / …
mellamokb

3

VBA, 57 ตัวอักษร

Sub x(a,b,c)
y=(c-b)/(b-a)
MsgBox y & " " & b-a*y
End Sub

( โดยทั่วไปจะเหมือนกับฟังก์ชั่น 'พื้นฐาน' อื่น ๆ แต่ฉันไม่เห็นการส่ง VBA ใด ๆ ที่นั่น )


คุณสามารถปล่อย 8 ไบต์โดยเปลี่ยนบรรทัดที่ 3 เป็นDebug.?y;b-a*y
Taylor Scott


3

นี่คือรหัส (ไม่ปรับให้เหมาะสม) สำหรับเครื่องลงทะเบียนแบบไม่ จำกัด ที่อธิบายไว้ที่นี่: http://www.proofwiki.org/wiki/Definition:Unlimited_Register_Machine

อินพุตควรอยู่ใน register 1,2 และ 3 และเอาต์พุตจะอยู่ใน register 1, 2 หลังจากโปรแกรมเสร็จสิ้น หมายเลขที่ไม่ใช่ลบและไม่ใช่จำนวนเต็มจะไม่ถูกจัดการ แต่อินพุต 0,7,14 และ 2,5,11 ได้รับการจัดการอย่างถูกต้อง

Zero[8] Trans[2,11] Jump[3,11,7] Succ[11] Succ[8] Jump[11,11,3] Zero[5] Trans[1,12] Jump[2,12,13] Succ[12] Succ[5] Jump[12,12,9] Zero[17] Trans[8,13] Jump[13,17,25] Zero[16] Trans[5,14] Jump[13,14,22] Succ[14] Succ[16] Jump[14,14,18] Succ[9] Trans[16,13] Jump[17,17,15] Zero[6] Zero[20] Jump[9,6,40] Zero[7] Trans[1,21] Jump[20,7,36] Succ[21] Trans[21,19] Trans[19,21] Succ[7] Jump[7,7,30] Trans[21,18] Trans[18,20] Succ[6] Jump[6,6,27] Trans[20,4] Zero[10] Trans[4,15] Jump[2,15,47] Succ[15] Succ[10] Jump[15,15,43] Trans[9,1] Trans[10,2]

แก้ไข: โดยการลบวงเล็บและลดคำสั่งชื่อ:

URM 285

Z8 T2,11 J3,11,7 S11 S8 J11,11,3 Z5 T1,12 J2,12,13 S12 S5 J12,12,9 Z17 T8,13 J13,17,25 Z16 T5,14 J13,14,22 S14 S16 J14,14,18 S9 T16,13 J17,17,15 Z6 Z20 J9,6,40 Z7 T1,21 J20,7,36 S21 T21,19 T19,21 S7 J7,7,30 T21,18 T18,20 S6 J6,6,27 T20,4 Z10 T4,15 J2,15,47 S15 S10 J15,15,43 T9,1 T10,2


(+1) แต่ ... "ไม่มีการจัดการหมายเลขที่ไม่ใช่ลบและไม่ใช่จำนวนเต็ม" ... ฉันคิดว่าคุณหมายถึงจะบอกว่าไม่ได้จัดการกับจำนวนลบ (OP บอกว่าอินพุตและเอาต์พุตทั้งหมดเป็นจำนวนเต็ม)
res

อ่าไม่ได้อ่านผลลัพธ์นั้นเป็นจำนวนเต็ม ...
ต่อ Alexandersson

ฉันควรนับสิ่งนี้ด้วยการนับตัวอักษรหรือตามจำนวนคำสั่ง?
PhiNotPi

อาจนับตัวละครในเวอร์ชั่นที่แก้ไข ...
Per Alexandersson

3

DOS-BATCH, 98

@ECHO OFF&SET/P p=&SET/P q=&SET/P r=&SET/A m=(%r%-%q%)/(%q%-%p%)&SET/A n=%q%-%p%*%m%&ECHO %m% %n%

ป้อนข้อมูลในบรรทัดแยกต่างหาก

Bash, 51

m=$((($3 - $2)/($2 - $1)))
echo $m $(($2 - $m*$1))

ตัวอย่าง: sh prog.sh 2 0 -4 (อาร์กิวเมนต์คั่นด้วยช่องว่าง)

Perl, 84

@s=split(/ /,&lt;STDIN&gt;);$m=($s[2]-$s[1])/($s[1]-$s[0]);print $m." ".($s[1]-$s[0]*$m);

Java, 297

import java.util.*;public class A{public static void main(String a[]){StringTokenizer s=new StringTokenizer(new Scanner(System.in).nextLine());int i=4;int[] p=new int[i];while(i-->1)p[3-i]=Integer.parseInt(s.nextToken());p[3]=(p[2]-p[1])/(p[1]-p[0]);System.out.print(p[3]+" "+(p[1]-p[0]*p[3]));}}

ช่องว่างแยกออก, ช่องว่างแยกออก

SQL, 57

select (&3-&2)/(&2-&1),&2-((&3-&2)/(&2-&1)*&1) from dual

นี่คือรายการที่น่าเศร้า แต่ 'เพียงแค่' แก้จุดประสงค์ เคียวรีผูกอินพุตที่รันไทม์ 1,2,3 เป็นตัวแปรตามลำดับของอินพุต


แม้ว่าคนอื่นจะเอาชนะทางbashแก้ปัญหาของคุณได้แล้วฉันแค่อยากจะแนะนำให้คุณลบพื้นที่พิเศษเหล่านั้นทั้งหมดและบันทึกตัวละคร 6 ตัว
mellamokb

ขอบคุณ mellamokb ฉันได้ตระหนักว่าฉันเพิ่งละเว้นมันในภายหลัง นอกจากนี้ฉันเกลียดตัวเองที่ไม่คิดโซลูชัน dos / batch ของคุณที่ควรคลิกที่หัวของฉัน ..
Aman ZeeK Verma

2

คำถามที่ 36

{a,x[2]-x[1]*a:%[x[2]-x 1;x[1]-x 0]}

การใช้

q){a,x[2]-x[1]*a:%[x[2]-x 1;x[1]-x 0]}each(0 7 14;2 5 11;2 0 -4;5 -19 77)
1  7 
2  1 
2  -4
-4 1

2

Fortran 44

read*,i,j,k;k=(k-j)/(j-i);print*,k,j-i*k;end

อินพุตจะอยู่ในบรรทัดเดียว (คั่นด้วยเครื่องหมายจุลภาคหรือเว้นวรรค)

Cray Chapel 59

var i,j,k:int;read(i,j,k);k=(k-j)/(j-i);write(k," ",j-i*k);

การป้อนข้อมูลจะอยู่ในบรรทัดเดียวไม่มีการขึ้นบรรทัดใหม่ (เพิ่ม 2 ตัวอักษรโดยใช้writelnแทนwrite)

Golflua 44

r=I.r;a,b=r(),r();m=(r()-b)/(b-a);w(m,b-m*a)

อินพุตที่คั่นด้วย Newline เอาต์พุตที่คั่นด้วยช่องว่าง


2

Julia ตัวละคร 71 ตัว

อินพุตและเอาต์พุตแบบคั่นด้วยช่องว่าง

i,j,k=int(split(readline(STDIN)));println("$(l=div(k-j,j-i)) $(j-i*l)")

ตัวอย่างอินพุตและเอาต์พุต:

julia> i,j,k=int(split(readline(STDIN)));println("$(l=div(k-j,j-i)) $(j-i*l)")
5 -19 77
-4 1

ปิเอท, 86 60 56 codels (14x4) ขนาด codel 10 เพื่อการมองเห็นที่ดีขึ้น

จริง ๆ แล้วฉันสามารถลดปริมาณโคเดลลงได้ถึง 35% ฉันไม่ได้คาดหวังผลลัพธ์ที่ดีเช่นนี้ การเขียนโปรแกรมนี้ย้อนหลังได้อย่างที่ฉันคาดไว้ค่อนข้างประสบความสำเร็จ ฉันสงสัยว่ามันสั้นกว่านี้ แต่ฉันจะสนใจถ้าใครสามารถหาทางออกที่เล็กกว่านี้ได้

ความท้าทายไม่ได้ระบุว่าโปรแกรมต้องหยุดทำงานหลังจากที่แสดงผลลัพธ์ดังนั้นโปรแกรมขนาดเล็กที่สุด (56 โมเดล) ของฉันควรจะถูกต้อง มันวนกลับไปที่จุดเริ่มต้นหลังจากแสดงผลลัพธ์เพื่อขอทริปเลตจำนวนเต็มใหม่ เนื่องจากการบรรจุแน่นไม่มีที่สำหรับเอาต์พุตของอักขระขึ้นบรรทัดใหม่สองตัว แต่นั่นไม่มีปัญหากับล่าม npiet เพราะมันพิมพ์ '?' เสมอ ถ้ารออินพุต

มีสองขนาดที่เป็นไปได้ในการสร้างเวอร์ชันลูป แต่รุ่นที่รันเพียงครั้งเดียวสามารถทำได้ในโปรแกรมที่มีขนาดใหญ่อย่างน้อย 64 โคเดล (16x4) รุ่นด้านล่างแสดงเหตุผล บางทีมันอาจจะน่าสนใจสำหรับผู้ที่คุ้นเคยกับ Piet

รอบสุดท้ายรุ่น codel ที่อัดแน่นที่สุด 56 รุ่นมีลูป :

ค้นหากฎสำหรับรหัสชุด A 56

รุ่นที่สอง (60 codels) พร้อมลูป

ค้นหากฎสำหรับ Codels A Series 60

หากเวอร์ชัน 56 codel ขัดต่อกฎนี่เป็นเวอร์ชั่น 64 codel สุดท้ายซึ่งรันเพียงครั้งเดียว :

ค้นหากฎสำหรับ A Series 64 รันครั้งเดียว

รุ่นแรกของฉัน (86 codels)

ค้นหากฎสำหรับรหัสชุด A 86

อินพุตและเอาต์พุตเป็นตัวคั่นบรรทัดใหม่

ตัวอย่างอินพุตและเอาต์พุต:

D:\codegolf\npiet-1.3a-win32>npiet ml_series.png
? 5
? -19
? 77
-4
1

สำหรับเวอร์ชันลูปให้ดูน่าเกลียดเล็กน้อย:

D:\codegolf\npiet-1.3a-win32>npiet ml_series_56_codels.png"
? 5
? -19
? 77
-4
1? 5
? -19
? 77
-4
1? 5
? -19
? 77
-4
1?

ฉันเลือก newline เป็นตัวคั่นเนื่องจากการเข้ารหัส ASCII 10 (\ n) เห็นได้ชัดว่าต้องการเพียง 7 codels เมื่อเทียบกับ ASCII 32 () ซึ่งต้องการ 8 codels หรือแม้แต่ ASCII 40 (,) ซึ่งต้องการ 9 codels

การเข้ารหัสถอยหลังจากผลลัพธ์ไปยังอินพุตแรกเป็นวิธีที่ยอดเยี่ยมในการลดการใช้ codel สำหรับการดำเนินการ ROL การเรียงลำดับสแต็กที่จุดเริ่มต้นและตอนท้ายเป็นที่รู้จักการวางมือทำได้อย่างง่ายดาย

นี่คือโปรแกรม text รุ่น 64 codel (มี stack) ในชวเลขที่ทำขึ้นของฉัน โปรแกรมที่สั้นกว่าไม่หยุดเพียง แต่วนกลับไปที่จุดเริ่มต้น

NOP ADD DIV GRT DUP INC END
 0   +   /   >   =   c   ~
PSH SUB MOD PTR ROL OUN
 X   -   %   #   @   N
POP MUL NOT SWI INN OUC
 ?   *   !   $   n   C

                   1
        1    1   2 2     1                   a,b,c: input for series
      5 5  3 3 c c cb  3 3                       D: c-b
    b b bb b bbb b bcD D Da                      E: b-a
   bb b bb b baa a aaa a abE F                   F: D/E, (c-b)/(b-a), mul. const.
  bbb b ba a abb b bbb b bDDFFF    5             G: a*F, a(c-b)/(b-a)
 aaaa a aa a aaa a aaa a aaaaaaG  55 10          H: b-G, b-a*F, add. const.
aaaaa a ab b bbb b bbb b bbbbbbbH HH  H H
n=n==5X1X@3X1X@n2X1X@-3X1X@-/=N*-5X=  + CN~
| |            |     |     || |||\____/ ||
| |            |     |     || |||  |    |+———— output add. const.
| |            |     |     || |||  |    +————— output newline character
| |            |     |     || |||  +—————————— 5 DUP + =10, ASCII for \n
| |            |     |     || ||+————————————— H, add. const.
| |            |     |     || |+—————————————— G
| |            |     |     || +——————————————— output mul. const.
| |            |     |     |+————————————————— F, mul. const.
| |            |     |     +—————————————————— E
| |            |     +———————————————————————— D
| |            +—————————————————————————————— input c
| +——————————————————————————————————————————— input b
+————————————————————————————————————————————— input a

1

MoonScript (48 ตัวอักษร, ตัวคั่นที่ขึ้นบรรทัดใหม่, ตัวคั่นช่องว่าง)

r=io.read
a,b=r!,r!
m=(r!-b)/(b-a)
print m,b-m*a

เฟลิกซ์ (86 ตัวอักษร, ตัวคั่นบรรทัดใหม่, เอาท์พุทตัวคั่นคอมม่า)

gen r()=>int $ readln stdin;
var a,b=r(),r();
var m=(r()-b)/(b- a);
println(m,b- m*a);

Julia (84 ตัวอักษรช่องว่างคั่นด้วยช่องว่างช่องว่างเอาท์พุท)

a,b,c=tuple(map(int,split(readline(STDIN)))...)
m=(c-b)/(b-a)
println("$m $(b-m*a)")

โซลูชัน Julia ของคุณเกิดข้อผิดพลาด ข้อผิดพลาด: BoundsError () ใน indexed_next ที่ tuple.jl: 19 (ซ้ำ 2 ครั้ง) ในขณะที่โหลด d: \ codegolf \ series.jl ในนิพจน์เริ่มต้นที่บรรทัดที่ 1
ML

@ ML นั่นแปลก อาจเป็นสิ่งที่เปลี่ยนแปลงใน Julia รุ่นใหม่ล่าสุด ฉันจะลองดู
kirbyfan64sos

ถ้าฉันลองในคอนโซลฉันได้รับข้อผิดพลาดทันทีหลังจากบรรทัดแรก อย่างใดบรรทัดสร้าง tuple ที่เสมอ (a, b, 0) ถ้าฉันรวมผ่านไฟล์. jl แล้วมันจะสร้างผลลัพธ์ แต่จะพ่นข้อผิดพลาดถ้าฉันกด Enter เพื่อรับ Julia REPL กลับมา julia> include ("happy_birthday_codegolf.jl") 5 -19 77 -4 1 ข้อผิดพลาด: BoundsError () ใน indexed_next ที่ tuple.jl: 19 (ซ้ำ 2 ครั้ง) ขณะที่โหลด d: \ codegolf \ series.jl โดยแสดงเป็นนิพจน์เริ่มต้นที่ บรรทัด 1 มีวิธีแทรกตัวแบ่งบรรทัดในความคิดเห็นหรือไม่ ขออภัยในความยุ่งเหยิง
ML

@ML การใส่ในไฟล์และเรียกใช้ผ่านjulia file.jlข้อผิดพลาดเดียวกันหรือไม่
kirbyfan64sos

ฉันเดาว่ามันไม่สามารถอ่านได้ในระเบียบของคำตอบข้างต้น ใช่ฉันลองทั้งคอนโซลแล้วรวมมันผ่านไฟล์. jl “ ถ้าฉันรวมมันผ่านไฟล์. jl มันจะสร้างเอาต์พุต แต่จะพ่นข้อผิดพลาดถ้าฉันกด Enter เพื่อรับ Julia REPL กลับมา” ถ้าฉันเรียกใช้ตัวอย่างของคุณผ่านไฟล์. jl โปรแกรมจะรออินพุตก่อน julia> REPL / prompt กลับมา
ML
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.