কিভাবে উল্লম্ব স্টিকস চ্যালেঞ্জের কাছে যেতে হবে


23

এই সমস্যাটি ইন্টারভিউস্ট্রেট ডটকম থেকে নেওয়া হয়েছে

আমাদের এর পূর্ণসংখ্যার অ্যারে দেওয়া হয় , Y এন }Y={y1,...,yn} যে প্রতিনিধিত্ব করে n রেখাংশ যেমন সেগমেন্টের এন্ড পয়েন্ট যে i হয় (i,0) এবং (i,yi) । কল্পনা করুন যে প্রতিটি বিভাগের শীর্ষ থেকে একটি অনুভূমিক রশ্মি বাম দিকে অঙ্কিত হয় এবং এই রশ্মিটি যখন অন্য বিভাগকে স্পর্শ করে বা এটি y- অক্ষকে আঘাত করে তখন বন্ধ হয়ে যায়। আমরা এন পূর্ণসংখ্যার, একটি অ্যারের গঠন করা v1,...,vn , যেখানেvi সেগমেন্ট উপর থেকে রশ্মি শট দৈর্ঘ্য সমানi । আমরা সংজ্ঞায়িতV(y1,...,yn)=v1+...+vn

উদাহরণস্বরূপ, যদি আমরা আছে Y=[3,2,5,3,3,4,1,2] , তারপর [v1,...,v8]=[1,1,3,1,1,3,1,2] , নীচের ছবিতে দেখানো হয়েছে:

এখানে চিত্র বর্ণনা লিখুন

