PDA

View Full Version : مبتدی: ضرب دو آرایه سه عنصری



aspismylove
یک شنبه 28 آبان 1391, 18:44 عصر
سلام دوستان شبتون بخیر ...

ببخشید میخاستم من و راهنمایی کنین برای نوشتن این برنامه :متفکر:

ببینید میخام یک برنامه ای که دو آرایه یک بعدی که سه عنصر داره را بگیرم و با هم ضرب کنم و حالا حاصل این ضرب رو توی یک آرایه ی یک بعدی ۶ عنصری بریزم ...

میشه راهنمایی کنین چطوری باید این کار و انجام بدم ؟ :ناراحت::افسرده::افسرده:

مسعود اقدسی فام
یک شنبه 28 آبان 1391, 18:55 عصر
یعنی چی به هم ضرب کنید؟ قاتون ضربش چیه؟ اگه مثل ماتریس بخواید ضرب کنید که یا اولی رو سطری در نظر می‌گیرید و دومی رو ستونی و نتیجه می‌شه یه عدد. یا اولی رو ستونی در نظر می‌گیرید و دومی رو سطری که نتیجش می‌شه یه ماتریس سه در سه.
اگه منظور از ضرب مثل ضرب نقطه‌ای بردارهاست که عنصر اول در عنصر اول و عنصر دوم در عنصر دوم و الی آخر ضرب می‌شه، نتیجه بازم یه آرایه سه تایی می‌شه.
این شش تا عدد از کجا می‌یان؟ اینو مشخص کنید.

aspismylove
یک شنبه 28 آبان 1391, 18:58 عصر
یعنی چی به هم ضرب کنید؟ قاتون ضربش چیه؟ اگه مثل ماتریس بخواید ضرب کنید که یا اولی رو سطری در نظر می‌گیرید و دومی رو ستونی و نتیجه می‌شه یه عدد. یا اولی رو ستونی در نظر می‌گیرید و دومی رو سطری که نتیجش می‌شه یه ماتریس سه در سه.
اگه منظور از ضرب مثل ضرب نقطه‌ای بردارهاست که عنصر اول در عنصر اول و عنصر دوم در عنصر دوم و الی آخر ضرب می‌شه، نتیجه بازم یه آرایه سه تایی می‌شه.
این شش تا عدد از کجا می‌یان؟ اینو مشخص کنید.

نمیدونم والا :افسرده:
این استاده برگش گفت : ضرب دو تا عدد سه رقمی جوابش میشه یک عدد ۶ رقمی ...

همین کار و گف با آرایه ها انجام بدید ...:عصبانی++:

مسعود اقدسی فام
یک شنبه 28 آبان 1391, 19:30 عصر
نمیدونم والا :افسرده:
این استاده برگش گفت : ضرب دو تا عدد سه رقمی جوابش میشه یک عدد ۶ رقمی ...

همین کار و گف با آرایه ها انجام بدید ...:عصبانی++:

آهان. خب اینو از اول بگید.

هر رقم یه خانه آرایه قرار می‌گیره و انگار دوران ابتدایی می‌خوایم ضرب انجام بدیم. یکان ضرب در یکان و غیره.

aspismylove
یک شنبه 28 آبان 1391, 19:36 عصر
آهان. خب اینو از اول بگید.

هر رقم یه خانه آرایه قرار می‌گیره و انگار دوران ابتدایی می‌خوایم ضرب انجام بدیم. یکان ضرب در یکان و غیره.

مرسی مسعود جان از راهنمایی :بوس:

این و استاد گف که هر رقم با سه رقم دیگه ضرب میشه و . . . ولی من هیچی نمیفهمم و بلد نیستم ، میشه راهنمایی کنی بنویسم و ی توضیح کوچیک که بفهمم ؟؟؟

ممنون میشم :افسرده:

مسعود اقدسی فام
یک شنبه 28 آبان 1391, 19:56 عصر
مرسی مسعود جان از راهنمایی :بوس:

این و استاد گف که هر رقم با سه رقم دیگه ضرب میشه و . . . ولی من هیچی نمیفهمم و بلد نیستم ، میشه راهنمایی کنی بنویسم و ی توضیح کوچیک که بفهمم ؟؟؟

ممنون میشم :افسرده:

خب روش ضرب دو عدد سه رقمی چطوریه؟ یکان رو در هر سه رقم بالایی ضرب می‌کنیم با اون شرایطی که می دونی و نتیجه رو یه آرایه دیگه (همون شش تایی) ذخیره می‌کنیم. بعد رقم دهگان رو همین کار رو می‌کنیم اما از عنصر دوم آرایه جدید به عناصر قدیمی جمع می‌زنیم. همین که دهگان رو یکی می‌کشیدیم اینور یادته دیگه. همینطور صدگان. تموم که شد اون آرایه به دست اومده.

صرفا کار کردن با اندیس‌هاست. دو تا حلقه تکرار تو در تو از صفر تا سه و تکرار همین کارا که بالا گفتم.

maktoom
یک شنبه 28 آبان 1391, 23:20 عصر
سلام
با این روش از محدودیت خلاص میشید.
ضرب اعداد بزرگ فقط با اینجور روش ها امکان پذیره.

mahak006
یک شنبه 28 آبان 1391, 23:40 عصر
این ها در واقع کاربرد آرایه در تشکیل ضرب دو چند جمله ای در یکدیگر هست و کاربردی که اینجا داره ، به جای جمله ی متغیر چند جمله ای ( X ) عدد 10 جایگزین می شه . به این ترتیب ، 10^0 ( همان X^0 در حالت چند جمله ای ) تشکیل یکان رو میده ، 10^1 دهگان و 10^2 صدگان و...
حالا بره ضربشون ، الگوریتم های مختلفی وجود داره . یکیش همین الگوریتم استانداردی هست که دوستان بهش اشاره کردن . با دو حلقه می شه پیاده سازیش کرد . دومی الگوریتم تقسیم و غلبه و سومی ، الگوریتم تقسیم و غلبه سریع که از اسم ها بر می شه فهمید که الگوریتم سوم ، بهبود یافته ی دومی هست و عملا سریع تر از بقیه هستش .( تو عددای بزرگ تر نشون می ده .)
شما فک کنم همون الگوریتم استاندارد کارتو راه بندازه :


for (int i=0 ; i<n ; i++)
for (j=0 ; j<n ; j++)
c[i+j] += a[i]*b[j];

فک کنم الگوریتم به راحتی گویای روش کار باشه . چون خیلی سادس . ولی اگه جاییش براتون ابهام داره ، سؤال بپرسین ، خودم یا دوستان جواب می دن .