2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
लोभी विधिएकप्रकारस्य समाधानम् अस्तिअनुकूलनसमस्या एषा पद्धतिः वर्तमानस्थितौ स्थानीय इष्टतमस्य (अथवा उत्तमस्य) अनन्तरं इष्टतमं (अथवा उत्तमं) वैश्विकं परिणामं प्राप्तुं रणनीतिं सर्वदा विचारयति । स्पष्टतया यदि उत्तमः किन्तु इष्टतमः न रणनीतिः स्वीक्रियते (इष्टतमरणनीतिः नास्ति वा चिन्तयितुं सुलभं वा न स्यात्), तर्हि प्राप्तं वैश्विकं परिणामं इष्टतमं न भवितुम् अर्हतिइष्टतमं परिणामं प्राप्तुं प्रत्येकं मध्यवर्ती चरणरणनीतिः इष्टतमः भवितुम् आवश्यकः अस्ति, अतः समस्यायाः समाधानार्थं लोभी पद्धतिः कठोररूपेण उपयुज्यते ।अनुकूलनं कुर्वन्तु प्रश्ने स्वीकृतस्य रणनीत्याः औचित्यम् आवश्यकम् अस्ति। प्रमाणस्य सामान्यविचारः अस्ति यत् विरोधाभासेन गणितीयप्रेरणया च प्रमाणस्य उपयोगः अर्थात् रणनीतिः इष्टतमसमाधानं प्राप्तुं न शक्नोति इति कल्पयित्वा ततः रणनीतिः इष्टतमः इति सिद्धयितुं व्युत्पत्तिश्रृङ्खलायाम् विरोधं प्राप्तुं , तथा च अन्ततः वैश्विक इष्टतमं सुनिश्चित्य गणितीयप्रेरणस्य उपयोगं कुर्वन्तु। परन्तु नित्यप्रयोगाय मनसि आगच्छन्तं रणनीत्यं कठोररूपेण सिद्धयितुं समयः सुकरः वा न भवेत् (लोभस्य प्रमाणं प्रायः लोभात् एव कठिनतरं भवति), अतः सामान्यतया यदि भवान् सम्भवं प्रतीयते इति रणनीतिं चिन्तयति तर्हि यदि च भवन्तः प्रतिउदाहरणं दातुं न शक्नुवन्ति तर्हि तस्य कार्यान्वयनार्थं साहसं कुर्वन्तु।
0 तः 9 पर्यन्तं संख्यानां संख्यां दत्त्वा भवान् एताः सङ्ख्याः यथाक्रमं व्यवस्थितुं शक्नोति, परन्तु भवान् तान् सर्वान् उपयोक्तुं शक्नोति, लक्ष्यसङ्ख्यां च यथाशक्ति लघुं कर्तुं शक्नोति (अवश्यं, 0 प्रथमा न भवितुम् अर्हति) द्वौ ०, द्वौ १, त्रीणि ५, An ८ च, लघुतमा संख्या १००१५५८५८ प्राप्ता ।
मम विश्वासः अस्ति यत् भवान् एकदा एव रणनीतिं द्रष्टुं शक्नोति: प्रथमं लघुतमं सङ्ख्यां चिनोतु यत् 1 तः 9 पर्यन्तं 0 नास्ति तत् आउटपुट् कर्तुं, ततः 0 तः 9 पर्यन्तं सङ्ख्याः आउटपुट् कुर्वन्तु प्रत्येका संख्या कियत्वारं आउटपुट् भवति तस्य अवशिष्टा संख्या अस्ति
सम्यक् रणनीत्याः प्रमाणम्:
पाठ्यपुस्तके यः अस्ति सः वस्तुतः अति अमूर्तः अस्ति तथा च किञ्चित् भ्रष्टः इव दृश्यते।
- #include <cstdio>
- #include <vector>
- #include <iostream>
- #include <algorithm>
- using namespace std;
-
- int main() {
- vector<int> V;
- for(int i=1;i<=10;i++)
- {
- int temp=0;
- cin>>temp;
- V.push_back(temp);
- }
- sort(V.begin(),V.end()); //直接排成升序
- int flag=0; //标记
- for(int i=0;i<=9;i++)
- if(V[i]!=0)
- {
- int temp=V[i];
- V[i]=V[0];
- V[0]=temp;
- flag=i;//保存第一个不为0的位置
- break;
- }
- for(int i=flag+1;i<=9;i++) //找更小的头,直接从flag下一位开始即可,节省时间~
- if(V[i]<V[0]&&V[i]!=0)
- {
- int temp=V[i];
- V[i]=V[0];
- V[0]=temp;
- }
- for(int i=0;i<=9;i++)
- cout<<V[i];
- }
तार्किकरूपेण इदं कठिनं नास्ति, मुख्यं वस्तु स्पष्टतया चिन्तयितुं~
कल्पयतु यदि भवान् प्रमुखः स्यात् तर्हि भवान् कथं "लोभी" भविष्यति? स्पष्टतया - यदि भवन्तः केवलं सीमितमागधायाः अन्तः यथासम्भवं महत्तम-एकक-मूल्येन यावन्तः चन्द्र-चन्द्र-विक्रेतुं प्रवृत्ताः सन्ति तर्हि किं अधिकतमं कारोबारं संग्रहीतुं न शक्यते ? निम्नलिखितम् एकं कार्यान्वयनम् अस्ति यत् स्वयं ब्लोगरेन लिखितम् अस्ति, यत् पाठ्यपुस्तके यत् अस्ति तस्मात् भिन्नम् अस्ति।
- #include <cstdio>
- #include <vector>
- #include <iostream>
- #include <algorithm>
- using namespace std;
-
- struct mooncake{
- double num; //总数
- double income; //总收入
- double price; //单价,需要自己计算
- };
-
- int main() {
- int N,M;
- cin>>N>>M;
- vector<mooncake> V;
- for(int i=1;i<=N;i++)
- {
- mooncake temp;
- V.push_back(temp);
- }
- cout<<"请输入数量:"<<endl;
- for(int i=1;i<=N;i++)
- {
- double num=0;
- cin>>num;
- V[i-1].num=num;
- }
- cout<<"请输入总价:"<<endl;
- for(int i=1;i<=N;i++)
- {
- double income=0;
- cin>>income;
- V[i-1].income=income;
- }
- for(int i=0;i<=N-1;i++)
- V[i].price=V[i].income/V[i].num; //计算单价
- //按单价降序排列!保证贵的尽可能多卖
-
- for(int i=0;i<=V.size()-1;i++)
- {
- for(int j=i;j<=V.size()-1;j++)
- if(V[j].price>V[i].price)
- {
- mooncake temp;
- temp=V[j];
- V[j]=V[i];
- V[i]=temp;
- }
- }
- for(int i=0;i<=V.size()-1;i++)
- cout<<"单价第"<<(i+1)<<"高的值为:"<<V[i].income<<" "<<V[i].price<<" "<<V[i].num<<endl;
-
-
- for(int i=0;i<=N-1;i++)
- cout<<V[i].num<<endl;
- int j=0; //使用的下标
- double count=0; //总利润
- while(M>0) //当还有需求量时
- {
- double doubt=0;
- doubt=M-V[j].num; //用M减去当前类型的额总量
- if(doubt>=0)//减了以后M还有剩余
- {
- M-=V[j].num;//当前种类全部卖出
- count+=V[j].income;//直接总价相加
- j++;
- cout<<V[j].num;
- }
- else if(doubt<0) //不够减这么多
- {
- count+=V[j].price*M;//剩余部分按照单价计算
- break;
- }
- }
- cout<<"最高利润值为:"<<count<<endl;
- return 0;
- }
उपरिष्टाद् whlie पाशस्य सावधानीपूर्वकं स्वादनं कुर्वन्तु: यदा M 0 नास्ति - अर्थात् अद्यापि माङ्गलिका अस्ति, तदा महत्तमान् चन्द्रमाकं विक्रयन्तु। एकैकं क्रमेण विक्रयणं कुर्वन्तु : यदि वर्तमानमागधा सर्वेषां वर्तमानप्रकाराणां विक्रयणार्थं पर्याप्तं भवति तर्हि कुलमूल्यं प्रत्यक्षतया योजितं भविष्यति यदि सर्वेषां वर्तमानानाम् विक्रयणं पर्याप्तं न भवति तर्हि तत्र यावन्तः विक्रयणं कुर्वन्तु भवन्ति तथा एककमूल्याधारितं गणनां कुर्वन्ति~
पाठ्यपुस्तकात् परीक्षणप्रकरणेन सह तस्य परीक्षणं कुर्मः :
परिणामः ९४.५० अस्ति, यत् मानक उत्तर~ इत्यनेन सह सङ्गतम् अस्ति
तदतिरिक्तं अत्रत्यः ब्लोगरः प्रत्यक्षतया मुख्यकार्य्ये क्रमणं लिखति, स्वतन्त्रे कार्ये लिखति ततः संरचना-प्रकारस्य सदिशे दोषः अस्ति इति भाति, क्रमणं सफलं न भवति कारणं, भवन्तः टिप्पणीक्षेत्रे लिखितुं शक्नुवन्ति~
प्रश्नकाण्डं यथा भवति ।
एतादृशप्रश्नार्थं भवद्भिः केवलं स्मर्तव्यं यत्——बृहत्तरं वामान्तबिन्दुयुक्तं अन्तरालं प्राधान्यं ददातु!
वयं किमर्थं एतत् कुर्मः इति वदामः, यथा उपरि चित्रे दर्शितम् अस्ति: न कठिनं लभ्यते,यथासंभवं अधिकानि विकल्पानि सुनिश्चित्य यदा दीर्घतरान्तरे लघुतरं अन्तरालं भवति तदा प्रथमं लघुतमं अन्तरालं चिन्वन्तु, एतत् सुलभतया अवगन्तुम्।
उपर्युक्तस्थितेः कृते, यथा १, २ इत्यादीनां आच्छादितान्तराणां कृते, एतत् न कठिनं ज्ञातुं यत् यदि भवान् बृहत्तमवामान्तबिन्दुना सह अन्तरालम् १ चिनोति तर्हि केवलं ९ स्थानं गृह्णीयात्, यदा तु यदि भवान् २ अन्तरालं चिनोति तर्हि तत् गृह्णीयात् position 8. स्थितिः - एतत् स्पष्टतया लोभी यथासम्भवं अल्पं धनं व्यययितुं (कमस्थानं व्यययितुं) विचारेण सह न सङ्गतम्, अतः भवन्तः यथासम्भवं वामतः दूरं चयनं कुर्वन्तु, येन अधिकानि रिक्तस्थानानि भविष्यन्ति दक्षिणे ~ यथा उपरि, .वयं हस्तगणनाद्वारा द्रष्टुं शक्नुमः यत् अधिकतया ४ विसंगताः सन्ति ।
पाठ्यपुस्तकात् कोडः : १.
- #include <cstdio>
- #include <algorithm>
- using namespace std;
-
- const int maxn=110;
- struct Inteval{
- int x,y; //开区间左右端点
- }I[maxn];
-
- bool cmp(Inteval a,Inteval b)
- {
- if(a.x!=b.x)
- return a.x>b.x; //左端点从大到小排序
- else
- return a.y<b.y; //左端点相同的按右端点从小到大排序
- }
-
- int main() {
- int n;
- while(scanf("%d",&n,n!=0))
- {
- for(int i=0;i<n;i++)
- scanf("%d%d",&I[i].x,&I[i].y);
- sort(I,I+n,cmp); //排序区间
- int ans=1,lastX=I[0].x;
- //ans记录总数,lastX记录上一个被选择的区间的左端点
- for(int i=1;i<n;i++)
- {
- if(I[i].y<=lastX) //如果该区间右端点在lastX左边
- {
- lastX=I[i].x; //以I[i]作为新选中的区间
- ans++; //不相交的区间个数+1
- }
- }
- printf("%dn",ans);
- }
- return 0;
- }
तथापि, ब्लोगर्-जनाः अद्यापि मूल-सरणयः न रोचन्ते अत्र सदिश-संरचना-संस्करणम् अस्ति ।
- #include <iostream>
- #include <vector>
- #include <algorithm>
- using namespace std;
-
- struct section{
- int x=0;
- int y=0;
- //x和y分别为左右端点
- };
-
-
- int main() {
- int n=0;
- vector<section> V;
- cin>>n;
- for(int i=1;i<=n;i++) //读入数据
- {
- section temp;
- int x=0,y=0;
- cin>>x>>y;
- if(x>y) //防止左端点大于右端点
- {
- int temp1=x;
- x=y;
- y=temp1;
- }
- else if(x==y) //若左右端点相同
- {
- i-=1; //则当前输入 不算
- cout<<"不可以输入相同的左右端点!"<<endl;
- continue; //舍弃数据,本次循环作废~
- }
- temp.x=x;
- temp.y=y;
- V.push_back(temp);
- }
- //按要求排序区间优先级
- for(int i=0;i<=V.size()-1;i++)
- {
- for(int j=i+1;j<=V.size()-1;j++)
- {
- if(V[j].x>V[i].x) //左端点越大越靠前
- {
- section temp=V[j];
- V[j]=V[i];
- V[i]=temp;
- }
- else if(V[j].x==V[i].x&&V[j].y<V[i].y) //左端点相同的话,右端点小的优先
- {
- section temp=V[j];
- V[j]=V[i];
- V[i]=temp;
- }
- }
- }
- cout<<"顺序如下:"<<endl;
- for(int i=0;i<=V.size()-1;i++)
- cout<<V[i].x<<"~"<<V[i].y<<endl;
- int count=1,lastX=V[0].x;
- //count用来统计总数,lastX是上一个符合条件的区间的左端点
-
- for(int i=1;i<=V.size()-1;i++)//直接从第二个区间开始
- {
- if(V[i].y<lastX) //如果当前区间的右端点不和上一个左端点相加,满足题意
- {
- lastX=V[i].x;
- count++;
- }
- }
- cout<<count<<endl;
- return 0;
- }
परीक्षा यथा भवति- १.
सामान्यतया लोभी पद्धतिः एकप्रकारस्य अनुकूलनसमस्यायाः समाधानार्थं प्रयुक्तः एल्गोरिदमिकविचारः अस्ति तथा च स्थानीय इष्टतमरणनीत्याः वैश्विकं इष्टतमं परिणामं प्राप्तुं आशास्तिलोभी अल्गोरिदम प्रयोज्यसमस्याः इष्टतम-उपसंरचनायाः गुणाः अवश्यं सन्तुष्टाः भवेयुः, अर्थात् समस्यायाः इष्टतमं समाधानं तस्याः उपसमस्यानां इष्टतमसमाधानात् प्रभावीरूपेण निर्मातुं शक्यते स्पष्टतया सर्वाणि समस्यानि लोभी पद्धतेः कृते उपयुक्तानि न सन्ति, परन्तु एतेन लोभी एल्गोरिदम् सरलं, व्यावहारिकं, कुशलं च एल्गोरिदम्~ भवितुं न निवारयति~