প্রতিটি বিন্যাস জন্য এর [ 1 , , এন ] , আমরা নিরূপণ করতে পারেন ভী ( Y পি 1 , , Y পি এন ) । আমরা যদি একটি অবিশেষ এলোপাথারি বিন্যাস চয়ন পি এর [ 1 , , এন ] , কি প্রত্যাশিত মান ভী ( Y পি 1 , , Y পিp[1,...,n]V(yp1,...,ypn)p[1,...,n]?V(yp1,...,ypn)

আমরা যদি নিষ্প্রভ পদ্ধতির ব্যবহার করে এই সমস্যাটি সমাধান করি তবে এটি কার্যকর হবে না এবং জন্য চিরকাল ব্যবহারিকভাবে চলবে । আমি মনে করি আমরা indepdently প্রত্যাশিত মান গণনা করে এই সমস্যা যোগাযোগ করতে পারেন বনাম আমি প্রতিটি লাঠি কিন্তু আমি এখনও জানতে খাসি এই সমস্যার জন্য আরেকটি দক্ষ পন্থা প্রয়োজন। কোন ভিত্তিতে আমরা প্রতিটি কাঠির জন্য প্রত্যাশিত মানটি স্বাধীনভাবে গণনা করতে পারি?n=50vi


আপনি প্রত্যাশার লিনিয়ারিটি ব্যবহার করতে পারেন। এই প্রশ্নটি সম্ভবত গণিতের ক্ষেত্রে আরও উপযুক্ত SE এসই

উত্তর:


23

একটি ভিন্ন সমস্যাটি কল্পনা করুন: যদি আপনাকে এন স্লটে সমান উচ্চতার লাঠি রাখতে হয় তবে লাঠিগুলির মধ্যে প্রত্যাশিত দূরত্ব (এবং প্রথম কাঠি এবং একটি ধারণামূলক স্লট 0 এর মধ্যে প্রত্যাশিত দূরত্ব এবং শেষ কাঠি এবং একটি ধারণার মধ্যে প্রত্যাশিত দূরত্ব স্লট এন + 1 ) এন + 1kn0n+1 যেহেতুদৈর্ঘ্যn+1 এফিট করারজন্য+1ফাঁক রয়েছে।n+1k+1k+1n+1

এই সমস্যায় ফিরে, একটি নির্দিষ্ট লাঠি কতটা লাঠি (নিজেকে সহ) উচ্চ বা উচ্চতর সে সম্পর্কে আগ্রহী। যদি এই সংখ্যাটি , তবে এর বামে প্রত্যাশিত ফাঁকটি n + 1ও হবেkn+1k+1

সুতরাং অ্যালগরিদম হ'ল প্রতিটি কাঠির জন্য এই মানটি খুঁজে পাওয়া এবং প্রত্যাশা যুক্ত করা। উদাহরণস্বরূপ, উচ্চতা দিয়ে শুরু করে, একটি বৃহত্তর বা সমান উচ্চতার লাঠিগুলির সংখ্যা [ 5 , 7 , 1 , 5 , 5 , 2 , 8 , 7 ] সুতরাং প্রত্যাশা 9[3,2,5,3,3,4,1,2][5,7,1,5,5,2,8,7]96+98+92+96+96+93+99+98=15.25

এটি প্রোগ্রাম করা সহজ: উদাহরণস্বরূপ আর একটি একক লাইন

V <- function(Y){ (length(Y) + 1) * sum( 1 / (rowSums(outer(Y, Y, "<=")) + 1) ) }

মূল সমস্যাটিতে নমুনা আউটপুটে মান দেয়

> V(c(1,2,3))
[1] 4.333333
> V(c(3,3,3))
[1] 3
> V(c(2,2,3))
[1] 4
> V(c(10,2,4,4))
[1] 6
> V(c(10,10,10,5,10))
[1] 5.8
> V(c(1,2,3,4,5,6))
[1] 11.15

1
অনেক আগ্রহব্যাঞ্জক. লাঠিগুলির মধ্যে প্রত্যাশিত দূরত্ব কেন কেন আপনি দয়া করে কিছুটা ব্যাখ্যা করতে পারেন ; এটি কীভাবে গণনা করা হয়েছিল তা স্পষ্ট নয় (কমপক্ষে আমার কাছে)। ধন্যবাদ. (n+1)/(k+1)
এম আলাগান

আমার প্রথম যদি সমান উচ্চতা লাঠি, একটি দৈর্ঘ্য হল এন + + 1 সঙ্গে পূরণ করা + + 1 ফাঁক তাই গড় ফাঁক অন্যান্য পর এক বিভাজক থেকে আসে। এটি কোনও নির্দিষ্ট কাঠির আগে (এবং শেষ কাঠি থেকে এন + 1 পর্যন্ত ) প্রত্যাশিত ফাঁক (বা অনুভূমিক রশ্মি )। এটি কোনও নির্দিষ্ট কাঠির চেয়ে উচ্চ বা উচ্চতর কাঠিগুলিকে বিবেচনা করে মূল প্রশ্নে স্থানান্তর করে। kn+1k+1n+1
হেনরি

খুব সুন্দর. এটি আমার সমাধানটিকে পুরোপুরি গ্রহণ করে; যদি সমস্ত উচ্চতা পৃথক হয় তবে E[V]=k=1nn+1k+1=(n+1)(Hn+11)=(n+1)Hnn
জেফি

2
@ হেনরি: কে সমান উচ্চতা ধরে রাখার জন্য, এন স্লট সমস্যা, গড় দৈর্ঘ্য = (এন + 1) / (কে + 1) এর জন্য আপনার যুক্তি কী ছিল? আমার কাছে যদি কে কাঠি থাকে এবং আমি জানতে চাই যে এন কে স্লটগুলিতে প্রতিটি কে কাঠির লাঠির মধ্যে প্রতিটি কাঠির গড় রশ্মির দৈর্ঘ্য, এটি আসলে আপনার ফলাফলের সমান করে, তবে কেন বুঝতে পারছি না। আমি কি 1 স্টিক এবং এন স্লট, তারপর 2 টি লাঠি এবং এন, স্লট, ... কে স্টিকস, এন স্লটস এবং এটির সমান (এন + 1) / () সমান লক্ষ্য করে যা করা হয়েছে তা থেকে কি যুক্তি রয়েছে বা আপনি গাণিতিকভাবে তা নিরসন করেছেন? কে + 1)? আপনি একটি এন + 1 স্লট যুক্ত উল্লেখ করেছেন। এটা খুব পাল্টা স্বজ্ঞাত বলে মনে হচ্ছে।
আলেকজান্দ্রে

