تعداد رقم های عدد توان دار — به زبان ساده
از عنوان این نوشتار تعجب کردهاید؟ حتما خواهید گفت که تعداد رقم های عدد توان دار را به روش شمارش ارقامش به راحتی میتوان بدست آورد. البته گفته شما کاملا صحیح است ولی شاید در بعضی از موارد شمارش ارقام کاری مشکل بوده یا حتی توان رساندن عدد بسیار سخت باشد. در این نوشتار با استفاده از تقسیمهای متوالی بر ۱۰ و همچنین تابع لگاریتم و آنچه به عنوان خصوصیات آن میشناسیم، پاسخ مناسبی به این مسئله خواهیم داد.
برای آشنایی با نحوه به توان رساندن اعداد توان دار — به زبان ساده و نماد علمی — به زبان ساده را مطالعه کنید. همچنین خواندن ویژگیهای تابع لگاریتم در نوشتار لگاریتم و خصوصیات آن — به زبان ساده نیز برایتان جذابیت خواهد داشت. از طرفی خواندن نوشتارهای ویژگی های تابع نمایی — به زبان ساده و لگاریتم و هر آنچه باید درباره آن بدانید – به زبان ساده نیز خالی از لطف نیست.
تعداد رقم های عدد توان دار
فرض کنید از شما پرسیده شود، عدد چند رقم است؟ از آنجایی که به راحتی و بدون ماشین حساب میتوان عدد ۳ را به توان ۵ رساند، تعداد رقمهای آن نیز به سادگی شمرده میشود.
پس تعداد رقم های این عدد توان دار برابر با ۳ است. هر چند این کار در اینجا به راحتی انجام شد ولی ممکن است توان رساندن تبدیل به امری بسیار دشوار شود.
برای مثال برای تعیین تعداد ارقام عدد ، توان رساندن به وسیله ضرب کردن به سختی صورت میگیرد و بهتر است از ماشین حساب استفاده کنیم.
به هر حال مشخص میشود که این عدد شامل ۱۰ رقم است. ولی این بار در نظر بگیرد که عددی که به دنبال تعداد رقمهای آن هستید، به شکل باورنکردنی بزرگ است. به نظر شما عدد چند رقم دارد؟ اگر این محاسبه را به کمک ماشین حساب انجام دهیم به نتیجه زیر خواهیم رسید. همانطور که میبینید برای نمایش این عدد از نماد علمی استفاده شده است.
با توجه به توانهای به کار رفته در نمایش نماد علمی مشخص میشود که این عدد، شامل 564 رقم خواهد بود.
نکته: گاهی برای نمایش اعداد بسیار بزرگ یا بسیار کوچک، از «نماد علمی» (Scientific Notation) استفاده میشود. به این ترتیب تعداد ارقام یک عدد را میتوان یکی بیشتر از مقدار توان یا نمای در نظر گرفت. همانطور که قبلاً مشاهده کردید، عدد 3.6113021465e563 دارای 563+1=564 رقم خواهد بود.
این بار باز هم عدد را بزرگتر میکنیم تا حتی ماشین حساب هم با توجه به محدودیتی که در محاسبات دارد، قادر نباشد نتیجه توان رساندن را بدست آورد. به نظر شما تعداد ارقام عدد چقدر است؟ در چنین حالتی، نه تنها ماشین حساب، بلکه رایانهها نیز از بدست آوردن حاصل توان، عاجز میشوند. نتیجه محاسبه این عدد در اکسل به شکل زیر خواهد بود:
همانطور که میبینید، اکسل قادر به نمایش یا محاسبه این عدد نیست. پس چگونه میتوانیم تعداد ارقام عدد حاصل از این محاسبه را بدست آوریم؟ در ادامه به کمک تقسیم و لگاریتم به پاسخ مناسبی برای این سوال خواهیم رسید. نکته جالب در این موضوع آن است که بدون محاسبه و بدست آوردن حاصل عملیات به توان رساندن، میتوانیم دقیقا بگوییم که عدد حاصل چند رقم خواهد داشت.
تعیین تعداد رقم های عدد به کمک تقسیم
میدانیم که هر عدد طبیعی (مثل ) را میتوان به صورت مجموعی از توانهای ۱۰ و به شکل زیر نوشت، بطوری که همگی اعداد طبیعی کوچکتر از ۱۰ هستند.
رابطه ۱
از این موضوع میتوان متوجه شد که نشانگر تعداد ارقام عدد است زیرا همه جملههای رابطه بالا که قبل از قرار دارند از آن کوچکتر بوده و مجموع آنها هرگز بزرگتر از نخواهد بود. به بیان ریاضی این ویژگیها به صورت زیر نوشته میشوند:
در نتیجه هر بار که عدد را بر ۱۰ تقسیم میکنیم، یکی از رقمهای آن را مشخص کردهایم. جدول زیر به بررسی مراحل تقسیم و استخراج رقم به رقم از عدد پرداخته است.
تعداد مراحل تقسیم | تقسیم (مقسوم و مقسوم علیه) | خارج قسمت | رقم استخراج شده (باقیمانده) |
1 | |||
2 | |||
3 | |||
برای مثال، 234 را میتوان به صورت زیر و برمبنای حاصل ضرب عبارتهایی از توانهای ۱۰ نوشت:
در نتیجه مطابق با جدول بالا، ارقام آن را یک به یک استخراج میکنیم. واضح است که تعداد مراحل تقسیم، میتواند الگویی برای پیدا کردن تعداد ارقام عدد باشد.
تعداد مراحل تقسیم | تقسیم (مقسوم و مقسوم علیه) | خارج قسمت | رقم استخراج شده (باقیمانده) |
1 | |||
2 | |||
3 |
پس تعداد ارقام این عدد برابر است با 3. بنابراین اگر تابع را به شکلی در نظر بگیریم که تعداد ارقام را مشخص میکند، خواهیم داشت:
کدهای برنامهنویسی برای پیدا کردن تعداد رقم های عدد
در ادامه به کدهایی اشاره میکنیم که به کمک آنها قادر هستیم تعداد ارقام یک عدد را بوسیله تقسیم متوالی آن بر ۱۰ محاسبه کنیم. در اینجا فرض شده است که با ورود دو عدد و ، حاصلضرب آن دو محاسبه شده و تعداد ارقام حاصلضرب مشخص شود. ممکن است یا مثبت یا منفی باشند در نتیجه به کمک تابع قدر مطلق (abs) ابتدا مقدار حاصلضرب را بدون علامت کرده سپس تعداد ارقام را میشماریم.
البته در ادامه به شیوهای اشاره میکنیم که حتی بدون ضرب کردن این دو عدد نیز میتوانیم تعداد ارقام حاصلضرب را بدست آوریم.
برنامه پیدا کردن تعداد رقم های عدد در ++C
1// C++ implementation to count number of digits
2// in the product of two numbers
3#include <bits/stdc++.h>
4
5using namespace std;
6
7// function to count number of digits
8// in the product of two numbers
9int countDigits(int a, int b)
10{
11 int count = 0;
12
13 // absolute value of the
14 // product of two numbers
15 int p = abs(a*b);
16
17 // if product is 0
18 if (p == 0)
19 return 1;
20
21 // count number of digits in the product 'p'
22 while (p > 0)
23 {
24 count++;
25 p = p / 10;
26 }
27
28 // required count of digits
29 return count;
30}
31
32// Driver program to test above
33int main()
34{
35 int a = 33;
36 int b = -24;
37 cout << "Number of digits = "
38 << countDigits(a,b);
39 return 0;
40}
برنامه پیدا کردن تعداد رقم های عدد در جاوا
1// Java implementation to count
2// number of digits in the product
3// of two numbers
4import java.io.*;
5import java.math.*;
6
7class GFG {
8
9 // function to count number of digits
10 // in the product of two numbers
11 static int countDigits(int a, int b)
12 {
13 int count = 0;
14
15 // absolute value of the
16 // product of two numbers
17 int p = Math.abs(a * b);
18
19 // if product is 0
20 if (p == 0)
21 return 1;
22
23 // count number of digits in
24 // the product 'p'
25 while (p > 0)
26 {
27 count++;
28 p = p / 10;
29 }
30
31 // required count of digits
32 return count;
33 }
34
35 // Driver program to test above
36 public static void main(String args[])
37 {
38 int a = 33;
39 int b = -24;
40 System.out.println("Number of digits = "
41 + countDigits(a, b));
42 }
43}
44
45/*This code is contributed by Nikita Tiwari.*/
برنامه پیدا کردن تعداد رقم های عدد در پایتون
1# Python 3 implementation to count
2# number of digits in the product
3# of two numbers
4
5# function to count number of digits
6# in the product of two numbers
7def countDigits(a, b) :
8 count = 0
9
10 # absolute value of the
11 # product of two numbers
12 p = abs(a * b)
13
14 # if product is 0
15 if (p == 0) :
16 return 1
17
18 # count number of digits
19 # in the product 'p'
20 while (p > 0) :
21 count = count + 1
22 p = p // 10
23
24
25 # required count of digits
26 return count
27
28
29# Driver program to test above
30a = 33
31b = -24
32print("Number of digits = ",
33 countDigits(a,b))
34
35# This code is contributed by Nikita Tiwari.
برنامه پیدا کردن تعداد رقم های عدد در #C
1// C# implementation to count
2// number of digits in the product
3// of two numbers
4using System;
5
6class GFG {
7
8 // function to count number of digits
9 // in the product of two numbers
10 static int countDigits(int a, int b)
11 {
12 int count = 0;
13
14 // absolute value of the
15 // product of two numbers
16 int p = Math.Abs(a * b);
17
18 // if product is 0
19 if (p == 0)
20 return 1;
21
22 // count number of digits in
23 // the product 'p'
24 while (p > 0) {
25 count++;
26 p = p / 10;
27 }
28
29 // required count of digits
30 return count;
31 }
32
33 // Driver program to test above
34 public static void Main()
35 {
36 int a = 33;
37 int b = -24;
38 Console.WriteLine("Number of digits = " +
39 countDigits(a, b));
40 }
41}
42
43// This code is contributed by Sam007
برنامه پیدا کردن تعداد رقم های عدد در PHP
1<?php
2// PHP implementation to count
3// number of digits in the
4// product of two numbers
5
6// function to count number
7// of digits in the product
8// of two numbers
9function countDigits($a, $b)
10{
11 $count = 0;
12
13 // absolute value of the
14 // product of two numbers
15 $p = abs($a * $b);
16
17 // if product is 0
18 if ($p == 0)
19 return 1;
20
21 // count number of digits
22 // in the product 'p'
23 while ($p > 0)
24 {
25 $count++;
26 $p = (int)($p / 10);
27 }
28
29 // required count of digits
30 return $count;
31}
32
33// Driver Code
34$a = 33;
35$b = -24;
36echo "Number of digits = " .
37 countDigits($a, $b);
38
39// This code is contributed by mits
40?>
تعیین تعداد رقم های عدد به کمک لگاریتم
همانطور که در قسمت قبل دیدید، از آنجایی که میتوانیم هر عدد طبیعی را به فرم رابطه ۱ و برمبنای ۱۰ بنویسیم، برای محاسبه تعداد ارقام یک عدد از تقسیمهای متوالی آن بر عدد ۱۰ استفاده میکنیم. از طرفی با توجه به مفهوم لگاریتم نیز میتوانیم تعداد مراحل تقسیم یک عدد بر ۱۰، را بدست آوریم.
برای مثال، فرض کنید میخواهیم بدانیم در ۱۰۰ چند دسته ۱۰تایی وجود دارد. این امر دقیقا مانند عمل تقسیم است که بطور متوالی صورت میگیرد.
بنابراین میدانیم که تعداد ارقام ۱۰۰ برابر است با 3=2+1. به این ترتیب میتوانیم فرمول کلی محاسبه تعداد ارقام را بدست آوریم. پس اگر باز هم را تابع محاسبه تعداد ارقام در نظر بگیریم، خواهیم داشت:
رابطه ۲
همانطور که میدانید، علامت را براکت یا جزء صحیح عدد در نظر میگیرند. به تابع جز صحیح گاهی تابع کف (Floor) نیز میگویند.
مثال 1
برای پیدا کردن تعداد ارقام عدد ۹۸۷۶۵۴۳۲۱ نیز از لگاریتم برمبنای ۱۰ استفاده میکنیم. در این صورت باید محاسبه کنیم که تعداد تقسیمهای متوالی آن بر ۱۰ چند است. همانطور که گفتیم این کار را به کمک لگاریتمگیری انجام میدهیم.
اگر حاصل را به پایین گرد کنیم یا جز صحیح را محاسبه کنیم و حاصل را با ۱ جمع کنیم، تعداد ارقام عدد مورد نظر استخراج میشود.
نکته: اگر بخواهیم تعداد ارقام عدد را برمبنای ۲ محاسبه کنیم، باید لگاریتم را هم برمبنای ۲ بدست آوریم. پس در حالت کلی تعداد ارقام عدد برمبنای به صورت زیر نوشته میشود.
مثال ۲
تعداد رقمهای عدد 256 اگر برمبنای ۲ نوشته شود به صورت زیر استخراج میشود.
مشخص است که ۲۵۶ برمبنای ۲ به صورت 100000000 نوشته میشود که دارای ۹ رقم است. همچنین اگر بخواهیم تعداد ارقام ۲۵۶ را برمبنای ۸ محاسبه کنیم، میتوانیم بنویسیم:
مشخص است که عدد ۲۵۶ برمبنای ۸ به صورت 100 نوشته میشود که دارای سه رقم است.
پیدا کردن تقریبی مقدار لگاریتم عدد
همانطور که در رابطه ۲ مشاهده کردید، لگاریتم و جزء صحیح برای محاسبه تعداد ارقام یک عدد به کار گرفته شد. حال اگر این عبارت را برعکس کنیم، میتوانیم مقدار تقریبی لگاریتم یک عدد را محاسبه کنیم. کافی است که تعداد ارقام یک عدد را مشخص کرده و یک واحد از آن کم کنیم. در این صورت مقدار تقریبی لگاریتم بدست خواهد آمد.
رابطه ۳
مثال ۳
برطبق مثال ۱ مشخص شد که لگاریتم عدد 987654321 برابر است با 8٫99460، حال سعی میکنیم به کمک رابطه ۳، مقدار تقریبی لگاریتم 987654321 را محاسبه کنیم.
بنابراین مقدار لگاریتم این عدد تقریبا ۸ خواهد بود. البته روشهایی برای تعیین ارقام اعشار مقدار لگاریتم نیز وجود دارد که در مطلبی مجزا در مجله فرادرس به آنها خواهیم پرداخت.
تعداد ارقام حاصلضرب دو عدد
همانطور که مشاهده کردید، تعداد ارقام برای یک عدد را براساس تعداد مراحل تقسیم آن بر ۱۰ یا لگاریتم آن بدست آوردیم. حال به بررسی تعداد ارقام حاصلضرب دو عدد میپردازیم. به این ترتیب اگر و دو عدد طبیعی باشند، میخواهیم بدانیم حاصل چند رقم دارد. همانطور که قبلا اشاره کردیم، یک راه حل میتواند محاسبه حاصل ضرب و لگاریتمگیری باشد. ولی از آنجایی که لگاریتم ضرب دو عدد تبدیل به مجموع لگاریتم آنها میشود، خواهیم داشت:
بنابراین بدون آنکه عمل ضرب را انجام دهیم میتوانیم تعداد ارقام حاصلضرب را بدست آوریم. کافی است که لگاریتم هر یک از آن اعداد را برمبنای ۱۰ محاسبه کرده و با یکدیگر جمع کنیم. سپس به جزء صحیح مجموع آنها مقدار ۱ را اضافه کنیم.
مثال ۴
تعداد ارقام حاصل ضرب ۱۲۳۴۵ در ۶۷۸۹ به صورت زیر محاسبه میشود.
از آنجایی که این حاصلضرب برابر است با به خوبی کارایی فرمول ارائه شده مشخص میشود.
مثال ۵
در این مثال تعداد ارقام حاصلضرب 123456789987654321 در 987654321123456789 را بدست میآوریم.
تعیین تعداد رقم های عدد توان دار با لگاریتم
فرض کنید و دو عدد از مجموعه اعداد طبیعی (به غیر از صفر) باشند. با توجه به خصوصیات لگاریتم برای این دو عدد میتوان نوشت:
از همین خاصیت برای پیدا کردن تعداد ارقام عدد توان دار استفاده میکنیم. البته از آنجایی که توان را به صورت توالی عمل ضرب نیز میتوان در نظر گرفت، رابطه قبلی که در مورد تعداد ارقام حاصل ضرب دو عدد گفته شد، قابل استفاده است.
مثال ۶
تعداد ارقام عدد برابر است با:
کدهای برنامهنویسی برای پیدا کردن تعداد رقم های عدد توان دار
در ادامه کدهایی را به زبانهای مختلف برنامهنویسی مشاهده میکنید که محاسبات مربوط به تعداد رقم های عدد توان دار را انجام میدهند. فرض شده است که مقدارهای ورودی به صورت و هستند و قرار است تعداد ارقام محاسبه شود.
برنامه پیدا کردن تعداد رقم های عدد توان دار در ++C
1// CPP Program to calculate
2// no. of digits in a^b
3#include<iostream>
4#include<math.h>
5using namespace std;
6
7// function to calculate number
8// of digits in a^b
9int no_of_digit(int a, int b)
10{
11 return ((int)(b * log10(a)) + 1);
12}
13
14// driver program
15int main()
16{
17 int a = 2, b = 100;
18 cout <<"no. of digits = "<<
19 no_of_digit(a, b);
20}
21
22// This code is contributed by Smitha
برنامه پیدا کردن تعداد رقم های عدد توان دار در جاوا
1// Java Program to calculate
2// no. of digits in a^b
3class GFG {
4
5 // function to calculate number
6 // of digits in a^b
7 static int no_of_digit(int a, int b)
8 {
9 return ((int)(b * Math.log10(a)) + 1);
10 }
11
12 // driver program
13 public static void main(String[] args)
14 {
15 int a = 2, b = 100;
16 System.out.print("no. of digits = " +
17 no_of_digit(a, b));
18 }
19}
برنامه پیدا کردن تعداد رقم های عدد توان دار در پایتون
1# Python Program to calculate
2# no. of digits in a^b
3import math
4
5# function to calculate number
6# of digits in a^b
7def no_of_digit(a, b):
8 return ((int)(b * math.log10(a)) + 1)
9
10# Driver Program
11a = 2
12b = 100
13print("no of digits = ", no_of_digit(a, b))
14
15# This code is contributed by Shrikant13
برنامه پیدا کردن تعداد رقم های عدد توان دار در #C
1# Python Program to calculate
2# no. of digits in a^b
3import math
4
5# function to calculate number
6# of digits in a^b
7def no_of_digit(a, b):
8 return ((int)(b * math.log10(a)) + 1)
9
10# Driver Program
11a = 2
12b = 100
13print("no of digits = ", no_of_digit(a, b))
14
15# This code is contributed by Shrikant13
برنامه پیدا کردن تعداد رقم های عدد توان دار در PHP
1<?php
2// PHP Program to calculate
3// no. of digits in a^b
4
5// function to calculate number
6// of digits in a^b
7function no_of_digit($a, $b)
8{
9 return ((int)($b * log10($a)) + 1);
10}
11
12// Driver Code
13$a = 2; $b = 100;
14echo("no. of digits = " .no_of_digit($a, $b));
15
16// This code is contributed by Ajit.
17?>
خلاصه و جمعبندی
در این نوشتار با نحوه محاسبه تعداد ارقام عدد، ضرب دو عدد و عدد توان دار با استفاده از لگاریتم و خصوصیات آن آشنا شدیم. همچنین به کمک برنامههایی به زبانهای مختلف نظیر پایتون، ++C، جاوا، #C و PHP، این محاسبات را انجام دادیم. همانطور که دیدید، بدون آنکه لازم باشد حاصل عمل توان رساندن را انجام دهیم، میتوانیم تعداد ارقام یک عدد تواندار را محاسبه کنیم. این امر میتواند برای ارزیابی خطاهای محاسباتی مورد استفاده قرار گیرد.
اگر این مطلب برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای دروس ریاضیات
- آموزش ریاضی عمومی ۱ (همراه با حل مثال و تست کنکور کارشناسی ارشد)
- مجموعه آموزشهای ریاضی و فیزیک
- لگاریتم و خصوصیات آن — به زبان ساده
- قواعد بخش پذیری یا عاد کردن — به زبان ساده
- تقسیم عدد صحیح — به زبان ساده
^^
منظور من اذ پرسش سؤال در خصوص فيزيك كوانتم است كه كوچكترين ذره را به زبان رياضى با چه عددى مى توان نمايش داد؟