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

คณิตศาสตร์เกี่ยวข้องกับการจัดการตัวเลขภายในโปรแกรม สำหรับคำถามทางคณิตศาสตร์ทั่วไปโปรดถาม [math.stackexchange.com] (https://math.stackexchange.com/) หมายเหตุ: หากคำถามของคุณเกี่ยวกับผลลัพธ์ที่ไม่คาดคิดในการคำนวณจุดลอยตัวโปรดอ่าน [การคำนวณจุดลอยตัวเสียหรือไม่?] (https://stackoverflow.com/q/588004/1679849) ก่อน


21
มีฟังก์ชั่นสัญญาณมาตรฐาน (signum, sgn) ใน C / C ++ หรือไม่
ฉันต้องการฟังก์ชั่นที่คืนค่า -1 สำหรับจำนวนลบและ +1 สำหรับจำนวนบวก http://en.wikipedia.org/wiki/Sign_function มันง่ายพอที่จะเขียนของฉันเอง แต่ดูเหมือนว่าบางสิ่งที่ควรจะอยู่ในห้องสมุดมาตรฐานที่ไหนสักแห่ง แก้ไข: โดยเฉพาะฉันกำลังมองหาฟังก์ชั่นที่ทำงานกับลอย
409 c++  c  math 

6
วิธีที่เร็วที่สุดในการพิจารณาว่าจำนวนเต็มอยู่ระหว่างสองจำนวนเต็ม (รวม) กับชุดของค่าที่ทราบ
มีวิธีเร็วกว่าx >= start && x <= endใน C หรือ C ++ เพื่อทดสอบว่าจำนวนเต็มอยู่ระหว่างสองจำนวนเต็ม? อัปเดต : แพลตฟอร์มเฉพาะของฉันคือ iOS นี่เป็นส่วนหนึ่งของฟังก์ชันเบลอเบลอที่ จำกัด พิกเซลไว้ที่วงกลมในสี่เหลี่ยมจัตุรัสที่กำหนด UPDATE : หลังจากที่พยายามตอบรับผมได้มีคำสั่งเพิ่มความเร็วขนาดในหนึ่งบรรทัดของรหัสมากกว่าทำมันปกติx >= start && x <= endทาง UPDATE : นี่คือโค้ดหลังและก่อนหน้ากับแอสเซมเบลอร์จาก XCode: วิธีการใหม่ // diff = (end - start) + 1 #define POINT_IN_RANGE_AND_INCREMENT(p, range) ((p++ - range.start) < range.diff) Ltmp1313: …
389 c++  c  performance  math 


9
วิธีมาตรฐานในการเพิ่ม N วินาทีใน datetime.time ใน Python คืออะไร?
เมื่อกำหนดdatetime.timeค่าใน Python จะมีวิธีมาตรฐานในการเพิ่มจำนวนเต็มเป็นวินาทีเพื่อให้ตัวอย่างเช่น11:34:59+ 3 = 11:35:02? แนวคิดที่ชัดเจนเหล่านี้ใช้ไม่ได้: >>> datetime.time(11, 34, 59) + 3 TypeError: unsupported operand type(s) for +: 'datetime.time' and 'int' >>> datetime.time(11, 34, 59) + datetime.timedelta(0, 3) TypeError: unsupported operand type(s) for +: 'datetime.time' and 'datetime.timedelta' >>> datetime.time(11, 34, 59) + datetime.time(0, 0, 3) TypeError: unsupported operand type(s) …
369 python  datetime  time  math 

30
วิธีที่เร็วที่สุดในการแสดงรายการช่วงเวลาทั้งหมดที่ต่ำกว่า N
นี่เป็นอัลกอริธึมที่ดีที่สุดที่ฉันสามารถทำได้ def get_primes(n): numbers = set(range(n, 1, -1)) primes = [] while numbers: p = numbers.pop() primes.append(p) numbers.difference_update(set(range(p*2, n+1, p))) return primes >>> timeit.Timer(stmt='get_primes.get_primes(1000000)', setup='import get_primes').timeit(1) 1.1499958793645562 มันสามารถทำให้เร็วขึ้นได้หรือไม่ รหัสนี้มีข้อบกพร่อง: เนื่องจากnumbersเป็นชุดที่ไม่มีการเรียงลำดับจึงไม่มีการรับประกันที่numbers.pop()จะลบหมายเลขต่ำสุดออกจากชุด อย่างไรก็ตามมันใช้งานได้ (อย่างน้อยสำหรับฉัน) สำหรับตัวเลขที่ป้อน: >>> sum(get_primes(2000000)) 142913828922L #That's the correct sum of all numbers below 2 million >>> 529 in get_primes(1000) …

7
“ เอนโทรปีและการได้รับสารสนเทศ” คืออะไร?
ฉันกำลังอ่านหนังสือเล่มนี้ ( NLTK ) และมันสับสน เอนโทรปีถูกกำหนดเป็น : เอนโทรปีคือผลรวมของความน่าจะเป็นของแต่ละป้ายคูณความน่าจะเป็นบันทึกของป้ายกำกับนั้น ฉันจะใช้เอนโทรปีและเอนโทรปีสูงสุดในแง่ของการทำเหมืองข้อความได้อย่างไร มีใครให้ฉันเป็นตัวอย่างง่ายๆและเรียบง่าย (ภาพ) ได้ไหม

15
จะปัดเศษผลลัพธ์ของการหารจำนวนเต็มได้อย่างไร
ฉันกำลังคิดถึงวิธีแสดงการควบคุมเลขหน้าโดยเฉพาะเมื่อใช้ภาษาเช่น C # หรือ Java หากฉันมีรายการxที่ฉันต้องการแสดงในหน่วยของyต่อหน้าจะต้องมีกี่หน้า?
335 c#  java  math 

24
วิธีการประเมินการแสดงออกทางคณิตศาสตร์ที่ได้รับในรูปแบบสตริง?
ฉันพยายามเขียนรูทีน Java เพื่อประเมินนิพจน์ทางคณิตศาสตร์อย่างง่ายจากStringค่าเช่น: "5+3" "10-40" "10*3" ฉันต้องการหลีกเลี่ยงคำสั่ง if-then-else จำนวนมาก ฉันจะทำสิ่งนี้ได้อย่างไร
318 java  string  math 

19
ทำไมตัวเลขทศนิยมไม่สามารถแสดงในรูปแบบไบนารีได้อย่างแม่นยำ
มีการหลายคำถามที่โพสต์เกี่ยวกับจุดลอยตัวแทน ตัวอย่างเช่นเลขทศนิยม 0.1 ไม่มีการแทนค่าไบนารีที่แน่นอนดังนั้นจึงเป็นอันตรายที่จะใช้ตัวดำเนินการ == เพื่อเปรียบเทียบกับตัวเลขทศนิยมอื่น ฉันเข้าใจหลักการที่อยู่เบื้องหลังการเป็นตัวแทนจุดลอยตัว สิ่งที่ฉันไม่เข้าใจคือทำไมจากมุมมองทางคณิตศาสตร์ตัวเลขทางด้านขวาของจุดทศนิยมคือ "พิเศษ" ที่อยู่ทางซ้ายหรือไม่ ตัวอย่างเช่นหมายเลข 61.0 มีการแทนค่าไบนารี่ที่แน่นอนเนื่องจากส่วนที่สำคัญของจำนวนใด ๆ นั้นแน่นอนเสมอ แต่หมายเลข 6.10 นั้นไม่ถูกต้อง ทั้งหมดที่ฉันทำคือย้ายทศนิยมหนึ่งตำแหน่งและทันใดนั้นฉันก็ไปจาก Exactopia ไปยัง Inexactville ในทางคณิตศาสตร์ไม่ควรมีความแตกต่างที่แท้จริงระหว่างสองตัวเลข - มันเป็นแค่ตัวเลข ในทางตรงกันข้ามถ้าฉันย้ายทศนิยมหนึ่งตำแหน่งในทิศทางอื่นเพื่อสร้างหมายเลข 610 ฉันก็ยังอยู่ใน Exactopia ฉันสามารถไปในทิศทางนั้นได้ (6100, 610000000, 610000000000000) และพวกเขายังคงแน่นอนถูกต้องแน่นอน แต่ทันทีที่ทศนิยมผ่านเกณฑ์บางจำนวนจะไม่แน่นอน เกิดอะไรขึ้น? แก้ไข: เพื่อชี้แจงผมต้องการที่จะอยู่ห่างจากการอภิปรายเกี่ยวกับการแสดงมาตรฐานอุตสาหกรรมเช่น IEEE และติดกับสิ่งที่ผมเชื่อว่าเป็นวิธีทางคณิตศาสตร์ "บริสุทธิ์" ในฐานที่ 10 ค่าตำแหน่ง ได้แก่ : ... 1000 100 10 …


12
การคำนวณค่าเฉลี่ยเลขคณิต (หนึ่งประเภทเฉลี่ย) ใน Python
มีวิธีการในตัวหรือไลบรารีมาตรฐานใน Python เพื่อคำนวณค่าเฉลี่ยเลขคณิต (ค่าเฉลี่ยหนึ่งประเภท) ของรายการตัวเลขหรือไม่?

26
มีข้อความ 'if' มากเกินไป
รหัสต่อไปนี้ใช้งานได้ตามที่ฉันต้องการ แต่มันก็น่าเกลียดเกินไปหรืออย่างอื่น ฉันดูสูตรและพยายามเขียนวิธีแก้ปัญหาสองสามข้อ แต่ท้ายที่สุดก็มีข้อความคล้ายกันจำนวนหนึ่ง มีสูตรคณิตศาสตร์ชนิดหนึ่งที่จะเป็นประโยชน์กับฉันในกรณีนี้หรือเป็น 16 ถ้าข้อความสั่งยอมรับ? เพื่ออธิบายรหัสมันเป็นเกมประเภทหันกลับพร้อมกัน .. ผู้เล่นสองคนมีปุ่มการกระทำสี่ปุ่มแต่ละปุ่มและผลลัพธ์มาจากอาร์เรย์ (0-3) แต่ตัวแปร 'หนึ่ง' และ 'สอง' สามารถเป็นได้ มอบหมายอะไรก็ได้ถ้าสิ่งนี้ช่วยได้ ผลลัพธ์คือ 0 = ไม่ชนะ 1 = p1 ชนะ 2 = p2 ชนะ 3 = ชนะทั้งคู่ public int fightMath(int one, int two) { if(one == 0 && two == 0) { result = 0; …

10
เพดานอย่างรวดเร็วของการหารจำนวนเต็มใน C / C ++
รับค่าจำนวนเต็มxและyC และ C ++ กลับทั้งสองเป็นผลหารหารq = x/yด้วยจำนวนจุดลอยตัว ฉันสนใจวิธีการคืนเพดานแทน ยกตัวอย่างเช่นและceil(10/5)=2ceil(11/5)=3 วิธีการที่ชัดเจนเกี่ยวข้องกับสิ่งที่ชอบ: q = x / y; if (q * y < x) ++q; สิ่งนี้ต้องการการเปรียบเทียบและการคูณที่พิเศษ และวิธีการอื่น ๆ ที่ผมเคยเห็น (ใช้ในความเป็นจริง) เกี่ยวข้องกับการหล่อเป็นหรือfloat doubleมีวิธีที่ตรงกว่าที่จะหลีกเลี่ยงการเพิ่มการคูณ (หรือการหารที่สอง) และสาขาและหลีกเลี่ยงการร่ายเป็นเลขทศนิยมหรือไม่?
262 c++  c  algorithm  math 

23
จะตรวจสอบได้อย่างไรว่ารายการจุดรูปหลายเหลี่ยมเรียงตามเข็มนาฬิกาหรือไม่
มีรายการคะแนนฉันจะค้นหาว่าพวกเขาอยู่ในลำดับตามเข็มนาฬิกาได้อย่างไร ตัวอย่างเช่น: point[0] = (5,0) point[1] = (6,4) point[2] = (4,5) point[3] = (1,5) point[4] = (1,0) จะบอกว่ามันเป็นทวนเข็มนาฬิกา (หรือทวนเข็มนาฬิกาสำหรับบางคน)

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