3
এটি এমন একটি প্রশ্ন যা আমি এর আগে সমাধান করেছি। টি আসন এবং কে + 1 জনের সাথে একটি গোল টেবিল দিয়ে শুরু করুন এবং এলোমেলোভাবে তাদের বসুন seat ব্যক্তিবিশেষের মধ্যে দূরত্ব স্পষ্টত গড় সঙ্গে IID হয় ( এন + + 1 ) / ( + + 1 ) । এখন n + 1 তম ব্যক্তির টেবিলটি ভাঙ্গুন , সেই ব্যক্তি এবং তাদের আসনটি সরিয়ে টেবিলটি সোজা করুন। এখন আপনার কাছে এন সিট এবং কে লোকের সাথে একই আইড সম্পত্তি এবং একই গড় নিয়ে প্রশ্ন রয়েছে। ( মাসের জন্য বিরল ছড়া স্পট করুন )n+1k+1(n+1)/(k+1)n+1thnk
হেনরি

11

হেনরির সমাধানটি এর চেয়ে সহজ এবং সাধারণ উভয়ই!


র্যান্ডমাইজড কুইকোর্টের মাধ্যমে সম্পাদিত তুলনামূলক তুলনায় প্রায় অর্ধেক।E[V]

কাঠিগুলির স্বতন্ত্র উচ্চতা রয়েছে বলে ধরে নিলে আমরা জন্য নিম্নরূপে একটি বদ্ধ-ফর্ম সমাধান পেতে পারি ।E[Y]

ijXij=1এক্স আমি = 0 ওয়াই এক্স আমি = 1 ওয়াই { ওয়াই আমি , ... , ওয়াই - 1 }Yj=max{Yi,...,Yj}Xij=0YXij=1Yj{Yi,,Yj1}

তারপর যে কোনো সূচির জন্য , আমরা (আপনি কেন?) এবং সেইজন্য বনাম = Σ আমি = 1 এক্স আমি ভী = Σ= 1 বনাম = Σ= 1 Σ আমি = 1 এক্স আমি jvj=i=1jXij

V=j=1nvj=j=1ni=1jXij.

প্রত্যাশার লাইনারিটি অবিলম্বে ইঙ্গিত করে যে

E[V]=E[1ijnXij]=1ijnE[Xij].

কারণ পারেন হয় বা , আমরা । 0 1 [ এক্স আমি ] = Pr [ এক্স আমি = 1 ]Xij01E[Xij]=Pr[Xij=1]

অবশেষে-এবং এই হল গুরুত্বপূর্ণ বিট-কারণ মান হয় স্বতন্ত্র এবং অবিশেষে উপসেট প্রতিটি উপাদান permuted, সমান সম্ভাবনা হতে হয় বৃহত্তম যে উপসেট মধ্যে উপাদান। সুতরাং, । (যদি এর উপাদানগুলি পৃথক না হয় তবে আমাদের এখনও )){ ওয়াই আমি , , ওয়াই } Pr [ এক্স আমি = 1 ] = 1Y{Yi,...,Yj} YPR[Xij=1]1Pr[Xij=1]=1ji+1YPr[Xij=1]1ji+1

এবং এখন আমরা কিছু গণিত আছে। যেখানে ম হারমোনিক সংখ্যাটি বোঝায় ।

E[V]=j=1ni=1jE[Xij][linearity]=j=1ni=1j1ji+1[uniformity]=j=1nh=1j1h[h=ji+1]=h=1nj=hn1h[1hjn]=h=1nnh+1h=((n+1)h=1n1h)(h=1n1)=(n+1)Hnn
Hnn

এখন সময়ে (ভাসমান পয়েন্ট যথার্থতা পর্যন্ত) গণনা করা তুচ্ছ হওয়া উচিত ।E[V]O(n)


এটি কি ধরে নেয় যে লাঠিগুলি পৃথক উচ্চতার হয়?
আর্যভাটা

হ্যাঁ, এটি পৃথক উচ্চতা ধরে নেয়। (স্পষ্টতই, আমি প্রশ্নটি ভুলভাবে পড়েছি)
জেফি

4

মন্তব্যে উল্লিখিত হিসাবে, আপনি প্রত্যাশার লিনিয়ারিটি ব্যবহার করতে পারেন।

বাছাই : ।yy1y2yn

