ملاحظتي: -
إذا لاحظت عن كثب نمط القوة الغاشمة
const wrapper = (value) => { const helper = (combinedArray, depth) => { if (depth == 3) { // operation return ; } for (let coin of coins) { if (value - coin >=0) { combinedArray.push(coin); helper(combinedArray, label 1); combinedArray.pop(); } } } helper([], 0); return result; }; const res = wrapper(value); console.log(res);
س1. ابدأ بمجموعتين من العملات المعدنية
const wrapper = () => { const coinSide = ['head', 'tail'] const result = []; const helper = (currentCombination, depth) => { if (depth == 2) { result.push([...currentCombination]); return ; } for (side of coinSide) { currentCombination.push(side); helper(currentCombination, depth 1); currentCombination.pop() } } helper([], 0); return result; }; const res = wrapper(); console.log(res);
السؤال الثاني. ابدأ بثلاث مجموعات من العملات المعدنية
const wrapper = () => { const coinSide = ['head', 'tail'] const result = []; const helper = (currentCombination, depth) => { if (depth == 3) { result.push([...currentCombination]); return ; } for (side of coinSide) { currentCombination.push(side); helper(currentCombination, depth 1); currentCombination.pop() } } helper([], 0); return result; }; const res = wrapper(); console.log(res); /* [ [ 'head', 'head', 'head' ], [ 'head', 'head', 'tail' ], [ 'head', 'tail', 'head' ], [ 'head', 'tail', 'tail' ], [ 'tail', 'head', 'head' ], [ 'tail', 'head', 'tail' ], [ 'tail', 'tail', 'head' ], [ 'tail', 'tail', 'tail' ] ] */
س3. ترتيب الجلوس
const wrapper = () => { const result = []; const group = ['b1', 'b2', 'g1'] const helper = (combination, depth) => { if (depth == 3) { result.push([...combination]); return; } for (let item of group) { if (combination.indexOf(item) ،، ['g1'، 'b1'، 'b2']، ['g1'، 'b2'، 'b1' ] ] */
السؤال الرابع. مشكلة العملة / المبلغ// Minimum coin Problem const wrapper = (value) => { let result = 99999; let resultArr = []; const coins = [10, 6, 1]; const helper = (value, label, combinedArray) => { if (value == 0) { if (result > label) { result = label; resultArr = [...combinedArray] } return ; } for (let coin of coins) { if (value - coin >=0) { combinedArray.push(coin); helper(value-coin, label 1, combinedArray); combinedArray.pop(); } } } helper(value, 0, []); console.log(resultArr) return result; }; const res = wrapper(12); console.log(res); /* [ 6, 6 ] 2 */// مشكلة الحد الأدنى للعملة المجمع الثابت = (القيمة) => { دع النتيجة = 99999؛ دع resultArr = []; العملات الثابتة = [10، 6، 1]؛ مساعد const = (القيمة، التسمية، الصفيف المدمج) => { إذا (القيمة == 0) { إذا (النتيجة> التسمية) { النتيجة = التسمية؛ resultArr = [...combinedArray] } يعود ؛ } لـ (دع عملة معدنية) { إذا (القيمة - العملة >=0) { CombinedArray.push(coin); helper(value-coin, label 1, CombinedArray); CombineArray.pop(); } } } helper(value, 0, []); console.log(resultArr) نتيجة الإرجاع؛ }; const res = المجمع (12)؛ console.log(res); /* [ 6, 6 ] 2 */
Q5.Set الجيل// Minimum coin Problem const wrapper = (value) => { let result = 99999; let resultArr = []; const coins = [10, 6, 1]; const helper = (value, label, combinedArray) => { if (value == 0) { if (result > label) { result = label; resultArr = [...combinedArray] } return ; } for (let coin of coins) { if (value - coin >=0) { combinedArray.push(coin); helper(value-coin, label 1, combinedArray); combinedArray.pop(); } } } helper(value, 0, []); console.log(resultArr) return result; }; const res = wrapper(12); console.log(res); /* [ 6, 6 ] 2 */// المشكلة 1: إنشاء كافة المجموعات الفرعية للمجموعة // بيان المشكلة: // بالنظر إلى مجموعة من العناصر الفريدة، قم بإنشاء جميع المجموعات الفرعية الممكنة (مجموعة الطاقة). // يحتاج هذا الحل إلى مزيد من التحسين. // مثال: // الإدخال: [1، 2، 3] // الإخراج: [[]، [1]، [2]، [3]، [1، 2]، [1، 3]، [2، 3]، [1، 2، 3]] غلاف ثابت = () => { النتيجة الثابتة = [[]]؛ إدخال ثابت = [1,2,3]; input.forEach(item => result.push([item])); مساعد const = (التركيبة، العمق) => { إذا (العمق == 2) { إذا (result.indexOf(combination)
السؤال السادس: مشكلة رجل المبيعات المتجول باستخدام خوارزمية القوة الغاشمة// Minimum coin Problem const wrapper = (value) => { let result = 99999; let resultArr = []; const coins = [10, 6, 1]; const helper = (value, label, combinedArray) => { if (value == 0) { if (result > label) { result = label; resultArr = [...combinedArray] } return ; } for (let coin of coins) { if (value - coin >=0) { combinedArray.push(coin); helper(value-coin, label 1, combinedArray); combinedArray.pop(); } } } helper(value, 0, []); console.log(resultArr) return result; }; const res = wrapper(12); console.log(res); /* [ 6, 6 ] 2 */// مشكلة رجل المبيعات المتجول باستخدام خوارزمية القوة الغاشمة وظيفة حساب المسافة (مصفوفة، مسار) { دع المسافة الإجمالية = 0؛ من أجل (دع i = 0؛ i { إذا (العمق == 4) { result.push([...combination]); يعود؛ } لـ (دع العنصر من arr) { إذا (combination.indexOf(item) Index) console.log(المدن) التباديل الثابت = التباديل(المدن); console.log(التباديل) دع minDistance = Infinity; Let bestPath = []; لـ (دع مسار التباديل) { مسافة ثابتة = احسب المسافة (مصفوفة، مسار)؛ إذا (المسافة
س7. 0/1 مشكلة القوة الغاشمة في حقيبة الظهر// Minimum coin Problem const wrapper = (value) => { let result = 99999; let resultArr = []; const coins = [10, 6, 1]; const helper = (value, label, combinedArray) => { if (value == 0) { if (result > label) { result = label; resultArr = [...combinedArray] } return ; } for (let coin of coins) { if (value - coin >=0) { combinedArray.push(coin); helper(value-coin, label 1, combinedArray); combinedArray.pop(); } } } helper(value, 0, []); console.log(resultArr) return result; }; const res = wrapper(12); console.log(res); /* [ 6, 6 ] 2 */// 0/1 مشكلة القوة الغاشمة في حقيبة الظهر وظيفة knapsackBruteForce (الأوزان والقيم والسعة) { دع n = الأوزان. الطول؛ دع maxValue = 0؛ const subsetResult = []; كونست ثنائي فالس = [0، 1]؛ // وظيفة لحساب الوزن الإجمالي وقيمة مجموعة فرعية وظيفة حساب المجموعة الفرعية (مجموعة فرعية) { دع الوزن الإجمالي = 0؛ دع القيمة الإجمالية = 0؛ من أجل (دع i = 0؛ i { إذا (العمق == 4) { subsetResult.push([...combination]); يعود ؛ } لـ (دع عنصر BinaryVals) { combin.push(item); مساعد (تركيبة، عمق 1)؛ مزيج.البوب () } } مساعد([], 0); console.log(subsetResult) // إنشاء كافة المجموعات الفرعية باستخدام التمثيل الثنائي لـ (دع مجموعة فرعية من subsetResult) { Let { TotalWeight, TotalValue } = countSubset(subset); إذا (الوزن الإجمالي القيمة القصوى) { maxValue = TotalValue; } } إرجاع القيمة القصوى؛ } // مثال للاستخدام: الأوزان الثابتة = [2، 3، 4، 5]؛ القيم الثابتة = [3، 4، 5، 6]؛ السعة الثابتة = 5؛ const maxVal = knapsackBruteForce(weights,values,capacity); console.log(`القيمة القصوى في الحقيبة هي: ${maxVal}`); /* [ [ 0، 0، 0، 0 ]، [ 0، 0، 0، 1 ]، [ 0، 0، 1، 0 ]، [ 0، 0، 1، 1 ]، [ 0، 1، 0، 0 ]، [ 0، 1، 0، 1 ]، [ 0، 1، 1، 0 ]، [ 0، 1، 1، 1 ]، [ 1، 0، 0، 0 ]، [ 1، 0، 0، 1 ]، [ 1، 0، 1، 0 ]، [ 1، 0، 1، 1 ]، [ 1، 1، 0، 0 ]، [ 1، 1، 0، 1 ]، [ 1, 1, 1, 0 ], [ 1, 1, 1, 1 ] ] الحد الأقصى للقيمة في الحقيبة هو: 7 */
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3