নোটিশের অবস্থা


35

কোনও গিঁটের ডকার সংকেত এবং এর ক্রসিং লক্ষণগুলি দেওয়া, এর বন্ধনীটির বহুবর্ষ গণনা করুন।

যদিও আরও প্রযুক্তিগত সংজ্ঞা রয়েছে, তবে এই চ্যালেঞ্জের জন্য একটি গিঁটকে শারীরিকভাবে তৈরি কিছু হিসাবে স্ট্রিংয়ের দুটি প্রান্তকে সংযুক্ত করে ভাবা যথেষ্ট । যেহেতু গিঁটগুলি তিন মাত্রায় বিদ্যমান, আমরা যখন সেগুলি কাগজে আঁকি, আমরা নট ডায়াগ্রামগুলি ব্যবহার করি - দ্বি-মাত্রিক অনুমান যেখানে ক্রসিংগুলি হুবহু দুটি রেখার হয়, একটি ওভার এবং তার নীচে।

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

এখানে (খ) এবং (গ) একই গিঁটের বিভিন্ন চিত্র রয়েছে।

আমরা কীভাবে কাগজে নট চিত্রটি উপস্থাপন করব? আমাদের বেশিরভাগই রিমব্র্যান্ড নয়, সুতরাং আমরা ডকার স্বরলিপিটির উপর নির্ভর করি , যা নীচের মত কাজ করে:

গিঁটে একটি নির্বিচারে সূচনা পয়েন্ট চয়ন করুন। নিম্নলিখিত সংশোধন সহ, গিঁট এবং নম্বর ক্রসিং আপনি সম্মুখীন, 1 থেকে শুরু বরাবর একটি অবাধ দিক সরান: যদি এটা একটি এমনকি সংখ্যা এবং বর্তমানে আপনি চলুন উপর ক্রসিং, অস্বীকার যে এমনকি নম্বর। অবশেষে, 1, 3, 5, ইত্যাদির সাথে সমান সংখ্যাগুলি বাছাই করুন

আসুন একটি উদাহরণ চেষ্টা করুন:

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

এই গিঁটে, আমরা আমাদের প্রারম্ভিক বিন্দু হিসাবে "1" বেছে নিয়েছি এবং উপরে এবং ডানদিকে যেতে প্রস্থান করি। প্রতিবার যখন আমরা দড়িটির অন্য অংশের উপরে বা তার নিচে যাব , তখন আমরা ক্রসিং পয়েন্টটি পরবর্তী প্রাকৃতিক সংখ্যা নির্ধারণ করি। আমরা যেমন স্ট্রাগের উপর দিয়ে যায় এমন স্ট্র্যান্ডের সাথে সমান সংখ্যাকে অস্বীকার করি, উদাহরণস্বরূপ [3,-12]ডায়াগ্রামে। সুতরাং, এই চিত্রটি দ্বারা প্রতিনিধিত্ব করা হবে [[1,6],[2,5],[3,-12],[-4,9],[7,8],[-10,11]]। 1, 3, 5, 7 ইত্যাদির বন্ধুদের তালিকাভুক্ত করা আমাদের দেয় [6,-12,2,8,-4,-10]

এখানে কয়েকটি বিষয় লক্ষণীয়। প্রথমত, ডকার সংকেত প্রদত্ত গিঁটের জন্য অনন্য নয় , কারণ আমরা একটি স্বেচ্ছাসেবী শুরুর দিক এবং দিকনির্দেশ বেছে নিতে পারি। তবে, স্বরলিপিটি দেওয়া হলে, কেউ গাঁটের কাঠামো সম্পূর্ণরূপে নির্ধারণ করতে পারে (প্রযুক্তিগতভাবে, তার মূল নট উপাদানগুলির প্রতিচ্ছবি পর্যন্ত)। যদিও সমস্ত ডোকার স্বরলিপিগুলি সম্ভব গিঁট তৈরি করতে পারে না, এই সমস্যায় আপনি ধরে নিতে পারেন যে ইনপুটটি একটি আসল গিঁকে উপস্থাপন করে।