প্রতিটি জন্য এর প্রত্যাশিত মান বিবেচনা করুন ।yivi=E[vi]

তারপরেE[i=1nvi]=i=1nE[vi]

গণনা করার জন্য একটি সোজা-এগিয়ে এবং নিখুঁত উপায় প্রথমত জন্য একটি অবস্থান ঠিক করা । বলে ।E[vi]yij

এখন সম্ভাবনাটি গণনা করুন যে পজিশনে আপনার মান ।j1yi

তারপরে সম্ভাবনা যে আপনার মান এবং আপনার মানj1<yij2yi

এবং তাই আপনাকে গণনা করার অনুমতি দেবে ।E[vi]

আপনি সম্ভবত এটি গণিত করে এবং একটি সূত্র পেয়ে দ্রুততর করতে পারেন (যদিও আমি নিজে এটি চেষ্টা করি নি)।

আশা করি এইটি কাজ করবে.


3

@ আর্যভট্টের উত্তরে প্রসারিত:

একটি ঠিক করুন , এবং ধরে নিন আইটেম অবস্থান । উচ্চতা সঠিক মান, অশরীরী কি গুরুত্বপূর্ণ আইটেম তার চেয়ে অনেক বেশী হয় বা সমান কিনা তা ব্যবহারকারীকে বা না। সুতরাং আইটেমগুলির সেট consider বিবেচনা করুন , যেখানে 1 হলে , এবং 0 অন্যথায় 0 হয়।iyijyiZ(i)zk(i)ykyizk(i)

সেট ওপর বিন্যাস সেট উপর একটি অনুরূপ বিন্যাস সংঘটিত । উদাহরণস্বরূপ সেটটির নিম্নোক্ত অনুমানটি বিবেচনা করুন : "01000 (1) ots "। item আইটেমটি হ'ল বন্ধনী, অবস্থান এবং আইটেমগুলি " " দ্বারা বোঝানো যায় না।Z(i)YZ(i)zi(i)j

মান তারপর 1 প্লাস মাত্র বাঁদিকে consective শূন্য রান দৈর্ঘ্য । এটি অনুসরণ করে যে আসলে 1 প্লাসের প্রত্যাশিত দৈর্ঘ্যের জিয়ারগুলির দৈর্ঘ্য, প্রথম" 1 "পূরণ না হওয়া পর্যন্ত, যদি আমরা সেট থেকে সর্বাধিক বিটগুলি বেছে নিই (প্রতিস্থাপন ছাড়াই)। এটি জ্যামিতিক বিতরণের স্মরণ করিয়ে দেয়, এটি প্রতিস্থাপন ছাড়াই (এবং অঙ্কিত সীমারেখা সংখ্যা) ব্যতীত। প্রত্যাশা গ্রহণ করা হয় পাশাপাশি অবস্থানের সেট, একটি অভিন্ন পছন্দ হিসাবে ।vizi(i)E(vi)j1Z(i)zi(i){ 1 , ... , এন }j {1,,n}

এটি একবার গণনা করা হয় ( এই লাইন বরাবর ), আমরা @ আর্যভট্ট এর উত্তর লাইন অনুসরণ করতে পারেন


-2

ট্যাগগুলি থেকে মনে হয় আপনি কোনও অ্যালগরিদম খুঁজছেন তা আমি সত্যিই বুঝতে পারি না।

যদি তা হয় তবে প্রত্যাশিত সময়ের জটিলতা কী? এই বলে যে: "আমরা যদি নির্বোধ দৃষ্টিভঙ্গি ব্যবহার করে এই সমস্যাটি সমাধান করি তবে এটি কার্যকর হবে না এবং এন = 50 এর জন্য চিরকাল ব্যবহারিকভাবে চলবে না।" আমার কাছে মনে হচ্ছে আপনার নিষ্পাপ দৃষ্টিভঙ্গি এটিকে তাত্পর্যপূর্ণ সময়ে সমাধান করে।

আমার মনে আছে ও (এন ^ 2) অ্যালগরিদম আছে।

assume int y[n], v[n] where v[i] initialized with 1; as described in the question
for (i=1;i<n;i++) 
   for ( j=i-1 ; j>=0 && y[j]<y[i] ; j--) v[i]++;
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.