ত্রিভুজাকার সংকেত তৈরি করুন


9

টাস্ক:

প্রদত্ত নমুনা সূচক, x, 4 টি নমুনা এবং প্রশস্ততার সময়কালের সাথে ত্রিভুজাকার তরঙ্গের নমুনা মান f (x) গণনা করুন Off

পরীক্ষার কেস:

   -5 -> -1
   -4 -> 0
   -3 -> 1
   -2 -> 0
   -1 -> -1
    0 -> 0
    1 -> 1
    2 -> 0
    3 -> -1
    4 -> 0
    5 -> 1

ব্যক্তিগতভাবে আমি সি তে দুটি পন্থা জানি the প্রথমটি লুক টেবিল ব্যবহার করছে, দ্বিতীয়টি শর্তসাপেক্ষ নির্দেশাবলী ব্যবহার করছে। ব্রাউন পয়েন্টগুলির জন্য, আপনি কি আমাকে খাঁটি "গণিত" পদ্ধতির দ্বারা মুগ্ধ করতে পারেন? (আমি একটি শুদ্ধ কার্যকরী পদ্ধতির অর্থ, যেমন শর্তসাপেক্ষ নির্দেশাবলী ব্যবহার বা LUT এর জন্য মেমরি ব্যবহার না করা)) তবে এটি কোনও বাধা নয়। যদি আপনি না পারেন বা আপনার ভাষা এটি সমর্থন করে না - কেবল কোনও সমাধান পোস্ট করুন


3
"অফসেট নেতিবাচক হতে পারে" বলতে কী বোঝ? এছাড়াও এটি মূলত কেবল একটি ত্রিকোণমিত্রিক ফাংশন, তাই আমি অবাক হব যদি এটি কোনও জিনিসের কোনও রূপ নয়।
FryAmTheEggman

@ জংহওয়ানমিন এটির অনেক বেশি শিথিল নিয়ম রয়েছে, সুতরাং এটি সত্যিকার অর্থে ডুপ নয় (যদিও এটি একই জিনিস চাইবে)।
মেগো

@ মেগো ঠিক আছে। আমার ভোট প্রত্যাহার।
জংহওয়ান মিন


তরঙ্গ উদাহরণের তুলনায় পর্যায়ের বাইরে থাকতে পারে?
মারিয়া

উত্তর:


12

গণিত, 8 বাইট

