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

ภาษาทางคณิตศาสตร์ที่แม่นยำโดยพลการ

18
มีวิธีการรับ min, max, มัธยฐานและค่าเฉลี่ยของรายการตัวเลขในคำสั่งเดียวหรือไม่?
ฉันมีรายการตัวเลขในไฟล์หนึ่งรายการต่อบรรทัด ฉันจะรับค่าต่ำสุดสูงสุดค่ามัธยฐานและค่าเฉลี่ยได้อย่างไร ฉันต้องการใช้ผลลัพธ์ในสคริปต์ทุบตี แม้ว่าสถานการณ์ปัจจุบันของฉันจะเป็นจำนวนเต็ม แต่วิธีแก้ปัญหาสำหรับเลขทศนิยมจะเป็นประโยชน์ในบรรทัด
93 bash  awk  arithmetic  bc 

1
ทำไมต้อง 'bc' เพื่อสร้างเคอร์เนล Linux
ลินุกซ์เคอร์เนลต้องการอาคารน้อยระบุว่าเครื่องคิดเลขbcเป็นสิ่งจำเป็นในการสร้าง v4.10 1.06.95เคอร์เนลรุ่นที่น้อยที่สุดของการเป็นเครื่องมือ มีการใช้สิ่งใดbcในบริบทนี้และทำไมภาษา C จึงไม่ใช้โดยตรงแทนbcการดำเนินการเหล่านี้
66 linux-kernel  bc 

3
การดำเนินการลอยกับ bc?
ดูเหมือนว่า bc ไม่สนับสนุนการดำเนินการลอยเมื่อฉันecho 1/8 | bcได้รับฉันเป็นศูนย์ ฉันตรวจสอบbc (1)แล้ว แต่มันไม่ได้พูดถึงfloatดังนั้นฉันสงสัยว่ามันรองรับหรือไม่
42 bc 

8
ทำคณิตศาสตร์อย่างง่ายบนบรรทัดคำสั่งโดยใช้ฟังก์ชัน bash: $ 1 หารด้วย $ 2 (อาจใช้ bc)
บางครั้งฉันต้องหารจำนวนหนึ่งด้วยอีก มันจะดีมากถ้าฉันสามารถกำหนดฟังก์ชัน bash สำหรับสิ่งนี้ได้ จนถึงตอนนี้ฉันถูกบังคับให้ใช้นิพจน์เช่น echo 'scale=25;65320/670' | bc แต่มันจะดีมากถ้าฉันสามารถกำหนดฟังก์ชั่น. bashrc ที่ดูเหมือน divide () { bc -d $1 / $2 }

4
หลาม vs bc ในการประเมิน 6 ^ 6 ^ 6
ฉันประเมินการแสดงออก6^6^6โดยใช้pythonและbcแยก print 6**6**6เนื้อหาของไฟล์หลามคือ เมื่อฉันรันtime python test.pyฉันจะได้ผลลัพธ์เป็น real 0m0.067s user 0m0.050s sys 0m0.011s จากนั้นฉันรันคำสั่งtime echo 6^6^6 | bcที่ให้ผลลัพธ์ต่อไปนี้ให้ฉัน real 0m0.205s user 0m0.197s sys 0m0.005s จากผลลัพธ์เหล่านี้เห็นได้ชัดว่าเวลา sys ที่ใช้โดย python และ bc คือ 11ms และ 5ms ตามลำดับ คำสั่ง BC เฮงหลามในระดับเวลา SYSแต่เมื่อมันมาถึงผู้ใช้และเวลาจริงหลามเป็นเกือบ 4 ครั้งเร็วกว่าปีก่อนคริสตกาล สิ่งที่อาจจะไปที่นั่น ฉันไม่ได้ให้ความสำคัญกับกระบวนการเช่นนี้ ฉันพยายามที่จะเข้าใจสถานการณ์นี้


4
เข้าใจ“ ibase” และ“ obase” ในกรณีที่มีการแปลงกับ bc หรือไม่
ฉันมักจะใช้bcยูทิลิตี้สำหรับการแปลงฐานสิบหกเป็นทศนิยมและในทางกลับกัน แต่ก็เป็นบิตลองผิดลองถูกอยู่เสมอวิธีการibaseและobaseควรจะกำหนดค่า ตัวอย่างเช่นที่นี่ฉันต้องการแปลงค่าฐานสิบหก C0 เป็นทศนิยม: $ echo "ibase=F;obase=A;C0" | bc 180 $ echo "ibase=F;obase=10;C0" | bc C0 $ echo "ibase=16;obase=A;C0" | bc 192 ตรรกะที่นี่คืออะไร? obase( Aในตัวอย่างที่สามของฉัน) ต้องอยู่ในฐานเดียวกันกับค่าที่แปลง ( C0ในตัวอย่างของฉัน) และibase( 16ในตัวอย่างที่สาม) ต้องอยู่ในฐานที่ฉันแปลงไป?
22 bc 


3
วิธีการจัดรูปแบบเลขทศนิยมด้วยเลข 2 ตัวที่สำคัญในการทุบตี?
ฉันต้องการพิมพ์เลขทศนิยมด้วยเลขนัยสำคัญสองตัวใน bash (อาจใช้เครื่องมือทั่วไปเช่น awk, bc, dc, perl และอื่น ๆ ) ตัวอย่าง: ควรพิมพ์ 76543 เป็น 76000 0.0076543 ควรพิมพ์เป็น 0.0076 ในทั้งสองกรณีตัวเลขที่สำคัญคือ 7 และ 6 ฉันได้อ่านคำตอบสำหรับปัญหาที่คล้ายกันเช่น: วิธีการปัดเลขทศนิยมในเปลือก? Bash จำกัดความแม่นยำของตัวแปร floating point แต่คำตอบจะเน้นที่การ จำกัด จำนวนตำแหน่งทศนิยม (เช่นbcคำสั่งด้วยscale=2หรือprintfคำสั่งด้วย%.2f) แทนตัวเลขที่มีนัยสำคัญ มีวิธีที่ง่ายในการจัดรูปแบบตัวเลขด้วยตัวเลข 2 ตัวที่สำคัญหรือฉันต้องเขียนฟังก์ชั่นของตัวเองหรือไม่?
17 bash  awk  bc  floating-point  dc 

4
คำนวณตัวแปรและส่งออกไปยังตัวแปรอื่น
bcเครื่องคิดเลขเดียวที่ผมรู้ก็คือ ฉันต้องการเพิ่ม1ตัวแปรและส่งออกไปยังตัวแปรอื่น ฉันได้รับnextnumตัวแปรจากการนับสตริงในไฟล์: nextnum=`grep -o stringtocount file.tpl.php | wc -w` ช่วยบอกว่าค่าnextnum 1เมื่อเพิ่มเข้ามาด้วยก็จะกลายเป็น1 2ในการคำนวณฉันทำงาน: rownum=`$nextnum+1 | bc` แต่มีข้อผิดพลาด: 1+1: command not found ฉันเพิ่งล้มเหลวในส่วนการคำนวณ ฉันลองเปลี่ยน backtick แล้วแต่ยังใช้งานไม่ได้ ฉันไม่ทราบวิธีการคำนวณตัวแปรและส่งออกไปยังตัวแปรอื่น
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.