গিঁটের প্রতিচ্ছবিগুলির মধ্যে অস্পষ্টতা এড়াতে এবং চ্যালেঞ্জটি সমাধান করা সহজ করার জন্য, আপনাকে ইনপুট হিসাবে ক্রসিং লক্ষণগুলির একটি তালিকাও দেওয়া হবে ।

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

ধনাত্মক ক্রসিংয়ের ফলে নিম্ন রেখাটি উপরের লাইনের দৃষ্টিকোণ থেকে বাম দিকে যায়। নেতিবাচক ক্রসিংয়ে এটি ডানদিকে যায়। লক্ষ্য করুন গিঁট কাছাকাছি যাচ্ছে দিক reversing (অর্থাত উভয় reversing উপর লাইন এবং অধীনে ক্রসিং লক্ষণ পরিবর্তন করে না লাইন)। আমাদের উদাহরণে ক্রসিং লক্ষণগুলি [-1,-1,-1,1,-1,1]। এগুলি ডকার স্বরলিপি হিসাবে একই ক্রমে দেওয়া হয়, অর্থাত্ 1, 3, 5, 7 ইত্যাদি ক্রসিংয়ের জন্য etc.

এই চ্যালেঞ্জে আমরা একটি গিঁটের বন্ধনী বহুবর্ষ গণনা করব । এটি এমন একটি বস্তু যা নট ডায়াগ্রামের সর্বাধিক রূপান্তর জুড়ে অদৃশ্য concept এমন একটি ধারণা যা এটিকে নট তত্ত্ব বিশ্লেষণে চূড়ান্তভাবে কার্যকর করে তোলে। (আবারও, বেশিরভাগ নট তাত্ত্বিকগণ জোস পলিনোমিয়াল, যা সমস্ত রূপান্তরগুলিতে অদ্বিতীয়, তা গণনা করার পথে একটি মধ্যবর্তী পণ্য হিসাবে ব্র্যাকেট বহুবর্ষটি গণনা করেন , তবে আমরা তা করব না)) সুতরাং এটি কীভাবে কাজ করবে? ব্র্যাকেট বহুপদী একটি লরেন্ট বহুপদী - এটির মধ্যে একটি পরিবর্তনশীল (traditionতিহ্যগতভাবে নামকরণ করা হয় ) নেতিবাচক শক্তিতে উত্থাপিত হতে পারে, পাশাপাশি ইতিবাচকও।একজন

প্রদত্ত নট ডায়াগ্রাম জন্য, বহুবর্ষের জন্য three হিসাবে উপস্থাপিত তিনটি নিয়ম :ডি ডিডি

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

  1. কোনও ক্রসিং ছাড়াই একমাত্র লুপের বহুপদী 1।

  2. আমরা এর মধ্যে রয়েছে একটি ডায়াগ্রাম থাকে তাহলে এবং একটি লুপ থেকে সংযোগ বিচ্ছিন্ন , উভয়ের জন্য বহুপদী জন্য বহুপদী হয় বার ।ডি ডি ( - 2 - - 2 )ডিডিডি(-একজন2-একজন-2)

  3. এই নিয়মটি সবচেয়ে কৌশলযুক্ত। এটি বলে যে যদি আপনার মতো দেখতে কোনও ক্রসিং থাকে তবে আপনি এই বিধিটি দুটি ভিন্ন উপায়ে নটকে সহজ করতে ব্যবহার করতে পারেন:ডিএখানে চিত্র বর্ণনা লিখুন

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

উপরের চিত্রটিতে, প্রথম চিত্রের রূপরেখার ক্রসিংটি, যা রূপটি এখানে চিত্র বর্ণনা লিখুন, এখানে চিত্র বর্ণনা লিখুনদ্বিতীয় চিত্র হিসাবে (ওরফে পজিটিভ স্মুথিং ) বা এখানে চিত্র বর্ণনা লিখুনতৃতীয় চিত্র হিসাবে ( নেতিবাচক স্মুথিং ) রূপান্তরিত হতে পারে ।

