• 0
-الأمل-

خطأ في مصفوفة

سؤال

class Program

{

static void Main(string[] args)

{

int[] y = new int[4];

y[0] = 1;

y[1] = 0;

y[2] = 1;

y[3] = 0;

int[] g = new int[4];

g[0] = 1;

g[1] = 1;

g[2] = 0;

g[3] = 0;

int[] target = new int[5];

int[] b = new int[4];

int[] wg = new int[4];

int[] a= new int[4];

for (int i = 0; i < g[4]; i++)

post-240687-075365400 1306416631_thumb.p

هذي مصفوفة أريد أن أطبق فيها خوارزمية hebbnet أريد أن أطبقها على دالة AND

بحيث يوجد لدي: مصفوفة g ,y لديها القيم الموضحة

ومصفوفة target يتم فيها تخزين نتيجة الضرب.

wg[w] قانونها : wg[w] = g * target[ta];

a[aa]قانونها

a[aa] = y[j] * target[ta];

b[ba]= نفس قيمة target

نفذت الكود ويظهر هذا الخطأ:

post-240687-010914600 1306417228_thumb.p

تم تعديل بواسطه -الأمل-
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

20 إجابة على هذا السؤال .

  • 0

السلام عليكم ورحمه الله وبركاته

اختي المشكله انك عرفتي حجم المصفوفه 4


int[] g = new int[4];

يعني سوف تأخذ فهرس او دليل من 0 الى 3 وانت كتبتي الدليل 4؟؟

تم تعديل بواسطه VB Helper
1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ورحمه الله وبركاته

اختي نفس المشكله في المصفوفه y عرفتيها ب 3 عناصر وقمتي باستخدام الدليل 3؟؟؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ورحمه الله وبركاته

جربي هذا

int[] y = new int[4];

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

عملت زي كدا وماضبط....

طيب كيف أسند لعناصر المصفوفة قيم 0 أو 1

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ورحمه الله وبركاته

اختي يمكنك الاسناد اعتماد على دليل المصفوفه بس تأكدي انه مش خارج نطاقها .. ويستحسن ارفاق مشروعك للتعديل

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

طيب جربى كده


int[] y = new int[4];
y[0] = 1;
y[1] = 0;
y[2] = 1;
y[3] = 0;
int[] g = new int[4];
g[0] = 1;
g[1] = 1;
g[2] = 0;
g[3] = 0;
int[] target = new int[5];
int[] b = new int[4];
int[] wg = new int[4];
int[] a= new int[4];
for (int i = 0; i < g.Length; i++) {
Response.Write(g[i] + "<br/>");
}

غير كلمة Response بكلاس الى بتقومى بطباعة بيه

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ورحمه الله وبركاته

اختي يمكنك الاسناد اعتماد على دليل المصفوفه بس تأكدي انه مش خارج نطاقها .. ويستحسن ارفاق مشروعك للتعديل

طيب

ConsoleApplication1.rar

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ورحمه الله وبركاته

اختي اصلا كودك ملخبط شوي .. يعني مشاكل في الاقواس!! انت ايه ناويه تعملي ؟!!

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ورحمة الله وبركاته

جربي هذا الكود يا صحبتي :)


static void Main(string[] args)
{
int[] X1 = new int[] { 1, 1, 0, 0 };
int[] X2 = new int[] { 1,0 ,1 ,0};
int[] B = new int[] { 1,1,1,1};
int[] T = new int[4];
int[] oldW1 = new int[4];
int[] oldW2 = new int[4];
int[] oldB = new int[4];
int[] newW1 = new int[]{0,0,0,0};
int[] newW2 = new int[]{0,0,0,0};
int[] newB = new int[]{0,0,0,0};
for (int i = 0; i < 4; i++)
{
T[i] = X1[i] * X2[i];
oldW1[i] = X1[i] * T[i];
oldW2[i] = X2[i] * T[i];
oldB[i] = T[i];

}
newW1[0] = newW1[0] + oldW1[0];
newW2[0] = newW2[0] + oldW2[0];
newB[0] = newB[0] + T[0];
for (int i = 1; i < 4; i++)
{
newW1[i] = newW1[i-1] + oldW1[i];
newW2[i] = newW2[i-1] + oldW2[i];
newB[i] = newB[i-1] + T[i];
}
Console.WriteLine(" InPut Target WeightChanges NewWeights");
for (int i = 0; i < 4; i++)
{
Console.Write(" ");
Console.Write(X1[i]);

Console.Write( X2[i]);
Console.Write(B[i]);
Console.Write(" ");
Console.Write( T[i]);
Console.Write(" ");
Console.Write(oldW1[i]);
Console.Write(oldW2[i]);
Console.Write(oldB[i]);
Console.Write(" ");
Console.Write( newW1[i]);
Console.Write (newW2[i]);
Console.Write (newB[i]);
Console.WriteLine();
}
Console.ReadLine();


}

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ورحمه الله وبركاته

وبرضه اختي ليش بعض المصفوفات فيها اصفار او واحدات او اصفار وواحدات؟!!

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

وعليكم السلام

المصفوفات اللي فيها اصفار ووحايد هي تبغى تسند هذي القيم للمصفوفة فثبتها من البدايه

والمصفوفوات اللي فيها اصفار هذي قيم ابتدائية عشان تقدر تجري عليها عمليه حسابيه.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ورحمه الله وبركاته

اختي اصلا كودك ملخبط شوي .. يعني مشاكل في الاقواس!! انت ايه ناويه تعملي ؟!!

وعليكم السلام ورحمة الله وبركاته

هي شبكة عصبية جداً بسيطة.... تمثل نتيجة الرابطAND بين مصفوفتين....والناتج نحطه في مصفوفة target وبعدين نحسب الأوزان الجديدة بالقانون....عمليات حسابية ..بس تكون بالتتابع يعني نتيجة الوزن التي في الصف التالي تعتمد على الوزن في الصف الأول الصف الأول

السلام عليكم ورحمة الله وبركاته

جربي هذا الكود يا صحبتي :)


