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

Palindromes เป็นคำวลีตัวเลขหรือเวลาที่อ่านกลับกันเช่น "level", "reviver", "12321", "10:01" ดูเพิ่มเติมที่แท็ก [สมดุลสตริง]

15
แปลงโปรแกรมเป็นโปรแกรม palindromic
palindromeเป็นสตริงที่เป็นไปข้างหน้าและข้างหลังเดียวกันเช่น "รถแข่ง" a เขียนโปรแกรมในภาษา L ซึ่งใช้โปรแกรม P1 ใด ๆ ในภาษา L เป็นอินพุตและส่งเอาต์พุตโปรแกรม palindromic P2 ในภาษา L ที่ทำเช่นเดียวกับ P1 คุณไม่จำเป็นต้องกังวลเกี่ยวกับการจัดการโปรแกรมอินพุตด้วยข้อผิดพลาดทางไวยากรณ์ นี่คือโค้ดกอล์ฟดังนั้นคำตอบที่มีจำนวนไบต์น้อยที่สุดจะเป็นผู้ชนะ

5
Binary Convolution
บิดไบนารีอธิบายโดยตัวเลขและถูกนำไปใช้เป็นจำนวนมากM Nสำหรับแต่ละบิตในการแทนค่าไบนารี่ของMถ้าบิตถูกตั้งค่า ( 1) บิตที่สอดคล้องกันในเอาต์พุตจะถูกกำหนดโดย XOR โดยสองบิตที่อยู่ติดกับบิตที่สอดคล้องกันในN(ล้อมรอบเมื่อจำเป็น) หากบิตไม่ได้ตั้งค่า ( 0) Nแล้วบิตที่สอดคล้องกันในการส่งออกจะได้รับจากบิตที่สอดคล้องกันใน ตัวอย่างการทำงาน (ที่มีค่า 8 บิต): อนุญาตN = 150, M = 59. respresentations ไบนารีของพวกเขา (ตามลำดับ) และ1001011000111011 ขึ้นอยู่กับการMเป็นตัวแทนไบนารีของบิต 0, 1, 3, 4 และ 5 มีการ convolved ผลการบิต 0 จะได้รับโดย XORing บิต 1 และ 7 (เนื่องจากเราห่อรอบ) 1ยอม ผลสำหรับบิต 1 จะได้รับโดย XORing บิต 0 …
15 code-golf  binary  integer  bitwise  code-golf  rational-numbers  code-golf  string  palindrome  code-golf  ascii-art  code-golf  code-golf  string  fibonacci  code-golf  math  sequence  code-golf  code-golf  string  palindrome  code-golf  string  code-golf  math  primes  source-layout  code-golf  sequence  binary  integer  code-golf  math  arithmetic  game  code-golf  restricted-source  palindrome  code-golf  restricted-source  palindrome  code-golf  combinatorics  binary  code-golf  string  math  code-golf  ascii-art  number  code-golf  cipher  code-golf  base-conversion  counting  code-golf  sequence  random  classification  code-golf  string  subsequence  code-golf  permutations  code-golf  string  code-golf  string  cipher  code-golf  kolmogorov-complexity  arithmetic  integer  code-golf  quine  markov-chain  code-golf  string  code-golf  code-golf  ascii-art  maze 