সুতরাং, প্রথম চিত্রের বন্ধনী বহুবর্ষটি হ'ল দ্বিতীয় বারের এর তৃতীয় বারের of এর বন্ধনী বহুপদী , অর্থাৎ,- একজনএকজন-1

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

এখনও বিভ্রান্ত? আসুন একটি উদাহরণ দিন, এর ব্র্যাকেট বহুবর্ষের সন্ধানের জন্য চেষ্টা করুন এখানে চিত্র বর্ণনা লিখুন(দ্রষ্টব্য: এটি দুটি নট একসাথে যুক্ত। মধ্যবর্তী ফলাফল অ্যালগরিদমে।)

আমরা প্রথমে নিয়ম 3 ব্যবহার করি

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

আমরা নতুন গিঁট দুটিতেই আবার নিয়ম 3 ব্যবহার করি

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

আমরা এই 4 টি নতুন নটকে প্রথম সমীকরণে প্রতিস্থাপন করব।

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

এই 4 টিতে 1 এবং 2 বিধি প্রয়োগ করা আমাদের জানান

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

সুতরাং, এই আমাদের বলুন

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

নট থিওরিতে আপনার সংক্ষিপ্ত ভূমিকাটি সম্পন্ন করার জন্য অভিনন্দন!

ইনপুট

দুটি তালিকা:

  • Dowker স্বরলিপি, যেমন [6,-12,2,8,-4,-10]। ক্রসিংয়ের সংখ্যা 1 থেকে শুরু করা আবশ্যক। সম্পর্কিত বিজোড় সংখ্যাগুলি [1,3,5,7,...]অন্তর্নিহিত এবং অবশ্যই ইনপুট হিসাবে সরবরাহ করা উচিত নয়

  • সাইনস ( 1/ -1অথবা আপনি 0/ 1অথবা false/ trueঅথবা '+'/ '-') পছন্দসই ডকার স্বরলিপি সম্পর্কিত ক্রসিংয়ের জন্য উদাহরণস্বরূপ [-1,-1,-1,1,-1,1]

এক জোড়া তালিকার পরিবর্তে আপনার কাছে জোড়ার একটি তালিকা থাকতে পারে [[6,-1],[-12,-1],...

আউটপুট

বহুবর্ষটি মুদ্রণ করুন বা প্রত্যাবর্তন করুন, উদাহরণস্বরূপ , এক্সপোজনগুলির ক্রমবর্ধমান ক্রমে এবং কোনও শূন্য সহগের ছাড়াই, যেমন, গুণাগুণ-ব্যয়কারী জোড় (বা এক্সপোজন-সহগ জোড়া) এর তালিকা হিসাবে ।একজন-2+ +5+ +একজন-একজন3[[1,-2],[5,0],[1,1],[-1,3]]

অন্যথা, আউটপুট বহিঃপ্রকাশ করার কোফিসিয়েন্টস correspondings একটি বিজোড় দৈর্ঘ্যের তালিকা জন্য কিছু , যেমন । কেন্দ্রীয় উপাদান হ'ল ধ্রুবক শব্দ ( পূর্বে সহগ )। বামতম এবং ডানদিকের উপাদানগুলি উভয়ই 0 টি হওয়া উচিত।কে এন 0-...এন[0,1,0,5,1,0,-1]একজন0

বিধি

এটি একটি চ্যালেঞ্জ। স্ট্যান্ডার্ড লুফোলগুলির কোনওটিই ব্যবহার করা যায় না এবং লাইব্রেরিগুলিতে যেগুলি ডোকার স্বরলিপিগুলি বা ব্রাকেট পলিনোমিয়ালগুলি গণনা করার জন্য সরঞ্জামগুলি ব্যবহার করতে পারে না cannot (যে ভাষাতে এই গ্রন্থাগারগুলি রয়েছে সেগুলি এখনও লাইব্রেরি / প্যাকেজ নয়, ব্যবহার করা যেতে পারে)।

টেস্ট

// 4-tuples of [dowker_notation, crossing_signs, expected_result, description]
[
 [[],[],[[1,0]],"unknot"],
 [[2],[1],[[-1,3]],"unknot with a half-twist (positive crossing)"],
 [[2],[-1],[[-1,-3]],"unknot with a half-twist (negative crossing)"],
 [[2,4],[1,1],[[1,6]],"unknot with two half-twists (positive crossings)"],
 [[4,6,2],[1,1,1],[[1,-7],[-1,-3],[-1,5]],"right-handed trefoil knot, 3_1"],
 [[4,6,2,8],[-1,1,-1,1],[[1,-8],[-1,-4],[1,0],[-1,4],[1,8]],"figure-eight knot, 4_1"],
 [[6,8,10,2,4],[-1,-1,-1,-1,-1],[[-1,-7],[-1,1],[1,5],[-1,9],[1,13]],"pentafoil knot, 5_1"],
 [[6,8,10,4,2],[-1,-1,-1,-1,-1],[[-1,-11],[1,-7],[-2,-3],[1,1],[-1,5],[1,9]],"three-twist knot, 5_2"],
 [[4,8,10,2,12,6],[1,1,-1,1,-1,-1],[[-1,-12],[2,-8],[-2,-4],[3,0],[-2,4],[2,8],[-1,12]],"6_3"],
 [[4,6,2,10,12,8],[-1,-1,-1,-1,-1,-1],[[1,-10],[2,-2],[-2,2],[1,6],[-2,10],[1,14]],"granny knot (sum of two identical trefoils)"],
 [[4,6,2,-10,-12,-8],[1,1,1,1,1,1],[[1,-14],[-2,-10],[1,-6],[-2,-2],[2,2],[1,10]],"square knot (sum of two mirrored trefoils)"],
 [[6,-12,2,8,-4,-10],[-1,-1,-1,1,-1,1],[[1,-2],[1,6],[-1,10]],"example knot"]
]

বাহ্যিক সংস্থান

চ্যালেঞ্জের জন্য প্রয়োজনীয় নয়, তবে আপনি যদি আগ্রহী হন:


স্যান্ডবক্স পোস্ট: 1 , 2

ডাউকার স্বরলিখনের আমার সংজ্ঞাটিতে একটি ভুল ধরার জন্য @ চাসব্রাউন এবং @ এইচপিউইজকে ধন্যবাদ জানাই


মন্তব্যগুলি বর্ধিত আলোচনার জন্য নয়; এই কথোপকথন চ্যাটে সরানো হয়েছে ।
মেগো

1
@ জিএনএন: আরও ভাল! আমি অনুমান করছিলাম যে এটিই বোঝানো হয়েছিল তবে সঠিকভাবে প্রকাশ করার জন্য এটি একটি জিহ্বা টুইটারের কিছুটা। :)
চ্যাস ব্রাউন

উত্তর:



12

ব্রেন-ফ্লাক , 1316 বাইট