static void Main(string[] args)
{
int[] X1 = new int[] { 1, 1, 0, 0 };
int[] X2 = new int[] { 1,0 ,1 ,0};
int[] B = new int[] { 1,1,1,1};
int[] T = new int[4];
int[] oldW1 = new int[4];
int[] oldW2 = new int[4];
int[] oldB = new int[4];
int[] newW1 = new int[]{0,0,0,0};
int[] newW2 = new int[]{0,0,0,0};
int[] newB = new int[]{0,0,0,0};
for (int i = 0; i < 4; i++)
{
T[i] = X1[i] * X2[i];
oldW1[i] = X1[i] * T[i];
oldW2[i] = X2[i] * T[i];
oldB[i] = T[i];

}
newW1[0] = newW1[0] + oldW1[0];
newW2[0] = newW2[0] + oldW2[0];
newB[0] = newB[0] + T[0];
for (int i = 1; i < 4; i++)
{
newW1[i] = newW1[i-1] + oldW1[i];
newW2[i] = newW2[i-1] + oldW2[i];
newB[i] = newB[i-1] + T[i];
}
Console.WriteLine(" InPut Target WeightChanges NewWeights");
for (int i = 0; i < 4; i++)
{
Console.Write(" ");
Console.Write(X1[i]);

Console.Write( X2[i]);
Console.Write(B[i]);
Console.Write(" ");
Console.Write( T[i]);
Console.Write(" ");
Console.Write(oldW1[i]);
Console.Write(oldW2[i]);
Console.Write(oldB[i]);
Console.Write(" ");
Console.Write( newW1[i]);
Console.Write (newW2[i]);
Console.Write (newB[i]);
Console.WriteLine();
}
Console.ReadLine();


}

طيب ياصحبتي إن شاء الله بجربه..تسلمي

تم تعديل بواسطه -الأمل-
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ورحمه الله وبركاته

اختي انصحك باستخدام ال BitArray للتعامل مع البتات ..

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ضبط الكود يامنول....بس لازم أدور على طريقة ثانية ...أ. وفاء قالت ماتبغى يتشابه الحل بين البنات

تم تعديل بواسطه -الأمل-
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

لا يا صحبتي هذا الكود انتي سويتيه بس انا عدلت فيه..

هذا لك . :)

وانا بسوي بطريقة تانيه..

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ورحمه الله وبركاته

اختي ذكرت سابقا يمكنك استخدام ال BitArray وستوفر عليك الكثير ..

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ورحمه الله وبركاته

اختي ذكرت سابقا يمكنك استخدام ال BitArray وستوفر عليك الكثير ..

وعليكم السلام ورحمه الله وبركاته.... أخي الكريم ايش فكرتها....لم استخدمها من قبل...وتوفر ماذا؟

لا يا صحبتي هذا الكود انتي سويتيه بس انا عدلت فيه..

هذا لك . :)

وانا بسوي بطريقة تانيه..

طيب تسلمي ماحردك :P

تم تعديل بواسطه -الأمل-
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ورحمه الله وبركاته

اختي اذا كنت تريدي التعامل مع مصفوفات على شكل بتات فهذا النوع صمم لهذا الغرض, فمثلا يمكنك استدعاء اجراء And للقيام بعمل هذا المعامل لجميع عناصر المصفوفه بدون دوران والكثير الكثير ..

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .