คำถามติดแท็ก arithmetic

ความท้าทายที่เกี่ยวข้องกับคณิตศาสตร์ระดับประถมศึกษา

1
การนับโซ่ของคันนิงแฮม
ตัวเลขที่สำคัญทำให้ผู้คนหลงใหล 2300 ปีที่แล้ว Euclid เขียนใน "Elements" ของเขา จำนวนเฉพาะคือสิ่งที่วัดโดยหน่วยเดียว ซึ่งหมายความว่านายกสามารถหารด้วย1(หรือด้วยตัวเอง) เท่านั้น ผู้คนมักจะมองหาความสัมพันธ์ระหว่างจำนวนเฉพาะและเกิดขึ้นกับบางสิ่งที่แปลก (เช่นใน "น่าสนใจ") ตัวอย่างเช่นนายก Sophie Germainเป็นนายกpที่2*p+1สำคัญเช่นกัน นายกปลอดภัยเป็นนายกpที่(p-1)/2ยังเป็นนายกรัฐมนตรีซึ่งเป็นว่าสภาพข้างหลังของนายกโซฟีต์แชร์กแมง สิ่งเหล่านี้เกี่ยวข้องกับสิ่งที่เรากำลังมองหาในการท้าทายนี้ ห่วงโซ่คันนิงแฮมของประเภทที่เป็นชุดของจำนวนเฉพาะที่องค์ประกอบยกเว้นคนสุดท้ายทุกคนจะเป็นนายกโซฟีต์แชร์กแมงและองค์ประกอบยกเว้นคนแรกที่ทุกคนเป็นนายกปลอดภัย จำนวนขององค์ประกอบในครั้งนี้มีห่วงโซ่ที่เรียกว่ามันยาว ซึ่งหมายความว่าเราเริ่มต้นด้วยการลากและคำนวณp q=2*p+1ถ้าqเป็นไพร์มด้วยเรามี Cunnigham chain ของ type I ที่มีความยาว 2 จากนั้นเราจะทดสอบ2*q+1และต่อไปเรื่อย ๆ จนกระทั่งจำนวนที่สร้างขึ้นถัดไปเป็นคอมโพสิต โซ่คันนิงแฮมประเภทIIสร้างขึ้นตามหลักการเดียวกันเกือบทั้งหมดความแตกต่างเพียงอย่างเดียวคือเราตรวจสอบ2*p-1แต่ละขั้นตอน โซ่คันนิงแฮมสามารถมีความยาว 1ซึ่งหมายความว่า 2 * p + 1 หรือ 2 * p-1 ไม่สำคัญ เราไม่ได้สนใจในสิ่งเหล่านี้ ตัวอย่างบางส่วนของ Cunningham chains 2เริ่มสายโซ่ประเภทที่ฉันมีความยาว …

6
ข้อผิดพลาดในการปัดเศษออกควบคุม
พื้นหลัง คุณเพิ่งได้รับการว่าจ้างจาก บริษัท บัญชีขนาดเล็ก โลกของการบัญชีนั้นค่อนข้างต่างกับคุณดังนั้นคุณไม่แน่ใจว่าคุณกำลังทำตามแนวทางวิชาชีพทั้งหมดหรือไม่ โดยเฉพาะอย่างยิ่งคุณไม่ทราบว่าเมื่อใดที่คุณควรปัดเศษตัวเลขเหล่านั้นทั้งหมดและไปในทิศทางใดดังนั้นเวลาส่วนใหญ่ที่คุณเพิ่งจะใช้และหวังว่าจะได้สิ่งที่ดีที่สุด อินพุต อินพุตของคุณเป็นสตริงเดี่ยวที่แสดงถึงการคำนวณอย่างง่าย +-*/มันมีตัวเลขของจำนวนเต็มไม่ติดลบบางส่วนคั่นด้วยตัวอักษร สตริงอ่านจากซ้ายไปขวาและกฎความสำคัญปกติจะถูกละเว้นดังนั้น"23+1*3/4"หมายความว่า "เริ่มต้นด้วย 23 เพิ่ม 1 คูณด้วย 3 และหารด้วย 4" ผลลัพธ์คือ 18 อินพุตจะไม่ประกอบด้วยตัวเลขที่ขึ้นต้นด้วย0(ยกเว้น0ตัวเอง) หรือหารด้วยศูนย์ เอาท์พุต ในแต่ละขั้นตอนของการคำนวณคุณสามารถปัดเศษผลลัพธ์ขึ้นหรือลงให้เป็นจำนวนเต็มที่ใกล้เคียงที่สุดหรือเก็บตามที่มันเป็น ในที่สุดคุณปัดขึ้นหรือลงเพื่อให้ได้ผลลัพธ์จำนวนเต็ม ผลลัพธ์ของคุณคือรายการจำนวนเต็มที่อาจเป็นผลมาจากการคำนวณเรียงลำดับและไม่มีการซ้ำซ้อน กฎระเบียบ คุณสามารถเขียนโปรแกรมเต็มหรือฟังก์ชั่น จำนวนไบต์ต่ำสุดที่ชนะและช่องโหว่มาตรฐานไม่ได้รับอนุญาต กรณีทดสอบ "42" -> [42] "2+0+4-0" -> [6] "23+1*3/4" -> [18] "5/2" -> [2,3] "5/2+7/3*6-1" -> [17,18,19,23] "23/2/2*30-170/3" -> [-7,-6,-2,-1,0,1,3,4] "1/3*2*2*2*2*2*2" -> …