(({})<({()<(({}<>))><>}){(({})[()()]<{([{}]({})<>({}<>))}{}(([({}<>)]<<>({}<>)<>((({})<<>{({}<>)<>}<>>))>)){({}<>)<>}<>{}(({}<{}(({}<{({}<>)<>}>))>))<>{({}<>)<>}>)}<>>){(({}){}()<({}<>)>)<>{}(({}){}<>)<>}<>{}{}(()){(<({}<({}<>)>)>)<>((){[()](<(({})<>){({}[({})]<>({}<>))}{}({}<>({}<{}<>{({}<>)<>}>)[()])<>({}({})[()])(([()]{()(<({}[({})]())>)}{})<{(<{}{}>)}{}><>{()((<({}()[({}<>)])<>>))}{}<{}{}>)((){[()]<({}()<({}<({}<<>({()<({}<>)<>>}<>){({}[()]<(({})<({()<({}<>)<>>})<>>)<>{({}[()]<<>({}<>)>)}{}>)}<>>)<>>)>)((){[()](<{}(({})<<>(({})<(<<>({}<<>({}<(()()){({}[()]<([{}]()<>)<>({}<<>{({}({})<>[({}<>)])}{}{}>){({}<>)<>}<>>)}{}>{})>)>)<>{}{({}<>)<>}<>([({}<>)]<((()))>)(())<>({}<>)<>{}({}[()]){<>({}<<>(()()){({}[()]<({}<<>{({}<>)<>}>){({}[({})]<>({}<>))}{}(({})<<>({}<>)<>([{}])>)>)}{}{}>)<>({}<(({})())>[()]<>)}{}({}<<>{}([{}]()<{({}<>)<>}>){({}({})<>[({}<>)])}{}{}>){({}<>)<>}<>{}{}{}>{})>)>)}{}){(<{}(({})<<>(({}{})<<>(<({}<>)>)<>{}{({}<>)<>}<>>(({}){}){})>)>)}>}{}){(<{}([{}]<({}<<>([{}]()<>)<>({}<<>{({}({})<>[({}<>)])}{}{}>){({}<>)<>}<>>({})({}){})>)>)}{}>)}{}){{}(([{}]){}<>{}{}<<>({}<>{}){([{}]({}()()<{}({}<>)(())<>>))}{}{}{}>{})(())<>{{}({}<>)(())<>}(<>)<>}{}}{}{}<>{}{}({}<{{}({}<>)(())<>}<>{{}{((<(())>))}{}}{}{{}({}<>)(())<>}>)<>{{}({}<(<()>)<>([]){{}({}<>)(())<>([])}{}>)<>{{}({}<>)<>}{}{}({}<>)<>}<>

এটি অনলাইন চেষ্টা করুন!

আমার কোন অনুসুচনা নেই. ইনপুট জোড়াগুলির একটি সমতল তালিকা।

# Part 1: extract edges
(({})<

({()<(({}<>))><>}){

(({})[()()]<

{([{}]({})<>({}<>))}{}(([({}<>)]<<>({}<>)<>((({})<<>{({}<>)<>}<>>))>)){({}<>)<>}

<>{}(({}<{}(({}<{({}<>)<>}>))>))<>{({}<>)<>}

>)}

<>>){(({}){}()<({}<>)>)<>{}(({}){}<>)<>}<>

{}{}(())

