C++ 최적화2

1부터 n사이의 홀수의 합을 O(1)로 구하는 방법 ( C++ 최적화 기법 ) 갑자기 생각나서 만들어보았습니다. 솔직히 for문으로 1부터 n까지 순회하면서 홀,짝수인지 판별하는것은 구현하기 매우 쉽죠. 하지만, 이랬을때 단점이 n의 수가 커질수록 그 연산시간은 n의 크기에 비례해서 증가한다는 점입니다. 우리는 n의 크기에 영향을 받지않고 항상 같은(짧은)속도로 연산을 하는 방법을 의논하는겁니다. 1부터 n까지의 홀수의 합을 O(1)로 구하는 방법#include using bint = std::int64_t; bint Get_1toN_in_O1(bint n){ bint ncore, ncycle, result; n -= (n & 1) ? 0 : 1; ncore = ((n + 1) >> 1); ncycle = (ncore >> 1); result = (ncycle * (n + 1)) .. 2022. 1. 22.
나눗셈 연산속도 최적화 C++ 개발환경 >> Devcpp 언어 >> C++17이상 운영체제 >> Windows10 home 💉개요 안녕하세요! 이번에는 나눗셈연산을 비트연산으로 바꾸는 방법들에 대하여 알아보겠습니다. 우선 왜 나눗셈연산을 비트연산으로 바꾸는건가? 나눗셈연산은 곱셈, 덧셈, 뺄셈, 비트연산속도보다 매우느립니다. 만약에 프로그램속도를 최적화하기 위해서는 비트연산으로 바꿔야합니다. 그래서 이번에는 비트연산으로 바꾸는 여러가지 방법에 대하여 알아보겠습니다. 💉참조 https://stackoverflow.com/questions/5558492/divide-by-10-using-bit-shifts Divide by 10 using bit shifts? Is it possible to divide an unsigned intege.. 2021. 8. 2.