7
รวมพลังกับ n
คำสั่ง เขียนโปรแกรมที่ได้รับการป้อนข้อมูลจำนวนเต็มn ( n >= 0) ผลลัพธ์ที่ได้มีขนาดเล็กที่สุดจำนวนเต็มบวก เมตรที่: n = a[1]^b[1] + a[2]^b[2] + a[3]^b[3] + ... + a[k]^b[k] aและbเป็นลำดับที่มีความยาวเท่ากัน องค์ประกอบทั้งหมดของaน้อยกว่าm องค์ประกอบทั้งหมดของbน้อยกว่าm องค์ประกอบทั้งหมดของaมีที่แตกต่างกันและจำนวนเต็มa[x] >= 0 องค์ประกอบทั้งหมดของbมีที่แตกต่างกันและจำนวนเต็มb[x] >= 0 a[x]และb[x]ไม่ใช่ทั้งคู่ 0 (ตั้งแต่ 0 ^ 0 ไม่แน่นอน) นี่คือโค้ดกอล์ฟซึ่งมีจำนวนน้อยที่สุดที่จะชนะ ตัวอย่าง In 0 -> Out 1 Possible Sum: In 1 -> Out 2 Possible …

5
ทำให้หมายเลขใด ๆ โดยเพิ่มหมายเลข 2 ซ้ำ ๆ
คุณจะได้รับเครื่องที่มีสองลงทะเบียน 16 บิตและx yลงทะเบียนจะเริ่มต้นและx=1 y=0การดำเนินการเพียงอย่างเดียวที่เครื่องสามารถทำได้คือการเพิ่มโมดูโล 65536 นั่นคือ: x+=y- xถูกแทนที่ด้วย(x + y) mod 65536; yไม่เปลี่ยนแปลง y+=x - ในทำนองเดียวกันสำหรับ y x+=x- xถูกแทนที่ด้วย2x mod 65536; ถูกกฎหมายเฉพาะในกรณีที่xเป็นแม้กระทั่ง y+=y - ในทำนองเดียวกันสำหรับ y เป้าหมายคือการรับจำนวนที่กำหนดไว้ในหนึ่งในการลงทะเบียน (อย่างใดอย่างหนึ่งxหรือy) เขียนโปรแกรมหรือรูทีนย่อยที่ได้รับหมายเลข (ในstdin,, argvพารามิเตอร์ฟังก์ชั่น, ด้านบนของสแต็กหรือสถานที่ทั่วไปอื่น ๆ ) และส่งออกโปรแกรมเพื่อรับหมายเลขนี้ เอาต์พุตควรไปที่stdoutหรือ (หากภาษาของคุณไม่มีstdout) ไปยังอุปกรณ์เอาต์พุตทั่วไปอื่น ๆ โปรแกรมเอาต์พุตสามารถมีได้สูงสุด 100% บวกกับ 2 ขั้นตอนจากขั้นตอนที่เหมาะสมที่สุด นั่นคือถ้าโปรแกรมที่สั้นที่สุดที่จะได้รับจำนวนเป้าหมายมีขั้นตอนวิธีการแก้ปัญหาของคุณไม่สามารถจะยาวกว่าn 2n+2ข้อ จำกัด นี้คือการหลีกเลี่ยงการแก้ปัญหา "ง่ายเกินไป" …

