سؤال

لدي ورقة اكسل يحتوي على قائمة من اللاعبين الرياضيين, مواقفهم, راتب المخصصة لهؤلاء اللاعبين, والمبلغ المتوقع من النقاط.

أنا حاليا باستخدام حلالا لخلق أفضل مجموعة من اللاعبين الرياضيين ممكن مع بعض القيود موقف وضمن سقف الراتب محددة مسبقا.

في المثال المحدد الخاص بي ، مواقف اللاعب المختلفة هي:بغ ، سغ ، سف ، يف ، ج ، ز ، وف.لاحظ أن ز يمكن أن يكون إما خريج أو سغ ، و و يمكن أن يكون إما سادس أو يف.

يعمل هذا الحل حاليا ، ولكن في بعض الحالات قد يكون للاعب مواقع متعددة.لذلك ، على سبيل المثال ، لاعب ويمكن استخدام سادس أو سان جرمان.

هل هناك أي طريقة لحساب هذا ضمن وظيفة حلالا بحيث لاعب في السؤال يمكن استخدامها في أي فتحة?

للمساعدة في التوضيح ، سأقدم بعض الأمثلة على البيانات المستخدمة.فيما يلي عينة صغيرة من قائمة اللاعبين:

Position Player             Salary     Game                Points   Pos 1   Pos 2
PF/C    Kevin Love          $10,400     Pho@Min 09:30PM ET  53.17    PF      C
PG/SG   Stephen Curry       $10,000     GS@Bkn 07:30PM ET   47.50    PG      SG
SG/SF   James Harden        $9,500  LAL@Hou 08:00PM ET  41.13    SG      SF 
PF/C    LaMarcus Aldridge   $9,500  Orl@Por 10:00PM ET  45.22    PF      C
PF/C    Anthony Davis       $9,200  Was@NO 08:00PM ET   42.97    PF      C
PF/C    Blake Griffin       $9,000  Bos@LAC 10:30PM ET  42.66    PF      C
PG      John Wall           $8,900  Was@NO 08:00PM ET   42.09    PG
PF/C    Dwight Howard       $8,700  LAL@Hou 08:00PM ET  41.19    PF      C
SG/SF   Paul George         $8,600  Ind@Atl 07:30PM ET  40.06    SG      SF
PF      Paul Millsap        $8,400  Ind@Atl 07:30PM ET  37.96    PF
PF/C    Al Horford          $8,300  Ind@Atl 07:30PM ET  37.33    PF      C

لحل قضية ز و و ، لدي قائمة أن احصاء اللاعبين "المحدد" ، وهذه القائمة لديها دقيقة/ماكس لكل منهما.لذلك في هذا المثال أحتاج 1 بغ ، 1 سغ ، و 1 ز.لذلك لدي عمود بغ مع دقيقة من 1 والحد الأقصى من 2 ، عمود سغ مع دقيقة من 1 والحد الأقصى من 2 ، وعمود ز ، الذي يضيف بغ/سغ معا التي لديها دقيقة من 3 والحد الأقصى من 3.ثم جزء من معايير حلالا هو كل دقيقة / ماكس يجب أن تتطابق.

لقد تقسيم العمود الأول إلى بوس 1 و بوس 2 لفصل اثنين من المواقف المحتملة ، ولكن لا أستطيع معرفة كيفية تضمين كل من في وظيفة حلالا.لاعب مثل كيفن الحب, أريد حلالا أن تأخذ في الاعتبار أنه يمكن وضعها في أي يف, و, أو ج البقع.

هنا هو أن الجدول:

    PG  SG  SF  PF  C   G   F   Ttl
Min 1   1   1   1   1   3   3   8
Max 3   3   3   3   2   4   4   8
Cur 1   3   1   2   1   4   3   8

على سبيل المثال ، معايير الحل هي:

Sum of Salary <= Salary Cap (50000)
PG Cur >= PG Min
Repeat for all Min
PG Cur <= PG Max
Repeat for all Max
Maximize Points

وأخيرا ، إليك مثال على الحل:

PG   Stephen Curry    $10,000     47.5
SG   James Harden     $9,500      41.13
SF   Paul George      $8,600      40.06
PF   Dwight Howard    $8,700      41.19
C    Blake Griffin    $9,000      42.66
G    John Wall        $8,900      42.09
F    Al Horford       $8,300      37.33
Total                 $63,000     292.5

يتناسب كل لاعب مع الفتحة الخاصة به لأن أحد موقعيهما (نقاط البيع 1 أو نقاط البيع 2) يناسب المعايير.من الواضح أن المجموع لا يصلح ، لذلك لن يكون هذا حلا قابلا للتطبيق ، لكنه مجرد مثال.

آمل أن أكون قد قدمت تفاصيل كافية ، ولكن إذا لم يكن الأمر كذلك ، فيرجى إخباري وسأكون سعيدا بشرح المزيد.شكرا مقدما.

هل كانت مفيدة؟

المحلول

لا يزال سؤالك غامضا بعض الشيء لأن سقف راتبك هو 50000 دولار ولكنك تظهر 63000 دولار من اللاعبين المختارين.

الافتراضات:
1.تريد 5 لاعبين لأن هذا هو عدد اللاعبين في الطابق والطريقة الوحيدة للحصول على فريق يتكون من قائمة اللاعبين الخاصة بك أقل من 50000 دولار.وربما هذا هو الأطواق الخيال وتريد 7 أو 8, ولكن الحل يجب أن لا تزال تعمل ل 8 لاعبين إما مع قائمة أوسع من الخيارات ورواتب أقل.
2.سأفترض أيضا أن هناك القليل-لا فبا هنا لأنك لم تقدم أي - أو على الأقل لا شيء من ذلك يحتاج إلى تعديل.

حل بلدي (الذي لا يزال في الاختبار) هو رمي/يلقي (أو ما يعادلها فبا) ل بوس 1 و بوس 2 إلى نص رقم الموقف (أي 1 = بغ ، 2=سغ ، الخ.).

التالي, =concatenate(Pos1, Pos2) بحيث بغ هو 11 ، بغ / سغ هو 12 ، الخ.("ز" هو أيضا 11 في هذا السيناريو الذي قد يضع خلل في المنطق بلدي).

تغيير الجدول موقفكم مع مين / ماكس / قيم كور يبدو شيئا من هذا القبيل:

Pos.    | PG | G  | PG/SG | SG | SG/SF | SF/PF | F  | PF | PF/C | C  
--------------------------------------------------------------------  
Pos1    | 1  | 1  | 1     | 2  | 2     | 3     | 3  | 4  | 4    | 5  
Pos2    | 1  | 2  | 2     | 2  | 3     | 4     | 4  | 4  | 5    | 5  
PosNbr  | 11 | 12 | 12    | 22 | 23    | 34    | 34 | 44 | 45   | 55  
--------------------------------------------------------------------  
Min     | 1  | 3  | 3     | 1  |       | 3     | 4  | 1  |      | 1  
Max     | 3  | 4  | 4     | 3  |       | 4     | 4  | 3  |      | 2  
Curr    | 1  | 1  | 1     | 0  | 0     | 0     | 0  | 0  | 3    | 0  

(القيم هي بلدي).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top