Im[I^#]&

ব্যাখ্যা

Im[I^#]&
   I^#    (* Raise the imaginary unit to the input power *)
Im[   ]   (* Take the imaginary part *)

3
ওহ, সুন্দর পদ্ধতির। আমি এটা কিভাবে দেখতে পেলাম না? : ডি
হাইপারনিউট্রিনো

নাকিসুরে কথা algo কিভাবে সি কাল্পনিক একক জেনারেট করতে .. = (তোমার দর্শন লগ করা প্রতীকী ভাষান্তর মানুষ ^^ বহিরাগত ভাষায় builtins ব্যবহার করে আমার পক্ষে নয়) তবে একটা উত্তর এসে গেছে ..

7

টিআই-বেসিক, 7 5 4 বাইট

sin(90Ans

(ডিগ্রি মোড) - আমার পুরানো উত্তর থেকে @ মিমিবিসের -1 বাইট।


পুরানো উত্তর

imag(i^Ans

কোনও ক্যালকুলেটরে বিশুদ্ধ-গণিতের পদ্ধতি approach :)

কেবল মজাদার জন্য, এখানে 9 বাইট (রেডিয়ান মোডে), বা 8 বাইট (ডিগ্রি মোড) এর জন্য আরও একটি খাঁটি গণিত (ইশ) সমাধান দেওয়া হয়েছে

2/πsin-1sin(πAns/2 # Radians
90-1sin-1sin(90Ans # Degrees

হ্যাঁ, তবে আপনি কেবল একটি চিত্র () বাস্তবায়ন ভুলে গেছেন .. তবে অন্যদের কোড ঠিক আছে, যদিও .. ভাল উত্তর :)

2
@ xakepp35- আমি বুঝতে পারছি না। imag()টিআই-বেসিকের একটি বৈধ ফাংশন।
জংহওয়ান মিন

এর সাথে কী হয়েছে sin(90Ans? অতিরিক্ত দরকার কেন 90-1sin-1?
ব্যবহারকারী 253751

@ মিমিবিস 90 ^ -1 সিন ^ -1 এটিকে সমস্ত মূল্যবোধের জন্য একটি ত্রিভুজ তরঙ্গ করে তোলে তবে পাপ (90 টি প্রশ্ন যা জিজ্ঞাসা করে তার জন্য কাজ করে
পিজাপ্যান্টস 184

6

পাইথন 2 , 20 বাইট

lambda n:n%2-n%4/3*2

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

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


2
নিষ্ঠুর বাহিনীর অভিব্যক্তি অনুসন্ধান? নিস!
গ্র্যাভিটন

5

জুলিয়া 0.5 , 12 বাইট

!n=(2-n&3)%2

আমি এই পদ্ধতির পছন্দ করি কারণ এটি অন্য কোনও ভাষায় স্বল্পতম হওয়ার সম্ভাবনা নেই।

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

কিভাবে এটা কাজ করে

জুলিয়ার অপারেটর অগ্রাধিকারটি কিছুটা অস্বাভাবিক: বেশিরভাগ অন্যান্য ভাষার মতো, বিটওয়াইস অপারেটরগুলির গাণিতিক অংশগুলির মতো একই নজির রয়েছে, সুতরাং &(বিটওয়াইস গুণ) এর একই নজির রয়েছে *

প্রথমে ইতিবাচক চিহ্ন সহ n&3ইনপুট মডুলো 4 নেয় ।

ফলাফল - 0 , 1 , 2 , বা 3 - এর পরে 2 থেকে বিয়োগ করে 2 , 1 , 0 , বা -1 পাওয়া যায়

অবশেষে, আমরা বিভাগের স্বাক্ষরিত বাকী অংশগুলি 2 দ্বারা 0 , 1 , 0 , বা -1 এ ফিরে আসি



4

ডিসি, 13

আপনি যদি মডিউল %অপারেটরটিকে "খাঁটি গণিত" হিসাবে গণনা করেন তা নিশ্চিত নন :

?1+d*v4%1-2%p

এটি অনলাইনে চেষ্টা করুন । নোট করুন যে নেতিবাচক সংখ্যা নির্দেশ করার পরিবর্তে dcব্যবহার _করে -

ব্যাখ্যা

?              # read input
 1+            # add 1
   d*v         # duplicate, multiply, square root (poor-mans abs())
      4%       # mod 4
        1-     # subtract 1
          2%   # mod 2
            p  # print

মনে রাখবেন যে dc' %মোড অপারেটরটি হ'ল স্ট্যান্ডার্ড "সিপিইউ" সংস্করণ যা নেতিবাচক মানগুলিকে নেতিবাচক মানগুলিতে মানচিত্র করে।


আপনি কেবল abs((x+1)%4)-1পরিবর্তে করতে পারেন ?
ম্যাজিক অক্টোপাস উরান

2

ব্রেনফাক , 136 বাইট

>,>++++<[>->+<[>]>[<+>-]<<[<]>-]>>>>-[>+<-----]>--[-<+>>>+>>>+>>>+<<<<<<<<]<->>>>>>->--[>+<++++++]>++<<<<<<<<<<[[->>>+<<<]>>>-]>[.[-]]>.

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

সম্ভবত আরও তুচ্ছ উত্তর আছে, তবে এটি মূলত মানগুলির একটি সারণী ব্যবহার করে। যদিও ব্রেনফাক 0 থেকে 127 পর্যন্ত ইতিবাচক মানগুলির সাথে ASCII অক্ষর হিসাবে ইনপুট নেয়, এটি এখনও কাজ করে যেমন এটি নেতিবাচক মানগুলি গ্রহণ করতে সক্ষম হয়েছিল (পরীক্ষার জন্য, অক্ষরের পরিমাণের ,সাথে প্রতিস্থাপন করতে )।n-

কিভাবে এটা কাজ করে

>,                                   take input (X)
>++++<                               take second input for modulo (4)
[>->+<[>]>[<+>-]<<[<]>-]             calculate X mod 4
>>>>-[>+<-----]>--                   create initial '1' character
[-<+>>>+>>>+>>>+<<<<<<<<]            duplicate '1' four times as 1,1,1,1
<->>>>>>->--[>+<++++++]>++<<<<<<<<<< change 1,1,1,1 to 0,1,0,-1 
[[->>>+<<<]>>>-]>[.[-]]>.            move to the right X%4 * 3 times, then print the following two characters ( 0, 1, 0,-1)

1

পাইথন, 26 24 21 বাইট

lambda x:(1j**x).imag

-২ বাইট ভ্যালিউইঙ্ককে বুঝতে পেরে ধন্যবাদ যে গাণিতিক পদ্ধতিটি তুচ্ছ পদ্ধতির চেয়ে আসলে দীর্ঘ: পি
-৩ বাইট ডেনিসকে ধন্যবাদ যে আমার দরকার নেই int(...), এইভাবে এই সংক্ষিপ্ত করে তুলতে :)


lambda x:[0,1,0,-1][x%4]আসলে আপনার অন্তর্নিহিত উত্তরটির চেয়ে কম লোল
মান কালি

@ ভ্যালিউইঙ্ক ওহ ... ওম এটি লজ্জাজনক
হাইপার নিউট্রিনো

2
আপনি কেন int()প্রথম স্থানে ব্যবহার করবেন ?
ডেনিস

@ ডেনিস কারণ .imagএকটি ভাসমান-পয়েন্ট মান দেয় এবং আমি নিশ্চিত নই যে এটি চশমা দ্বারা অনুমোদিত হয়েছে কিনা I'm এখনই কিছু আসে যায় না :)
হাইপারনিউটারিনো

যদি ফ্লোটগুলি অনুমোদিত না হয় তবে জাভাস্ক্রিপ্ট প্রতিযোগিতা করতে সক্ষম হবে না।
ডেনিস


1

গণিত, 18 বাইট

#~JacobiSymbol~46&

5
এটি বেশ কার্যকর হয় না: উদাহরণস্বরূপ, 9 এবং 11 উভয় ইনপুট আউটপুট হিসাবে 1 দেয়। এই ফাংশনের সময়কাল 4 টি নয়, 184।
গ্রেগ মার্টিন

1
তবে, JacobiSymbol[-4,#]&কাজ করে এবং আরও একটি বাইট খরচ হয়। চমৎকার ধারণা!
গ্রেগ মার্টিন

আবার একটি অ্যালগরিদম দেখতে পাচ্ছেন না (কেবল অন্যদের দ্বারা রচিত বিল্টাইন এবং সংক্ষিপ্ত কোডের কয়েকটি .. আহ, যথারীতি সব কিছু। উত্তম উত্তর যদিও



1

Haskell, , 19 বাইট

ডেনিসের জুলিয়া সমাধান বন্দর, কারণ তিনি বলেছিলেন যে এটি অন্য কোনও ভাষায় স্বল্পতম হবে না। (কেউ এখনও আমাকে ভুল প্রমাণ করতে পারে যে এটি হাস্কেলের মধ্যে সবচেয়ে কমতম।)

f n=rem(2-n`mod`4)2

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

হাস্কেলের দুটি পৃথক বাকী ফাংশন রয়েছে, একটি ( rem) জুলিয়া একের মতো কাজ করে, অন্যটি ( mod) প্রথম যুক্তিটি নেতিবাচক হলেও এমন একটি ইতিবাচক ফলাফল দেয় এবং এটি অনুবাদ করার জন্য উপযুক্ত &3। (হাস্কেলের আসল & , যাকে বলা হয় .&.হায় এর দরকার হয় import Data.Bits))


আমি যতদূর বলতে পারি, ডেনিসের জুলিয়া দ্রবণটির একটি বন্দর জাভাস্ক্রিপ্টের জন্যও উপযুক্ত (14 বাইট)। ডেনিস এমনকি পতনযোগ্য যে দেখায়!
নিল



0

সি 99, 27 বাইট

ধরে নিচ্ছেন আপনি তরঙ্গটি মূলতে কেন্দ্রিক হতে চান:

f(n){return cpow(1i,n)/1i;}

অন্যথায় f(n){return cpow(1i,n);}করবে। আমি মূলত একটি ছিল cimagসেখানে, কিন্তু দৃশ্যত একটি আসতে বের করার চেষ্টা intA থেকে _Complex int, বাস্তব অংশ উৎপাদনের তাই আমি যে ব্যবহার করা হয়েছে। এটি বোধগম্য হয়, তবে আমি ভবিষ্যদ্বাণী করতাম এটি কিছুই নয়। আচরণ একই হয় gccএবংclang


সিপো অপরিজ্ঞাপিত এক্সডি

কিছু # টি বাদ দেওয়া হয়েছে, সংকলন করে না)))))

তবে +1 কেবল সি

1
@ xakepp35 এটি আসলে অন্তর্ভুক্তগুলির দোষ নয়, এটি একটি লিঙ্কারের সমস্যা। সংকলন -std=c99 -lmএবং এটি কাজ করা উচিত। এটি উভয়ই gccএবং আমার সাথে clangকোনও অন্তর্ভুক্ত ছাড়াই ভাল কাজ করে । ভাল, জরিমানা বলতে আমি বোঝাতে চাইছি কোনও ত্রুটি নেই, তবে বিপুল সংখ্যক সতর্কতা।
algmyr

0

05 এ বি 1 ই , 5 বাইট

4%<Ä<

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


আউটপুটটি বিপরীত হয়েছে, তবে যা আমি বুঝতে পেরেছিলাম এটি থেকে অনুমোদিত:

-1 ব্যবহার করে আউটপুট গুণিত করতে +1 বাইট (

   -5 -> 1
   -4 -> 0
   -3 -> -1
   -2 -> 0
   -1 -> 1
    0 -> 0
    1 -> -1
    2 -> 0
    3 -> 1
    4 -> 0
    5 -> -1

4%    # Amplitude of 4...
  <   # Period of 1...
   Ä  # Absolute value...
    < # Period of 1 centered at 0...

আমি যা বুঝতে পেরেছি তা অনুমোদিত

পরীক্ষার কেসগুলি পাস করা হয় না ;-)

তবে +1 দুর্দান্ত চেষ্টা করুন

0

পাইথ - 7 বাইট (সম্ভবত 6)

ta2%tQ4

চেষ্টা করে দেখুন

যদি তরঙ্গের পর্যায়টি গুরুত্বপূর্ণ না হয় তবে 6 বাইট:

ta2%Q4

চেষ্টা করে দেখুন

ব্যাখ্যা:

ta2%tQ4
     Q    # The input
    t     # Subtract 1 to get the phase right (might not be necessary)
   %  4   # Take mod 4
 a2       # Absolute value of the result - 2
t         # Subtract 1 so the result is in [-1,0,1]


0

জাভাস্ক্রিপ্ট ES6, 18 17 বাইট

n=>n&1&&(++n&2)-1

প্রথমত, ইনপুটটি সমান বা বিজোড় কিনা তা পরীক্ষা করুন এবং সমস্ত সমান মানগুলির জন্য 0 প্রদান করুন। সমস্ত অদ্ভুত ইনপুটগুলির জন্য, ইনক্রিমেন্ট এবং বিটওয়াইস সহ 0b10কোনও বিট যা আমাদের আগ্রহী না করে সরানোর জন্য, তারপরে অফসেট দিয়ে উত্তরটি ফিরিয়ে দিন।

const f = n=>n&1&&(++n&2)-1;

for (let i = -5; i < 6; i++) {
  document.body.appendChild(document.createElement('pre')).innerHTML = `f(${i}) => ${f(i)}`;
}


1
প্রতিস্থাপন দ্বারা একটি বাইট সংরক্ষণ ? :0সঙ্গে&&
স্টিভ বেনেট

@ স্টিভেনেট ধন্যবাদ, দুর্দান্ত ধারণা!
নিট

0

জাভাস্ক্রিপ্ট, 15 বাইট

n=>n&3&&2-(n&3)

বিটওয়াইস এবং 3 জাভাস্ক্রিপ্টের নেতিবাচক সংখ্যার মডিউলগুলিতে অদ্ভুত নিয়ম ব্যতীত মডুলো 4 এর সমতুল্য। আমি প্রথমে প্রথম চারটি পয়েন্টে বহুবর্ষীয় রিগ্রেশন করেছি কিন্তু তখন বুঝতে পেরেছিলাম যে আমি বোবা হয়ে যাচ্ছি কারণ (1, 1), (2, 0), এবং (3, -1) মাত্র 2-এন is

a=n=>n&1&&2-(n&3);
console.log([a(-5), a(-4), a(-3), a(-2), a(-1), a(0), a(1), a(2), a(3), a(4), a(5)])


খুব ভাল! উত্তরের জন্য +1

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