4
ได้เวลาทำคณิตศาสตร์แล้ว
บทนำ นี่คือปริศนาทางคณิตศาสตร์ที่ฉันโปรดปราน ให้ตัวเลข (พูด 3) และจำนวนครั้งที่ใช้ตัวเลขนั้น (พูด 5) สร้าง 10 นิพจน์ซึ่งทำให้ 1, 2, 3, 4, 5, 6, 7, 8, 9 และ 10 ใช้เพียง +, -, ×, ÷, ^ และ√ (รูท) (วงเล็บอนุญาตให้ใช้งานกลุ่ม) ตัวอย่างเช่น: (3^3 + 3)/(3 + 3) = (33 - 3)/(3 + 3) = 3 + 3/3 + 3/3 = …

4
ไม่มีการแตกแขนง
ใครก็ตามที่อยู่ในระดับปานกลางถึงการเพิ่มประสิทธิภาพโค้ดระดับต่ำรู้เกี่ยวกับภัยของการแตกแขนงไม่ว่าจะเป็นการใช้คำสั่งลูปหรือคำสั่งที่เลือกความเป็นไปได้ของการคาดคะเนสาขาเป็นสิ่งที่น่ากลัวมาก ปัญหาง่าย ๆ สามารถแก้ไขได้ดีกว่าด้วยการคำนวณทางคณิตศาสตร์อย่างง่ายลองทำกันเถอะ สำหรับปัญหาต่อไปนี้ตัวแปรทั้งหมดเป็นจำนวนเต็ม 32 บิตที่ไม่ได้ลงชื่อและรหัสที่อนุญาตเท่านั้นคือชุดคำสั่งธรรมดาที่เกี่ยวข้องกับตัวดำเนินการต่อไปนี้เท่านั้น: + addition - subtraction * multiplication / integer division, rounds down, division by 0 not allowed % modulo & binary and | binary or ^ binary exclusive or >> bitshift right << bitshift left Logic operators, return 1 if the expression is true …

30
กู้กำลังสำคัญจากพลังพิเศษ
คำจำกัดความ : พลังพิเศษเป็นจำนวนธรรมชาติที่สามารถแสดงในรูปแบบ p nโดยที่ p คือจำนวนเฉพาะและ n เป็นจำนวนธรรมชาติ ภารกิจ : เมื่อได้รับพลังพิเศษ p n > 1 ให้คืนค่านายกรัฐมนตรี ทดสอบ : input output 9 3 16 2 343 7 2687 2687 59049 3 เกณฑ์การให้คะแนน : นี่คือรหัสกอล์ฟ คำตอบที่สั้นที่สุดในการชนะไบต์
13 code-golf  arithmetic  primes  king-of-the-hill  python  board-game  code-golf  number  subsequence  code-golf  ascii-art  code-golf  array-manipulation  decision-problem  grid  fastest-algorithm  logic-gates  logic  code-golf  cards  code-golf  rational-numbers  code-golf  math  number  sequence  code-golf  array-manipulation  integer  code-golf  number  array-manipulation  code-golf  number  sequence  decision-problem  code-golf  ascii-art  number  code-challenge  sequence  arithmetic  sorting  code-golf  date  fastest-algorithm  code-golf  string  number  random  combinatorics  code-golf  combinatorics  code-golf  ascii-art  base-conversion  code-golf  array-manipulation  code-golf  string  code-golf  string  number  arithmetic  code-golf  kolmogorov-complexity  code-golf  string  array-manipulation  json  code-golf  puzzle-solver  code-golf  binary  graph-theory  code-golf  arithmetic  haskell  code-golf  string  cipher  code-golf  code-golf  string  parsing  alphabet  code-golf  string  code-golf  ascii-art  code-golf  string  number  code-golf  string  balanced-string 