12
ต่อกันเป็น Palindrome จาก Substrings Palindromic
รับสตริงlค้นหาสตริงย่อย palindromic ทั้งหมดpของl(รวมถึงรายการซ้ำและสตริงอักขระเดี่ยว) ถัดไปจัดเรียงสตริงย่อยทั้งหมดใหม่pให้เป็นพาลินโดรมที่ถูกต้อง (อาจมีคำตอบที่ถูกต้องหลายข้อ) ถ้ามันเป็นไปไม่ได้ที่จะจัดเรียงใหม่pใน palindrome เดียวโปรแกรมของคุณอาจมีพฤติกรรมที่ไม่ได้กำหนด (ข้อผิดพลาดสแต็ค - ล้น, ออก, แขวน / / ฆ่า John Dvorak ฯลฯ โดยไม่ได้ตั้งใจ) ตัวอย่าง กรณีทดสอบที่ถูกต้อง l = anaa p = ['a', 'n', 'a', 'a', 'aa', 'ana'] result = anaaaaana or aanaaanaa or aaananaaa l = 1213235 p = ['1', '2', '1', '3', '2', …

9
Palindromic Primes ที่ไม่มี 11
ทุก palindrome ที่มีจำนวนคู่จะหารด้วย 11 ดังนั้น 11 จึงเป็น [palindromic prime] เดียวที่มีตัวเลขเป็นเลขคู่ - David Wasserman, OEIS ฉันเรียนรู้สิ่งนี้ด้วยตนเองในวันนี้ก่อนที่ฉันจะทำการวิจัยของฉันเมื่อโปรแกรมของฉันข้ามตัวเลขด้วยจำนวนเลขคู่ (ยกเว้น 11) เมื่อคำนวณจำนวนพาลมาโดมิก งานของคุณ: สร้างโปรแกรมหรือฟังก์ชั่นที่เมื่อได้รับอินพุตจำนวนเต็ม N แล้วจะส่งออกคำศัพท์ที่ N ใน Palindromic Sequence ™ของ Stephen Palindromic Sequence ™ของสตีเฟ่น Palindromic Sequence ™ของสตีเฟ่นเริ่มต้นด้วย 11 และดำเนินการต่อด้วยการหารด้วยpalindromic semiprimes 11 โดยพื้นฐานแล้ว semiprimes ทั้งหมดที่จะเป็นค่าเฉพาะหาก 11 ไม่ได้ "นับ" คว่ำคือรายการนี้มีตัวเลขที่มีจำนวนหลัก! เย้. และตัวเลขจำนวนมากที่มีตัวเลขคี่จะถูกข้ามไปเนื่องจากมันเป็นจำนวนเฉพาะ จุดเริ่มต้นของลำดับ: 1 : …

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เริ่มสายโซ่ประเภทที่ฉันมีความยาว …

15
Logic Gates ด้วยตนเอง
สร้างโปรแกรมที่จำลองประตูตรรกะพื้นฐาน การป้อนข้อมูล:ทุกคำหมวกตามด้วยเลขฐานสอง 2 1 OR 1 0บาทคั่นด้วยช่องว่างเช่น ประตูOR, AND, NOR, NAND, XORและXNORมีความจำเป็น เอาท์พุท:สิ่งที่เอาท์พุทของประตูตรรกะที่ป้อนจะได้รับตัวเลขสอง: 1 หรือ 0 ตัวอย่าง: AND 1 0กลาย0 XOR 0 1เป็น1 OR 1 1กลาย1 NAND 1 1เป็นกลายเป็น0 นี่คือ codegolf ดังนั้นรหัสที่สั้นที่สุดชนะ
13 code-golf  logic-gates  hashing  code-golf  code-golf  number  array-manipulation  integer  code-golf  string  unicode  text-processing  cops-and-robbers  boggle  cops-and-robbers  boggle  code-golf  ascii-art  code-golf  word-puzzle  king-of-the-hill  python  code-golf  sequence  kolmogorov-complexity  code-golf  source-layout  code-golf  string  kolmogorov-complexity  math  number  code-golf  date  code-golf  combinatorics  recursion  game  king-of-the-hill  javascript  code-golf  array-manipulation  code-golf  radiation-hardening  self-referential  code-golf  integer  code-golf  number  code-golf  set-theory  code-golf  sequence  code-golf  string  sorting  natural-language  code-golf  decision-problem  number-theory  primes  code-golf  code-golf  ascii-art  code-challenge  array-manipulation  sorting  rubiks-cube  regular-expression  code-golf  counting  file-system  recursion  code-golf  string  kolmogorov-complexity  color  code-golf  game  code-challenge  permutations  encode  restricted-time  decode  code-golf  math  decision-problem  matrix  integer  palindrome  code-golf  matrix  statistics  king-of-the-hill  king-of-the-hill  python  card-games  code-golf  string  natural-language  code-golf  sequence  number-theory 

16
จำนวนการเปลี่ยนลำดับสตริงที่เป็น palindromes
ข้อมูลที่คุณป้อนจะเป็นสตริงที่ประกอบด้วยตัวอักษรภาษาอังกฤษตัวเล็ก ๆ งานของคุณคือกำหนดจำนวนพีชคณิตที่แตกต่างกันของสตริงดั้งเดิมที่เป็นแบบ palindrome สตริงอินพุตมีได้สูงสุด 100 ตัวอักษร ในกรณีของสตริงที่ยาวกว่าผลลัพธ์อาจมีขนาดใหญ่มากดังนั้นผลลัพธ์ควรเป็นจำนวนการเรียงสับเปลี่ยนโมดูโล 666013 ตัวอย่างเช่น, cababaa -> 3 การเรียงสับเปลี่ยนที่เป็นไปได้คือ: aabcbaa abacaba baacaab นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุดชนะ!

14
แพดไฟล์ด้วยค่าศูนย์
งานของคุณในวันนี้คือการใช้ไฟล์ที่มีอยู่และต่อท้ายศูนย์จนถึงขนาดที่กำหนด คุณต้องเขียนโปรแกรมหรือฟังก์ชั่นซึ่งใช้ชื่อของไฟล์ในไดเรกทอรีปัจจุบันที่และจำนวนของไบต์f bในขณะที่รักษาเนื้อหาต้นฉบับของfคุณจะต้องเขียนเลขศูนย์(null null ไม่ใช่ ascii 0s)ไปยังจุดสิ้นสุดเพื่อให้ขนาดใหม่เป็นbไบต์ คุณอาจคิดว่าfมีเพียงตัวอักษรและตัวเลขในชื่อที่คุณได้รับอนุญาตเต็มรูปแบบว่าในตอนแรกมันไม่ใหญ่กว่าbแต่อาจจะมีขนาดใหญ่เท่าbและมีพื้นที่ว่างที่ไม่มีที่สิ้นสุด คุณอาจไม่ถือว่าfไม่ว่างเปล่าหรือไม่มีไบต์เป็นศูนย์อยู่ ไม่ควรแก้ไขไฟล์ที่มีอยู่อื่นและไฟล์ใหม่ไม่ควรมีอยู่หลังจากสิ้นสุดการประมวลผล กรณีทดสอบ เนื้อหาของ f | b | ส่งผลให้เนื้อหาของ f 12345 | 10 | 1234500000 0 | 3 | 000 [ว่าง] | 2 | 00 [ว่าง] | 0 | [ว่าง] 123 | 3 | 123
12 code-golf  file-system  code-golf  code-golf  string  code-golf  string  code-golf  random  game  compression  code-golf  array-manipulation  sorting  code-golf  number  arithmetic  primes  code-golf  geometry  code-golf  code-golf  decision-problem  regular-expression  code-golf  string  math  code-challenge  restricted-source  integer  palindrome  code-golf  string  palindrome  code-challenge  busy-beaver  code-golf  ascii-art  code-golf  string  code-golf  string  permutations  code-golf  code-golf  string  permutations  code-golf  number  primes  function  set-theory  code-challenge  hello-world  code-golf  math  number  decision-problem  code-golf  code-golf  sequence  arithmetic  integer  code-golf  math  number  arithmetic  decision-problem  code-golf  kolmogorov-complexity  alphabet  code-golf  combinatorics  graph-theory  tree-traversal  code-golf  set-theory  code-golf  interpreter  brainfuck  substitution  code-golf  quine  permutations 

2
ตีความ Kipple!
บทนำ Kippleเป็นภาษาการเขียนโปรแกรมแบบกองซ้อนซึ่งเป็นความลับที่คิดค้นโดย Rune Berg ในเดือนมีนาคม 2003 Kipple มี 27 กอง 4 ตัวดำเนินการและโครงสร้างการควบคุม สแต็ค สแต็กถูกตั้งชื่อa- zและมีจำนวนเต็ม 32 บิต นอกจากนี้ยังมีสแต็กพิเศษ@เพื่อให้หมายเลขเอาต์พุตสะดวกยิ่งขึ้น เมื่อตัวเลขถูกส่งเข้าสู่@ค่า ASCII ของตัวเลขนั้นจะถูกผลักเข้าไปแทน (ตัวอย่างเช่นหากคุณกด 12 ถึง@จะได้ 49 และ 50 @แทน) อินพุตถูกส่งไปยังอินพุตสแต็กiก่อนที่โปรแกรมจะถูกดำเนินการ ล่ามจะถามหาค่าที่จะจัดเก็บiก่อนดำเนินการ หลังจากการดำเนินการเสร็จสิ้นสิ่งใดในเอาท์พุทสแต็คoจะถูกตอกไปยังเอาท์พุทเป็นตัวอักษร ASCII เนื่องจากนี่เป็นเพียงกลไก IO ของ Kipple เท่านั้นการโต้ตอบกับโปรแกรม Kipple จึงเป็นไปไม่ได้ ผู้ประกอบการ ตัวถูกดำเนินการเป็นทั้งตัวระบุสแต็กหรือจำนวนเต็ม 32 บิตลงนาม กด: >หรือ< ไวยากรณ์: Operand>StackIndentifierหรือStackIndentifier<Operand ตัวดำเนินการพุชนำตัวถูกดำเนินการไปทางซ้ายแล้วผลักไปยังสแต็กที่ระบุ ตัวอย่างเช่น12>aจะส่งค่า 12 …
12 code-golf  interpreter  code-golf  string  code-golf  math  string  code-golf  ascii-art  path-finding  code-golf  string  ascii-art  code-golf  interpreter  binary  logic-gates  logic  code-golf  ascii-art  code-golf  graph-theory  code-golf  string  code-golf  number  sorting  code-golf  number-theory  random  cryptography  polynomials  code-golf  number  code-golf  math  number  sequence  code-golf  quine  code-generation  code-golf  arithmetic  set-theory  code-golf  sequence  code-golf  code-golf  string  math  fastest-code  optimization  code-golf  code-golf  internet  stack-exchange-api  code-golf  array-manipulation  code-golf  string  internet  string  code-challenge  internet  test-battery  code-golf  math  pi  code-golf  arithmetic  primes  code-golf  array-manipulation  code-golf  string  code-golf  string  palindrome  code-golf  sequence  number-theory  fastest-algorithm  code-golf  math  number  base-conversion  code-golf  number-theory  sorting  subsequence  search  code-golf  permutations  code-challenge  popularity-contest  code-generation 

13
ทำตัวเลข palindrome
เขียนฟังก์ชั่นที่ใช้ตัวเลขเป็นอาร์กิวเมนต์และทำให้เป็น palindrome โดยต่อท้ายจำนวนหลักขั้นต่ำ จำนวนจะต้องไม่เกิน 100 หลัก Sample Inputs 12 122 232 2323 1012121 Sample Outputs 121 1221 232 23232 101212101

12
แสดงรายการวันที่นายก palindromic ทั้งหมดระหว่าง 0000-01-01 และ 99999-12-31
คุณรู้ว่าpalindrome , primeและdateคืออะไร งานของคุณคือการแสดงรายการวันที่ทั้งหมดใน 100 พันปีที่สอดคล้องกับทั้งสามลักษณะ ไม่เป็นไรอะไร แต่ตัวเลขที่ใช้รูปแบบต่อไปนี้: YYYYMMDDและYYYYYMMDD วันที่ระหว่าง 0000-01-01 ถึง 9999-12-31 ควรพิมพ์เป็นวันที่ 8 หลักของ palindromes (หากมีหรือไม่) และวันที่ระหว่าง 10,000-01-01 ถึง 99999-12-31 ควรพิมพ์เป็นpalindromes 9 หลัก ไม่จำเป็นต้องระบุรายการวันที่ตามลำดับเวลา ตัวอย่างส่วนหนึ่งของผลลัพธ์ที่ถูกต้อง สามครั้งแรกวันที่ palindromic นายก 9 หลัก: ... 100111001 100131001 100161001 ... กฎระเบียบ ช่องโหว่มาตรฐานใช้

2
ตีความการทำซ้ำ!
ความท้าทายนี้เป็นครั้งแรกในซีรีส์สองความท้าทายเกี่ยวกับการทำซ้ำ วินาทีจะเพิ่มขึ้นในไม่ช้า ในภาษาที่เรียกว่า Repetition (สิ่งที่ฉันเพิ่งสร้างขึ้น) ประกอบด้วยสตริงที่ไม่มีที่สิ้นสุดของที่12345678901234567890...มีการ1234567890ทำซ้ำตลอดไป ไวยากรณ์ต่อไปนี้มีให้สำหรับหมายเลขเอาต์พุต: +-*/: สิ่งนี้จะแทรกโอเปอเรเตอร์ในสตริงของตัวเลขที่ซ้ำกัน ตัวอย่าง: +-> 1+2= 3( +แทรก+ระหว่าง1และ2) +*-> 1+2*3= 1+6= 7(เหมือนข้างบนยกเว้นใช้ตัวดำเนินการสองตัวในขณะนี้) /-> 1/2= 0(การทำซ้ำใช้การหารจำนวนเต็ม) //-> 1/2/3= 0/3= 0(การทำซ้ำใช้ "การเชื่อมโยงด้านซ้าย" พร้อมการลบและการหารหลายรายการ) ผู้ให้บริการแต่ละรายจะถูกแทรกเพื่อให้มีหนึ่งหลักทางด้านซ้ายยกเว้นว่ามีc(ดูด้านล่าง) c: เชื่อมต่อกับตัวเลขถัดไปในสตริง ตัวอย่าง: c+-> 12+3= 15( c"ต่อไป" 1และเชื่อมต่อกับตัวเลขถัดไป2เพื่อจัดรูปแบบ12) +c-> 1+23=24 ccc -> 1234 (): วงเล็บสำหรับการประมวลผลหมายเลข ตัวอย่าง: (c+)*-> (12+3)*4= 15*4= 60(การทำซ้ำใช้ลำดับของการดำเนินการ) (c+)/c-> (12+3)/45= …

1
Polyglot ที่ไม่ใช่ Palindromic
บทนำ หมายเลข 101 เป็น palindrome เนื่องจากจะอ่านไปข้างหน้าและข้างหลังเหมือนกัน หมายเลข 105 ไม่ใช่ อย่างไรก็ตาม 105 ในฐานแปดเขียนเป็น 151 ซึ่งเป็น palindromic บนมืออื่น ๆ 103 ไม่ได้เป็น palindrome ในใด ๆฐานตั้งแต่ 2 ถึง 101 ดังนั้น 103 อย่างเคร่งครัดไม่ใช่ palindromic คำจำกัดความที่แม่นยำคือ: จำนวนเต็มที่ไม่ใช่ค่าลบnเป็นค่าที่ไม่ใช่พาลินโดรมิกอย่างเคร่งครัดหากไม่ได้เป็น palindrome ในฐานระหว่าง 2 ถึง n-2 หมายเลขแรกที่ไม่ใช่ตัวเลข palindromic อย่างเคร่งครัดคือ0, 1, 2, 3, 4, 6, 11, 19, 47, 53, 79, 103, …

20
ตรวจสอบว่าจำนวนเต็มเป็น palindrome ใน radix ที่กำหนด (ฐาน)
เขียนโปรแกรมที่อ่านจาก stdin สองจำนวนเต็มแต่ละบรรทัดใหม่ถูกยกเลิกหลังจากนี้เรียกว่า "number" และ "radix" และ: พิมพ์ข้อความการแก้ไขใด ๆ ที่คุณต้องการถ้าตัวเลขเป็น palindrome ในสมุฎฐานที่ (เช่นtrue, t, 1) พิมพ์ข้อความใด ๆ ที่แตกต่างกันคงที่คุณต้องการถ้าจำนวนไม่ได้เป็น palindrome ในสมุฎฐานที่ (เช่นfalse, f, 0ฯลฯ ) ข้อความเหล่านี้จะต้องเหมือนกันต่อการวิ่งแต่ละครั้ง แต่ไม่มีกฎเกี่ยวกับสิ่งที่พวกเขาจะต้อง (สิ่งที่ดีที่สุดสำหรับการเล่นกอล์ฟ) คุณอาจจะสมมติว่าอินพุตนั้นถูกต้องซึ่งเป็นจำนวนเต็มบวกสองตัว "จำนวน" จะไม่เกิน2147483647"กี่" 32767จะไม่เกิน คุณไม่สามารถใช้ทรัพยากรภายนอกได้ แต่คุณสามารถใช้ฟังก์ชันคณิตศาสตร์ใดก็ได้ที่มีให้โดยค่าเริ่มต้นในภาษาของคุณ หมายเหตุ: radix เป็นเพียงฐานของตัวเลข ตัวอย่างการวิ่ง: 16 10 false 16 3 true 16 20 true 121 10 true 5 …

24
บิชอป
มาจากสิ่งนี้ลบโพสต์แล้ว ให้สตริงคำตอบ (ความจริง / เท็จหรือค่าที่สอดคล้องกันสองค่า) ถ้ามันถือว่าเป็นรหัสผ่านบิชอปที่ดีซึ่งเป็นเมื่อตรงตามเงื่อนไขต่อไปนี้ทั้งหมด: มันมีอย่างน้อย 10 ตัวอักษร มันมีอย่างน้อย 3 หลัก ( [0-9]) มันไม่ใช่ palindrome (เหมือนกับตัวมันเองเมื่อกลับด้าน) คุณจะได้รับโบนัส 0 ไบต์หากรหัสของคุณเป็นรหัสผ่านบิชอปที่ดี คำเตือน: Do ไม่ใช้ความดีบิชอปเป็นตัวชี้วัดความแข็งแรงของรหัสผ่านที่เกิดขึ้นจริง! ตัวอย่าง รหัสผ่านบิชอปที่ดี PPCG123GCPP PPCG123PPCG PPCG123gcpp 0123456789 Tr0ub4dor&3 รหัสผ่านบิชอปไม่ดี PPCG123 (สั้นเกินไป) correct horse battery staple (ตัวเลขไม่เพียงพอ) PPCG121GCPP (palindrome) (สั้นเกินไปและไม่เพียงพอตัวเลข) abc121cba (สั้นเกินไปและ palindrome) aaaaaaaaaaaa (palindrome และตัวเลขไม่เพียงพอ) abc99cba (ทุกอย่างผิดปกติ)

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