আমি নাম্বারটি কখনই মনে করতে পারি না। আমার একটি স্মৃতি রুল দরকার।
আমি নাম্বারটি কখনই মনে করতে পারি না। আমার একটি স্মৃতি রুল দরকার।
উত্তর:
এটি 2,147,483,647। এটি মুখস্ত করার সহজ উপায় একটি ট্যাটু এর মাধ্যমে।
Integer.MAX_VALUE
জাভাতে।
আমি সবচেয়ে সঠিক উত্তরটি ভাবতে পারি Int32.MaxValue
।
যদি আপনি মনে করেন যে মানটি 10 টিতে মনে রাখা খুব কঠিন, তবে বেস 2: 11111111111111111111111111111111111 বেস চেষ্টা করুন
11111111111111111111111111111111
বেস -২ নম্বর হিসাবে এখনও ইতিবাচক হবে (উদাহরণ-বেসে নেতিবাচক হবে -1
) । বিটগুলির ক্রমটি কেবলমাত্র নেতিবাচক যদি 32-বিট 2 এর পরিপূরক সংখ্যাটি প্রতিনিধিত্ব করে :)
আপনি যদি পুরো পাই নম্বরটি মনে করতে পারেন তবে আপনি যে নম্বরটি খুঁজছেন তা পাই এর দশমিক সংখ্যাগুলির 1,867,996,689 অবধি 1,867,996,680 পজিশনে রয়েছে
সংখ্যাটির স্ট্রিং 2147483647 পাই এর 1,867,996,680 দশমিক অঙ্কে উপস্থিত হয়। 3.14 ...... 86181221809936452346 2147483647 10527835665425671614 ...
এটি 10 ডিজিটের, সুতরাং এটি একটি ফোন নম্বর ভান করুন (ধরে নিলেন আপনি মার্কিন যুক্তরাষ্ট্রে রয়েছেন)। 214-748-3647। আমি এটি কল করার পরামর্শ দিই না।
INT
পরিবর্তে ফোন নম্বর সংরক্ষণ করে VARCHAR
।
এটিকে একটি বড় সংখ্যা হিসাবে মনে করার পরিবর্তে এটিকে ভেঙে ফেলার চেষ্টা করুন এবং সম্পর্কিত ধারণাগুলি যেমন:
উপরেরটি সবচেয়ে বড় নেতিবাচক সংখ্যার জন্য প্রযোজ্য; ইতিবাচক যে বিয়োগ একটি।
সম্ভবত উপরের ভাঙ্গনটি আপনার জন্য আর স্মরণীয় হয়ে থাকবে না (এটি খুব উত্তেজনাপূর্ণ এটিই!) তবে আশা করি আপনি কিছু ধারণা নিয়ে আসতে পারেন!
2^(31!)
নাকি (2^31)!
?
বৃহত্তম নেতিবাচক (32 বিট) মান: -2147483648
(1 << 31)
বৃহত্তম ধনাত্মক (32 বিট) মান: 2147483647
~ (1 << 31)
স্মৃতিচারণ: "মাতাল এ কেএ শৃঙ্গাকার"
drunk ========= Drinking age is 21
AK ============ AK 47
A ============= 4 (A and 4 look the same)
horny ========= internet rule 34 (if it exists, there's 18+ material of it)
21 47 4(years) 3(years) 4(years)
21 47 48 36 48
যাইহোক, এই রেজেক্সটি ধরুন (এটি স্ট্রিংয়ে দশমিক আকারে একটি অ-নেতিবাচক পূর্ণসংখ্যার অন্তর্ভুক্ত রয়েছে যা অন্তর্গত 32-ম্যাক্সভ্যালু থেকে বড় নয় তা নির্ধারণ করে)
[0-9]{1,9}|[0-1][0-9]{1,8}|20[0-9]{1,8}|21[0-3][0-9]{1,7}|214[0-6][0-9]{1,7}|2147[0-3][0-9]{1,6}|21474[0-7][0-9]{1,5}|214748[0-2][0-9]{1,4}|2147483[0-5][0-9]{1,3}|21474836[0-3][0-9]{1,2}|214748364[0-7]
এটি আপনাকে মনে রাখতে সহায়তা করবে।
2147483647
। এটি ওপি
আমার মনে পড়ে গেল 2147483647
:
অনুভূমিকভাবে এগুলি লিখুন:
214_48_64_
and insert:
^ ^ ^
7 3 7 - which is Boeing's airliner jet (thanks, sgorozco)
এখন আপনি 2147483647 পেয়েছেন।
আশা করি এটি কমপক্ষে কিছুটা সহায়তা করবে।
2^(x+y) = 2^x * 2^y
2^10 ~ 1,000
2^20 ~ 1,000,000
2^30 ~ 1,000,000,000
2^40 ~ 1,000,000,000,000
(etc.)
2^1 = 2
2^2 = 4
2^3 = 8
2^4 = 16
2^5 = 32
2^6 = 64
2^7 = 128
2^8 = 256
2^9 = 512
সুতরাং, 2 ^ 31 (স্বাক্ষরিত আন্ত ম্যাক্স) 2 ^ 30 (প্রায় 1 বিলিয়ন) বার 2 ^ 1 (2), বা প্রায় 2 বিলিয়ন। এবং 2 ^ 32 হ'ল 2 ^ 30 * 2 ^ 2 বা প্রায় 4 বিলিয়ন। আনুমানিক এই পদ্ধতিটি প্রায় 2 ^ 64 পর্যন্ত (যেখানে ত্রুটিটি প্রায় 15% পর্যন্ত বেড়ে যায়) এমনকি যথেষ্ট পরিমাণে সঠিক।
আপনার যদি সঠিক উত্তর প্রয়োজন হয় তবে আপনার একটি ক্যালকুলেটরটি টানতে হবে।
হ্যান্ড শব্দের সাথে সামঞ্জস্য করা ক্ষমতা আনুমানিক:
কেবল যে কোনও শালীন ক্যালকুলেটর নিন এবং হেক্স মোডে "7FFFFFFF" টাইপ করুন, তারপরে দশমিকের দিকে স্যুইচ করুন।
2147483647।
Int32.MaxValue
/numeric_limits<int32_t>::max()
এটা প্রায় 2.1 * 10^9
। সঠিক জানতে হবে না 2^{31} - 1 = 2,147,483,647
।
আপনি এটি সি এর মতো দেখতে পাবেন:
#include <stdio.h>
#include <limits.h>
main() {
printf("max int:\t\t%i\n", INT_MAX);
printf("max unsigned int:\t%u\n", UINT_MAX);
}
দেয় (ভাল, ছাড়া ,
)
max int: 2,147,483,647
max unsigned int: 4,294,967,295
std::cout << std::numeric_limits<int>::max() << "\n";
std::cout << std::numeric_limits<unsigned int>::max() << "\n";
আপনি জাভা দিয়েও এটি পেতে পারেন:
System.out.println(Integer.MAX_VALUE);
তবে মনে রাখবেন যে জাভা পূর্ণসংখ্যা সর্বদা স্বাক্ষরিত হয়।
পাইথনের নির্বিচারে যথাযথ পূর্ণসংখ্যা রয়েছে। কিন্তু পাইথন 2 এ সেগুলি সি পূর্ণসংখ্যায় ম্যাপ করা হয়। সুতরাং আপনি এটি করতে পারেন:
import sys
sys.maxint
>>> 2147483647
sys.maxint + 1
>>> 2147483648L
সুতরাং long
পূর্ণসংখ্যার চেয়ে বড় হয়ে গেলে পাইথন স্যুইচ করে2^31 -1
2 ** 31 মনে রাখার জন্য একটি স্মৃতিচারণ এখানে রয়েছে, সর্বাধিক পূর্ণসংখ্যার মান পেতে একটিকে বিয়োগ করুন।
একটি = 1, B = 2, C = 3, ডি = 4, ই = 5, চ = 6, জি = 7, এইচ = 8, আমি = 9
Boys And Dogs Go Duck Hunting, Come Friday Ducks Hide
2 1 4 7 4 8 3 6 4 8
আমি 18 টি পর্যন্ত দু'জনের শক্তি ব্যবহার করেছি তাদের স্মরণে রাখার জন্য যথেষ্ট, তবে এমনকি আমি 2 ** 31 স্মরণেও বিরক্ত করি নি। প্রয়োজন হিসাবে গণনা করা বা ধ্রুবক ব্যবহার করা খুব সহজ, বা 2G হিসাবে অনুমান করা যায়।
32 বিট, সাইন জন্য একটি, তথ্য 31 বিট:
2^31 - 1 = 2147483647
কেন -1?
কারণ প্রথমটি শূন্য, সুতরাং সবচেয়ে বড় হল গণনা বিয়োগ একটি ।
ক্যান্টফাইন্ডানাম ৮৮ এর জন্য সম্পাদনা করুন
গণনাটি 2 ^ 31 তবে বৃহত্তমটি 2147483648 (2 ^ 31) হতে পারে না কারণ আমরা 0 থেকে গণনা করি, 1 নয়।
Rank 1 2 3 4 5 6 ... 2147483648
Number 0 1 2 3 4 5 ... 2147483647
মাত্র 3 বিট সহ আরও একটি ব্যাখ্যা: 1 টি সাইন এর জন্য, 2 তথ্যের জন্য
2^2 - 1 = 3
3 বিট সহ সমস্ত সম্ভাব্য মানের নীচে: (2 ^ 3 = 8 মান)
1: 100 ==> -4
2: 101 ==> -3
3: 110 ==> -2
4: 111 ==> -1
5: 000 ==> 0
6: 001 ==> 1
7: 010 ==> 2
8: 011 ==> 3
ভাল, রসিকতা বাদে যদি আপনি সত্যিই একটি দরকারী মেমরির নিয়ম সন্ধান করেন তবে এমন একটি রয়েছে যা আমি সর্বদা বড় সংখ্যা মনে রাখার জন্য ব্যবহার করি।
আপনার নিজের নম্বরটি 3-4 টি সংখ্যা থেকে বিভক্ত করতে হবে এবং আপনার সেল ফোন কীবোর্ডে প্রজেকশনটি ব্যবহার করে তাদের দৃষ্টিভঙ্গি মনে রাখতে হবে। কোনও ছবিতে দেখানো আরও সহজ:
আপনি দেখতে পাচ্ছেন, এখন থেকে আপনাকে কেবল 3 টি আকার মনে রাখতে হবে, এর মধ্যে 2 টি টেট্রিস এল এবং দেখতে একটি টিকের মতো লাগে । যা অবশ্যই 10-সংখ্যার মুখস্থ করার চেয়ে অনেক সহজ।
যখন আপনাকে কেবল নম্বরটি পুনরায় স্মরণ করতে হবে তখন কোনও ফোন কীবোর্ডটি কল্পনা করুন / দেখুন এবং এতে আকারগুলি প্রজেক্ট করুন। সম্ভবত প্রাথমিকভাবে আপনাকে কীবোর্ডটি দেখতে হবে তবে কিছুটা অনুশীলনের পরে, আপনি মনে রাখবেন যে সংখ্যাগুলি উপরের বাম থেকে নীচে-ডানে চলে যাচ্ছে যাতে আপনি এটি কেবল আপনার মাথায় কল্পনা করতে সক্ষম হবেন।
কেবলমাত্র নিশ্চিত হয়ে নিন যে আপনি আকারের দিক এবং প্রতিটি আকারের অঙ্কের সংখ্যা মনে রেখেছেন (উদাহরণস্বরূপ, 2147483647 উদাহরণে আমাদের কাছে 4-অঙ্কের টেট্রিস এল এবং একটি 3-অঙ্কের এল) রয়েছে L
কোনও গুরুত্বপূর্ণ সংখ্যা সহজেই মনে রাখতে আপনি এই কৌশলটি ব্যবহার করতে পারেন (উদাহরণস্বরূপ, আমি আমার 16-সংখ্যার ক্রেডিট কার্ড নম্বর ইত্যাদি মনে রেখেছি)।
পূর্ণসংখ্যার জন্য এটি করার সবচেয়ে সহজ উপায় হেক্সাডেসিমাল ব্যবহার করা, যদি শপথ দেওয়া হয় যে Int.maxInt () এর মতো কিছু নেই। কারণটি হ'ল:
সর্বাধিক স্বাক্ষরযুক্ত মান
8-bit 0xFF
16-bit 0xFFFF
32-bit 0xFFFFFFFF
64-bit 0xFFFFFFFFFFFFFFFF
128-bit 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
সাইনড মানগুলি, সর্বাধিক স্বাক্ষরিত মান হিসাবে 7 এফ ব্যবহার করে
8-bit 0x7F
16-bit 0x7FFF
32-bit 0x7FFFFFFF
64-bit 0x7FFFFFFFFFFFFFFF
সাইনড মানগুলি, সর্বাধিক স্বাক্ষরিত মান হিসাবে 80 ব্যবহার করে
8-bit 0x80
16-bit 0x8000
32-bit 0x80000000
64-bit 0x8000000000000000
কিভাবে কাজ করে? এটি বাইনারি কৌশলটির সাথে খুব মিল এবং প্রতিটি হেক্স ডিজিট হুবহু 4 বিট হয়। এছাড়াও, প্রচুর সংকলকরা বাইনারি সমর্থন করার চেয়ে হেক্সকে অনেক বেশি সমর্থন করে।
F hex to binary: 1111
8 hex to binary: 1000
7 hex to binary: 0111
0 hex to binary: 0000
সুতরাং 7F 01111111 / 7FFF এর সমান 011111111111111111 এর সমান Also এছাড়াও, আপনি যদি এটি "উন্মাদ-উচ্চ ধ্রুবক" এর জন্য ব্যবহার করছেন তবে 7 এফ ... নিরাপদ হেক্স, তবে 7F এবং 80 চেষ্টা করে দেখতে কেবল এগুলি মুদ্রণ করা যথেষ্ট সহজ এটি কোনটি দেখতে আপনার স্ক্রিনে।
0x7FFF + 0x0001 = 0x8000, সুতরাং আপনার ক্ষতিটি কেবলমাত্র একটি সংখ্যা, তাই 0x7F ব্যবহার করে ... সাধারণত আরও নির্ভরযোগ্য কোডের জন্য খারাপ ট্রেড অফ নয়, বিশেষত একবার আপনি 32-বিট বা তার বেশি ব্যবহার শুরু করেন
প্রথমে 47 বার লিখুন, (আপনি এজেন্ট 47 পছন্দ করেন , ডান?) স্পেসগুলি দেখানো অনুযায়ী রাখুন (প্রতিটি ড্যাশ একক অঙ্কের জন্য স্লট। প্রথম 2 স্লট, তারপরে 4)
--47----47
ভাবেন আপনার 12
হাতে আছে (কারণ 12 = এক ডজন)। 4
এজেন্ট 47 এর প্রথম অঙ্কের দ্বারা এটি দিয়ে গুণ করুন , 47
এবং ফলাফলটি ইতিমধ্যে আপনার প্রথম জোড়ার ডানদিকে রাখুন
12 * 4 = 48
--4748--47 <-- after placing 48 to the right of first 47
তারপর সংখ্যাবৃদ্ধি 12
দ্বারা 3
(ক্রম এজেন্ট 47 নম্বর, যা দ্বিতীয় অঙ্ক করার জন্য 7
, আপনি প্রয়োজন 7 - 4 = 3
এবং প্রথম 2 জোড়া ডান গত যুগল-স্লটে ফলাফলের করা)
12 * 3 = 36
--47483647 <-- after placing 36 to the right of first two pairs
অবশেষে ডান-সর্বাধিক অঙ্ক থেকে শুরু করে আপনার হাত থেকে একের পর এক অঙ্ক টেনে আনুন (এই ক্ষেত্রে ২) এবং আপনার প্রথম খালি স্লটে এগুলি রাখুন
2-47483647 <-- after placing 2
2147483647 <-- after placing 1
সেখানে আপনি এটি আছে! নেতিবাচক সীমা জন্য, আপনি পরম মান আরও 1 হিসাবে এটি ভাবতে পারেন ইতিবাচক সীমা চেয়ে ।
কয়েকবার অনুশীলন করুন, এবং আপনি এটির হ্যাঙ্গ পাবেন!
2GB
(উত্তরের জন্য সর্বনিম্ন দৈর্ঘ্য কি আছে?)
যদি আপনি আপনার ASCII টেবিলটি হৃদয় দিয়ে জানেন এবং না করে MaxInt
:
!GH6G = 21 47 48 36 47
এটি মুখস্ত করার সর্বোত্তম নিয়মটি হ'ল:
21 (যাদু সংখ্যা!)
47 (কেবল এটি মনে রাখবেন)
48 (অনুক্রমিক!)
36 (21 + 15, উভয় যাদু!)
47 আবার
এছাড়াও 10 সংখ্যার চেয়ে 5 জোড়া মনে রাখা সহজ।
মনে রাখার সহজ উপায় হ'ল std::numeric_limits< int >::max()
উদাহরণস্বরূপ ( এমএসডিএন থেকে ),
// numeric_limits_max.cpp
#include <iostream>
#include <limits>
using namespace std;
int main() {
cout << "The maximum value for type float is: "
<< numeric_limits<float>::max( )
<< endl;
cout << "The maximum value for type double is: "
<< numeric_limits<double>::max( )
<< endl;
cout << "The maximum value for type int is: "
<< numeric_limits<int>::max( )
<< endl;
cout << "The maximum value for type short int is: "
<< numeric_limits<short int>::max( )
<< endl;
}
মজার বিষয় হল, ইনট 32.ম্যাক্সভ্যালুতে 2,147,486,647 এর চেয়ে বেশি অক্ষর রয়েছে।
তবে আবার, আমাদের কোড সমাপ্তি আছে,
সুতরাং আমি অনুমান করি যে আমাদের সত্যই মুখস্থ করতে হবে Int3<period>M<enter>
যা ভিজ্যুয়াল স্টুডিওতে টাইপ করতে কেবল 6 টি অক্ষর।
হালনাগাদ কোন কারণে আমি হতাশ ছিল। আমি ভাবতে পারি একমাত্র কারণ তারা আমার প্রথম বিবৃতি বুঝতে পারে না।
"Int32.MaxValue" টাইপ করতে সর্বাধিক 14 টি অক্ষর লাগে। আপনি কমাটি রেখেছেন বা না রেখে 2,147,486,647 টাইপ করতে 10 বা 13 টি অক্ষর লাগে।
Iwannagohome
যে এর চেয়ে স্মৃতিচারণ করা সহজ 298347829
। তবে -1-এর কোনও কারণ নেই।
!=
কীস্ট্রোকস। এই দরিদ্র। নেট ব্যবহারকারীর জন্য, এটি in
+ .
+ ma
+ রিটার্ন।
কেবল মনে রাখবেন যে 2 ^ (10 * x) প্রায় 10 ^ (3 * x) হয় - আপনি সম্ভবত কিলোবাইট / কিবিবাইটস ইত্যাদির সাথে ইতিমধ্যে এটি ব্যবহার করেছেন: এটি হ'ল:
2^10 = 1024 ~= one thousand
2^20 = 1024^2 = 1048576 ~= one million
2^30 = 1024^3 = 1073741824 ~= one billion
যেহেতু কোনও int 31 বিট ব্যবহার করে (চিহ্নটির জন্য +1 + 1 বিট), প্রায় 2 বিলিয়ন পেতে কেবল 2 2 30 ডাবল করে। 32 বিট ব্যবহার না করে স্বাক্ষরিত ইন্টের জন্য 4 বিলিয়ন ডলারে আবার দ্বিগুণ। আপনি অবশ্যই যত ত্রুটিযুক্ত ত্রুটি ফ্যাক্টর তত বেশি হয়ে যান তবে আপনার সঠিক মুখস্থ মুখস্থ হওয়ার দরকার নেই (যদি আপনার এটির প্রয়োজন হয় তবে এটির জন্য আপনার পূর্বনির্ধারিত ধ্রুবকটি ব্যবহার করা উচিত)। আনুমানিক মানটি লক্ষ্য করার জন্য যথেষ্ট ভাল যখন কোনও কিছু বিপজ্জনকভাবে উপচে পড়ার কাছাকাছি হতে পারে।
এইভাবে আমি 2,147,483,647 মনে রাখতে এটি করি do
2 - To
1 - A
4 - Far
7 - Savannah
4 - Quarter
8 - Optimus
3 - Trio
6 - Hexed
4 - Forty
7 - Septenary
আপনি কি বোঝাতে চেয়েছেন? এটি 2 ^ 32 বলে মনে রাখা যথেষ্ট সহজ হওয়া উচিত। আপনি যদি এই সংখ্যার মান মুখস্ত করার কোনও নিয়ম চান তবে থাম্বের একটি সহজ নিয়ম হ'ল সাধারণভাবে বাইনারি এবং দশমিকের মধ্যে রূপান্তর করার জন্য:
2 ^ 10 ~ 1000
যার অর্থ 2 ^ 20 ~ 1,000,000
এবং 2 ^ 30 ~ 1,000,000,000
দ্বিগুণ যে (2 ^ 31) রাউন্ডলি 2 বিলিয়ন, এবং এটি আবার দ্বিগুণ (2 ^ 32) 4 বিলিয়ন।
কোনও বাইনারি সংখ্যার মোটামুটি অনুমান করার এটি একটি সহজ উপায়। বাইনারি 10 জিরো দশমিক 3 শূন্য হয়।
উদ্দেশ্য-সি (আইওএস এবং ওএসএক্স) এ, কেবল এই ম্যাক্রোগুলি মনে রাখবেন:
#define INT8_MAX 127
#define INT16_MAX 32767
#define INT32_MAX 2147483647
#define INT64_MAX 9223372036854775807LL
#define UINT8_MAX 255
#define UINT16_MAX 65535
#define UINT32_MAX 4294967295U
#define UINT64_MAX 18446744073709551615ULL
ইন্ট 32 এর অর্থ আপনার নম্বর সংরক্ষণের জন্য আপনার কাছে 32 বিট উপলব্ধ। সর্বাধিক বিট হ'ল সাইন-বিট, এটি নির্দেশ করে যে সংখ্যাটি ইতিবাচক বা নেতিবাচক। সুতরাং আপনার কাছে ইতিবাচক এবং নেতিবাচক সংখ্যার জন্য 2 ^ 31 বিট রয়েছে।
শূন্য একটি ধনাত্মক সংখ্যা হওয়ায় আপনি এর যৌক্তিক পরিসর পাবেন (পূর্বে উল্লিখিত)
+2147483647 থেকে -2147483648
আপনি যদি মনে করেন যে এটি ক্ষুদ্রতর, অন্তত 64 ব্যবহার করুন:
+9223372036854775807 থেকে -9223372036854775808
আর এই সংখ্যাটি কেন আপনি মনে রাখতে চান? আপনার কোড ব্যবহার করতে? আপনার কোডগুলিতে আপনার সর্বদা Int32.MaxValue বা Int32.MINValue ব্যবহার করা উচিত কারণ এগুলি স্থির মান (। নেট কোরের মধ্যে) এবং সুতরাং কোড সহ একটি নতুন আইটি তৈরির চেয়ে দ্রুত ব্যবহারে।
আমার বক্তব্য: স্মৃতি অনুসারে যদি এই নম্বরটি জানেন .. আপনি কেবল প্রদর্শন করছেন!
এটি মনে রাখবেন: 21 আইকিউ আইটিএম 47
এটি যে কোনও ফোন প্যাডের সাথে ডি-এনকোড করা যেতে পারে, বা আপনি কেবল একটি কাগজে লিখে রাখতে পারেন।
"21 আইকিউ আইটিএম 47" মনে রাখার জন্য, আমি "হিটম্যান: কোডেনাম 47 এর 21 টি মিশন ছিলাম, যা প্রতিটি আইকিউ আইটিইএম নিজেই ছিল" "
অথবা "আমি প্রতিদিন 21:47-এ দাঁত পরিষ্কার করি, কারণ আমার উচ্চ আইকিউ রয়েছে এবং আমি মুখে আইটেম পছন্দ করি না"।
de-encoded with any phone pad
?