13
วงจรเลขคณิต
การป้อนข้อมูล: จำนวนเต็มnซึ่งเป็น>=0หรือ>=1( f(0)เป็นตัวเลือก) เอาท์พุท: หมายเลขn'ตามลำดับด้านล่างหรือลำดับจนถึงและรวมถึงnหมายเลข' ลำดับ: (0),1,-1,-3,0,5,-1,-7,0,9,-1,-11,0,13,-1,-15,0,17,-1,-19,0,21,-1,-23,0,25,-1,-27,0,29,-1,-31,0,33,-1,-35,0,37,-1,-39,0,41,-1,-43,0,45,-1,-47,0,49,-1,-51,0,53,-1,-55,0,57,-1,-59,0,61,-1,-63,0,65,-1,-67,0,69,-1,-71,0,73,-1,-75,0,77,-1,-79,0,81,-1,-83,0,85,-1,-87,0,89,-1,-91,0,93,-1,-95,0,97,-1,-99 ลำดับนี้สร้างอย่างไร f(n=0) = 0(อุปกรณ์เสริม) f(n=1) = f(0) + nหรือf(n=1) = 1 f(n=2) = f(1) - n f(n=3) = f(2) * n f(n=4) = f(3) / n f(n=5) = f(4) + n อื่น ๆ หรือในรหัสหลอก: function f(integer n){ Integer result = 0 Integer i …

25
คำนวณ Divmod ด้านบน
งาน รับจำนวนเต็มบวกสองตัว ( หารe nd และ divis o r) ให้คำนวณq uotient และr emainder ปกติมันจะคำนวณเป็นe = o*q+rที่และq*o<=e สำหรับความท้าทายนี้ก็ยังคงแต่และ ตัวอย่างและปกติก็จะเป็นตั้งแต่และ ที่นี่จะเป็นที่ไหนและ0<=r<oe = o*q+rq*o>=e-o<r<=0e=20o=320/3 -> 20=3*6+218<=200<=2<320/3 -> 20=3*7-121>=20-3<-1<=0 กรณีทดสอบ Input -> Output 20, 3 -> 7, -1 10, 5 -> 2, 0 7, 20 -> 1, -13 100, 13 -> 8, -4 o=0คุณไม่จำเป็นต้องจับ

10
ตัวเลขสมดุลสามชั้น
ลักษณะ เราพิจารณาจำนวนเต็มอย่างน้อย 3 หลักที่มีความสมดุลสามเท่าหากเมื่อแบ่งออกเป็นสามส่วนตัวเลขในทุกส่วนจะรวมกันเป็นจำนวนเดียวกัน เราแบ่งตัวเลขดังนี้: abcdefghi - Standard case: the number of digits is divisable through 3: abc def ghi abcdefgh - Number % 3 == 2: The outer groups are both assigned another digit abc de fgh (the inner group will have one digit less than both outer groups) …

4
ประเมินเสาพลังงานแบบแยกส่วน
ให้สองตัวเลข n และ m, ประเมินหอพลังอนันต์: n ^ (n + 1) ^ (n + 2) ^ (n + 3) ^ (n + 4) ^ ... mod m โปรดทราบว่า ^ มีความสัมพันธ์ที่ถูกต้อง ดังนั้น 2 ^ 3 ^ 4 = 2 ^ (3 ^ 4) ทีนี้คุณจะสามารถกำหนดค่าให้กับตัวดำเนินการเชื่อมโยงแบบไม่สิ้นสุดได้อย่างไร กำหนด f (n, m, i) เป็นหอส่งกำลังไฟฟ้าที่บรรจุเทอมแรกของหอส่งกำลังไม่มีที่สิ้นสุด จากนั้นก็มีค่าคงที่ C …

1
ช่วยGödelด้วยฟังก์ชั่น [ของเขา [ปิด]
ปิด คำถามนี้ต้องการรายละเอียดหรือความคมชัด ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ เพิ่มรายละเอียดและชี้แจงปัญหาโดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา ฟังก์ชันöของGödelใช้ตัวเลขธรรมชาติสามตัวเป็นอาร์กิวเมนต์ มันถูกกำหนดให้เป็น β(x,y,z) = rem(x, 1 + (z + 1) · y) = rem(x, (z · y + y + 1) ) โดยที่ rem (a, b) หมายถึงส่วนที่เหลือหลังจากการหารจำนวนเต็มของ a โดย b βเล็มม่ากล่าวว่า: สำหรับลำดับตัวเลขธรรมชาติใด ๆ (k_0, k_1, …, k_n) มีจำนวนธรรมชาติ b และ c เช่นนั้นสำหรับทุก ๆ …

26
ค้นหาจำนวนเต็มสองจำนวนจากรายการที่ไม่ได้เรียงลำดับเพื่อรวมเข้ากับอินพุต
นี่คือคำถามสัมภาษณ์ของ Google ดูที่นี่สำหรับลิงค์ youtube งาน: ค้นหา 2 จำนวนเต็มจากรายการที่ไม่ได้เรียงลำดับซึ่งรวมเป็นจำนวนเต็มที่กำหนด ให้ลิสต์รายการจำนวนเต็มที่ไม่มีการเรียงลำดับค้นหา 2 จำนวนเต็มที่รวมกับค่าที่กำหนดพิมพ์จำนวนเต็ม 2 จำนวนเหล่านี้และระบุความสำเร็จ (ออก 0) พวกเขาไม่จำเป็นต้องเป็นตัวเลขใด ๆ (เช่นจำนวนเต็ม 2 ตัวแรกที่รวมกับหมายเลขที่ถูกต้อง) คู่ใด ๆ ที่ผลรวมของค่าจะทำงาน จำนวนเต็มบวกและมากกว่าศูนย์ รายการจำนวนเต็มสามารถอยู่ในโครงสร้างข้อมูลใด ๆ รวมถึงไฟล์จำนวนเต็ม - หนึ่งจำนวนเต็มต่อบรรทัด หากไม่พบจำนวนเต็มให้ระบุความล้มเหลว (ออก 1) ต้องส่งคืนจำนวนเต็มสองจำนวนที่ตำแหน่งต่างกันในรายการ (เช่นคุณไม่สามารถส่งคืนหมายเลขเดิมจากตำแหน่งเดิมสองครั้ง) (หมายเหตุ: ในวิดีโอสิ่งเหล่านี้ไม่ตรงตามข้อกำหนด 'ผู้สัมภาษณ์' เปลี่ยนหลายครั้งของเขา) เช่น. sum2 8 <<EOF 1 7 4 6 5 3 8 2 …

23
การตอบรับสาย - ตัวหารที่เป็นบวกของตัวเลข
นี้คำตอบผูกมัดความท้าทายอย่างเป็นทางการมากกว่าผลในการชนะของข้าวสาลีช่วยสร้างมีทั้งหมด 7 คำตอบ คำตอบอื่น ๆ ยินดีต้อนรับ แต่จะไม่มีผลต่อคำตอบที่ยอมรับสำหรับความท้าทายนี้หรือผู้ชนะ งาน: พิมพ์ตัวหารที่เป็นบวกทั้งหมดของตัวเลขที่xนำมาเป็นอินพุต การป้อนข้อมูล: หมายเลขเดียวxซึ่งเป็นตัวเลข (ในฐาน 10) ที่มีตัวหารแบบบวกควรคำนวณ เอาท์พุท: xทั้งหมดหารบวกของ รูปแบบใด ๆ ที่ได้รับอนุญาตรวมทั้ง\n, ,, ;และช่องว่างเป็นตัวคั่นตราบใดที่มันเป็นที่เข้าใจ เอาท์พุทสามารถเป็นอาร์เรย์ของจำนวนเต็มหรือสตริงเกินไป (เช่น[1, 2, 3, 5, 30]) คุณอาจจะส่งออกหารเพื่อstdout คอนโซลหรือเทียบเท่าในภาษาของคุณหรือพวกเขาสามารถกลับมาจากฟังก์ชั่น กฎระเบียบ ผู้ใช้ไม่สามารถตอบสองครั้งติดต่อกัน คำตอบของคุณอาจลบเพิ่มหรือแทนที่อักขระได้สูงสุด15ตัวจากคำตอบก่อนหน้า (ไม่นับช่องว่าง) นอกจากคำตอบ 2ซึ่งสามารถ "แปลง" ได้สูงสุด20ตัวอักษรเพื่อให้ทุกอย่างเริ่มต้น คุณไม่ได้รับอนุญาตให้โพสต์คำตอบในภาษาการเขียนโปรแกรมที่มีคำตอบอยู่แล้วยกเว้นเป็นรุ่นที่แตกต่างอย่างสิ้นเชิงของภาษานั้น (เช่น: ถ้าฉันโพสต์คำตอบPython 2.7คุณสามารถส่งหนึ่งในPython 3แต่ไม่ใช่ในPython 2.6) ไม่อนุญาตช่องโหว่มาตรฐาน คุณไม่ได้รับอนุญาตให้ใช้บิวด์อินเพื่อรับตัวหารเพื่อความท้าทายนี้ คุณต้องใส่หมายเลขคำตอบและชื่อภาษาในชื่อคำถามและจำนวนตัวอักษรที่เปลี่ยนไปจากคำตอบก่อนหน้า เกณฑ์การให้คะแนน ผู้ใช้ที่มีการส่งมากที่สุดเมื่อสิ่งชนะ ในกรณีที่เสมอกันผู้ใช้ที่มีคะแนนสูงสุดในคำตอบข้อใดข้อหนึ่งจะชนะ หากมีคะแนนเท่ากันผู้ใช้ที่มีการส่งคำตอบที่เก่าที่สุด …

11
ตีความช่วงหลวม
ตีความช่วงหลวม ListSharpเป็นภาษาการเขียนโปรแกรมตีความที่มีคุณสมบัติมากมายหนึ่งในคุณสมบัติเหล่านั้นเป็นผู้สร้างช่วงดัชนี 1 ที่ทำงานเช่นนี้: คุณกำหนดช่วงเป็น(INT) TO (INT)หรือ(INT)ที่ทั้งสองหรือ int เดียวสามารถไปจากค่า min ถึงmax int32 จากนั้นคุณสามารถใช้ช่วงเหล่านั้นเพื่อแยกองค์ประกอบของอาร์เรย์โดยไม่ต้องกลัวที่จะก้าวล้ำขอบเขตของมัน ดังนั้น: 1 TO 5 สร้าง: {1,2,3,4,5} 3 สร้าง: {3} สามารถเพิ่มช่วงได้โดยใช้ANDโอเปอเรเตอร์ 1 TO 5 AND 3 TO 6 สร้าง: {1,2,3,4,5,3,4,5,6} จำได้ว่ามันใช้ได้กับจำนวนลบเช่นกัน 3 TO -3 สร้าง: {3,2,1,0,-1,-2,-3} ความท้าทายมีดังต่อไปนี้: อินพุต อาร์เรย์อักขระและประโยคช่วงที่กำหนดไว้ก่อนหน้าเป็นสตริง เอาท์พุต องค์ประกอบที่ 1 ตามดัชนีตำแหน่งของช่วง (ดัชนีที่ไม่อยู่ / ลบที่มีอยู่แปลเป็นอักขระว่าง) วิธีที่จะชนะ ในฐานะที่เป็นความท้าทายของcode-golfคุณควรสร้างโปรแกรมด้วยจำนวนไบต์ที่สั้นที่สุดที่จะชนะ …
13 code-golf  array-manipulation  parsing  code-golf  string  ascii-art  kolmogorov-complexity  code-challenge  code-golf  sequence  code-golf  number  array-manipulation  sorting  code-golf  string  function  code-golf  arithmetic  code-golf  math  sequence  number-theory  primes  restricted-source  javascript  code-challenge  polyglot  rosetta-stone  code-golf  code-golf  regular-expression  code-golf  math  code-golf  math  primes  code-golf  ascii-art  kolmogorov-complexity  binary  code-golf  math  sequence  code-golf  sequence  subsequence  code-golf  string  code-golf  parsing  music  code-golf  grid  game  path-finding  board-game  code-golf  string  binary  code-golf  array-manipulation  balanced-string  code-golf  code-golf  algorithm  code-golf  string  number  arithmetic  array-manipulation  code-golf  array-manipulation  binary-tree  tree-traversal  code-golf  code-golf  tips  code-golf  string  base-conversion  code-golf  tips  s.i.l.o.s  code-golf  string  ascii-art  code-golf  code-challenge  code-golf  game 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.