# Part 2: Compute bracket polynomial
{

  # Move degree/sign to other stack
  (<({}<({}<>)>)>)<>

  # If current shape has crossings:
  ((){[()](<

    # Consider first currently listed edge in set
    # Find the other edge leaving same crossing
    (({})<>){({}[({})]<>({}<>))}{}

    # Move to top of other stack
    # Also check for twist
    ({}<>({}<{}<>{({}<>)<>}>)[()])

    # Check for twist in current edge
    <>({}({})[()])

    (

      # Remove current edge if twist
      ([()]{()(<({}[({})]())>)}{})<{(<{}{}>)}{}>

      # Remove matching edge if twist
      <>{()((<({}()[({}<>)])<>>))}{}<{}{}>

    # Push 1 minus number of twists from current vertex.
    )

    # If number of twists is not 1:
    ((){[()]<

      # While testing whether number of twists is 2:
      ({}()<

        # Keep sign/degree on third stack:
        ({}<({}<

          # Duplicate current configuration
          <>({()<({}<>)<>>}<>){({}[()]<(({})<({()<({}<>)<>>})<>>)<>{({}[()]<<>({}<>)>)}{}>)}

        # Push sign and degree on separate stacks
        <>>)<>>)

      # If number of twists is not 2: (i.e., no twists)
      >)((){[()](<{}

        # Make first copy of sign/degree
        (({})<<>(({})<

          # Make second copy of sign/degree
          (<<>({}<<>({}<

            # Do twice:
            (()()){({}[()]<

              # Prepare search for vertex leading into crossing on other side
              ([{}]()<>)

              # While keeping destination on third stack:
              <>({}<

                # Search for matching edge
                <>{({}({})<>[({}<>)])}{}

              # Replace old destination
              {}>)

              # Move back to original stack
              {({}<>)<>}<>

            >)}{}

          # Add orientation to degree
          >{})>)>)

          # Move duplicate to left stack
          <>{}{({}<>)<>}<>

          # Create "fake" edges from current crossing as termination conditions
          ([({}<>)]<((()))>)(())<>

          # Create representation of "top" new edge
          ({}<>)<>{}({}[()])

          # While didn't reach initial crossing again:
          {

            # Keep destination of new edge on third stack
            <>({}<<>

              # Do twice:
              (()()){({}[()]<

                # Search for crossing
                ({}<<>{({}<>)<>}>){({}[({})]<>({}<>))}{}

                # Reverse orientation of crossing
                (({})<<>({}<>)<>([{}])>)

              >)}{}

              # Remove extraneous search term
              {}

            # Push new destination for edge
            >)

            # Set up next edge
            <>({}<(({})())>[()]<>)

          }

          # Get destination of last edge to link up
          {}({}<

            # Find edge headed toward original crossing
            <>{}([{}]()<{({}<>)<>}>){({}({})<>[({}<>)])}

          # Replace destination
          {}{}>)

          # Move everything to left stack
          {({}<>)<>}

          # Clean up temporary data
          <>{}{}{}

        # Push new sign/degree of negatively smoothed knot
        >{})>)

      # Else (two twists)
      # i.e., crossing is the twist in unknot with one half-twist
      >)}{}){(<{}

        # Copy sign and degree+orientation
        (({})<<>(({}{})<

          # Move sign to left stack
          <>(<({}<>)>)

          # Move copy of configuration to left stack
          <>{}{({}<>)<>}

        # Add an additional 4*orientation to degree
        <>>(({}){}){})>)

      >)}

    # Else (one twist)
    >}{}){(<

      # Invert sign and get degree
      {}([{}]<({}<

        # Search term for other edge leading to this crossing
        <>([{}]()<>)

        # With destination on third stack:
        <>({}<

          # Find matching edge
          <>{({}({})<>[({}<>)])}{}

        # Replace destination
        {}>)

        # Move stuff back to left stack
        {({}<>)<>}<>

      # Add 3*orientation to degree
      >({})({}){})>)

    >)}{}

  # Else (no crossings)
  >)}{}){{}

    # If this came from the 2-twist case, undo splitting.
    # If this came from an initial empty input, use implicit zeros to not join anything
    # New sign = sign - 2 * next entry sign
    (([{}]){}<>{}{}<

      # New degree = average of both degrees
      <>({}<>{})

      # Find coefficient corresponding to degree
      {([{}]({}()()<{}({}<>)(())<>>))}{}{}

    # Add sign to coefficient
    {}>{})

    # Move rest of polynomial back to right stack
    (())<>{{}({}<>)(())<>}

    # Set up next configuration
    (<>)<>

  }{}

}{}{}<>{}

# Step 3: Put polynomial in correct form

# Keeping constant term:
{}({}<

  # Move to other stack to get access to terms of highest absolute degree
  {{}({}<>)(())<>}<>

  # Remove outer zeros
  {{}{((<(())>))}{}}

  # Move back to right stack to get access to lower order terms
  {}{{}({}<>)(())<>}

>)<>

# While terms remain:
{

  # Move term with positive coefficient
  {}({}<(<()>)<>([]){{}({}<>)(())<>([])}{}>)<>{{}({}<>)<>}{}

  # Move term with negative coefficient
  {}({}<>)<>

}<>

Whoaaaaaa। ফ্যান্টাস্টিক !!!! +1
ডন হাজার হাজার

আমার মনে হচ্ছে আমাকে অন্য অনুগ্রহটি দেওয়া দরকার
ডন হাজার হাজার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.