একটি সংখ্যার প্রতিটি ডিজিটকে একত্রে বার বার যোগ করার মাধ্যমে একটি ডিজিট বিশিষ্ট সংখ্যাই রূপান্তর করার প্রক্রিয়াকেই ডিজিটাল রুট বলে। উদাহরণঃ
173 এর ডিজিটাল রুট নির্ণয়:
1 + 7 + 3 = 11
1 + 1 = 2
উত্তরঃ 2
9256987 এর ডিজিটাল রুট নির্ণয়
9 + 2 + 5 + 6 + 9 + 9 + 7 = 46
4 + 6 = 10
1 + 0 = 1
উত্তরঃ 1
এইভাবে ডিজিটাল রুট বের করার পদ্ধতিকে Naive method বলা হয়। যা প্রোগ্রামিঙয়ের মাধ্যমে বার বার লুপ চালিয়ে বের করা যায় (নিজে করো)
এবার আস আরেকটি সহজ পদ্ধতি চিন্তা করি
DigitalRoot(1) = 1
DigitalRoot(2) = 2
DigitalRoot(3) = 3
... ... ...
DigtalRoot(9) = 9
DigitalRoot(10) =1 + 0 -> 1
DigtalRoot(11) = 1 + 1 -> 2
DigitalRoot(12) = 1 + 2 -> 3
DigitalRoot(13) = 1 + 3 = 4
... ... ...
DigitalRoot(18) = 1 + 8 = 9
... ... ...
কি দেখতে পেলে আমরা যদি পর পর প্রতিটি সংখ্যার digital root বের করতে থাকি তাহলে বার বার ১, ২, ৩, ৪, ৫, ৬, ৭ , ৮, ৯ এই মান গুলো পর পর বার বার আসছে। অর্থাৎ শেষবার মান ৯ আসার পর আবারও ১ থেকে মান আসা শুরু হচ্ছে। একই কাজ আমারা ৯ দ্বারা ভাগ করে ভাগশেষ বের করার মাধ্যমে করতে পারি। তবে যখন আমাদের ভাগশেষ ০ আসবে তবে আমাদের ডিজিটাল রুট কে ৯ ধরতে হবে। কিন্তু যদি ০ এর ডিজিটাল রুট বের করতে বলে তাহলে ভাগশেষ ০ হলেও ডিজিটাল রুট ০ ই হবে।
1 mod 9 = 1
2 mod 2 = 2
...
9 mod 9 = 0 (০ কে আমারা ৯ ধরব)
10 mod 9 = 1
11 mod 9 = 2
12 mod 9 = 3
13 mod 9 = 4
...
18 mod 9 = 0 (9)
... ... ...
অর্থাৎ ডিজিটাল রুট নির্ণয়ের সূত্রটি হবে:
Python code snippet:
def dr(n):
if n == 0:
return 0
m = n % 9
return m if m != 0 else 9
যার Big(o) Complexity: O(1)
Top comments (4)
This is dev.to every post you make should be in english as i know bengali i can read it but those who dont know bengali they can't so edit it and everything in english so that everyone can read it
Ok I will edit it as soon as possible
LOL. I guess if dev.to had a language section you could've chose your language.
That would be great but this will be my last Bengali post on dev.to until they have that feature.