Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> प्रोग्रामिंग

रॉड काटना


एक छड़ की लंबाई n दी गई है। एक अन्य तालिका भी प्रदान की गई है, जिसमें प्रत्येक आकार के लिए अलग-अलग आकार और मूल्य हैं। रॉड को काटकर बाजार में बेचकर अधिकतम मूल्य निर्धारित करें।

विभिन्न पदों पर कटौती करके और रॉड काटने के बाद कीमतों की तुलना करके सर्वोत्तम मूल्य प्राप्त करने के लिए।

मान लें कि f(n) लंबाई n के साथ एक पंक्ति काटने के बाद अधिकतम संभव मूल्य लौटाएगा। हम फंक्शन f(n) को इस प्रकार लिख सकते हैं।

f(n) :=कीमत से अधिकतम मूल्य[i]+f(n – i – 1), जहां i 0 से (n – 1) की सीमा में है।

इनपुट और आउटपुट

इनपुट :

विभिन्न लंबाई की कीमत, और छड़ की लंबाई। यहाँ लंबाई 8 है।

रॉड काटना

आउटपुट :

बेचने के बाद अधिकतम लाभ 22 है।

रॉड को लंबाई 2 और 6 में काटें। लाभ 5 + 17 =22

. है

एल्गोरिदम

rodCutting(price, n)

इनपुट: मूल्य सूची, सूची में विभिन्न कीमतों की संख्या।

आउटपुट: छड़ काटने से अधिकतम लाभ।

Begin
   define profit array of size n + 1
   profit[0] := 0
   for i := 1 to n, do
      maxProfit := - ∞
      for j := 0 to i-1, do
         maxProfit := maximum of maxProfit and (price[j] + profit[i-j-1])
      done

      profit[i] := maxProfit
   done
   return maxProfit
End

उदाहरण

#include <iostream>
using namespace std;

int max(int a, int b) {
   return (a > b)? a : b;
}

int rodCutting(int price[], int n) {    //from price and length of n, find max profit
   int profit[n+1];
   profit[0] = 0;
   int maxProfit;

   for (int i = 1; i<=n; i++) {
      maxProfit = INT_MIN;    //initially set as -ve infinity
      for (int j = 0; j < i; j++)
         maxProfit = max(maxProfit, price[j] + profit[i-j-1]);
      profit[i] = maxProfit;
   }
   return maxProfit;
}

int main() {
   int priceList[] = {1, 5, 8, 9, 10, 17, 17, 20};
   int rodLength = 8;
   cout << "Maximum Price: "<< rodCutting(priceList, rodLength);
}

आउटपुट

Maximum Price: 22

  1. रॉड काटना

    एक छड़ की लंबाई n दी गई है। एक अन्य तालिका भी प्रदान की गई है, जिसमें प्रत्येक आकार के लिए अलग-अलग आकार और मूल्य हैं। रॉड को काटकर बाजार में बेचकर अधिकतम मूल्य निर्धारित करें। विभिन्न पदों पर कटौती करके और रॉड काटने के बाद कीमतों की तुलना करके सर्वोत्तम मूल्य प्राप्त करने के लिए। मान लें कि f(n) ल

  1. सी # में एनम

    Enum वर्ष, उत्पाद, महीने, मौसम आदि जैसे नामित स्थिरांक के एक सेट को संग्रहीत करने के लिए गणना है। Enum स्थिरांक का डिफ़ॉल्ट मान 0 और वेतन वृद्धि से प्रारंभ होता है। इसमें स्थिरांक का एक निश्चित सेट होता है और इसे आसानी से पार किया जा सकता है। आइए एक उदाहरण देखें। हमने इस तरह से एनम सेट किया है -

  1. एक रॉड काटने के लिए पायथन कार्यक्रम

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें लंबाई n की एक छड़ और कीमतों की एक सरणी दी जाती है जिसमें आकार के सभी टुकड़ों की कीमतें होती हैं जो n से छोटी होती हैं। हमें रॉड को काटकर और उसके टुकड़े बेचकर प्राप्त होने वाले अधिकतम मूल्य को निर्धारित करने की आ