একটি নির্দিষ্ট ফ্রিকোয়েন্সি একটি শব্দ আউটপুট


25

এটি একটি বরং সহজ চ্যালেঞ্জ, তবে এর সাথে সত্যই মিল পাওয়া যায় এমন কোনও প্রশ্ন আমি খুঁজে পেলাম না। চ্যালেঞ্জটি হ'ল এসটিডিএন বা সমতুল্য ব্যবহারের ক্ষেত্রে একটি ফ্রিকোয়েন্সি নেওয়া এবং তারপরে 5 সেকেন্ডের জন্য হার্জেডে এই ফ্রিকোয়েন্সিটির সাথে মেলে এমন একটি টোন আউটপুট। উদাহরণ স্বরূপ

Input: 400
Output: (a tone of 400 Hz with a duration of 5 seconds)

বিধি

  • এসটিডিআইএন বা আপনার ভাষার সমতুল্যের মাধ্যমে ইনপুট অবশ্যই নেওয়া উচিত
  • উত্তরটি অবশ্যই একটি সম্পূর্ণ প্রোগ্রাম হতে হবে
  • বিল্টিনগুলি ব্যবহার করা যেতে পারে
  • ফ্রিকোয়েন্সি 50 - 5000 Hz থেকে যে কোনও জায়গায় থাকবে
  • আউটপুটটি 5 সেকেন্ডের জন্য খেলতে হবে
  • আউটপুট অবশ্যই সাইন ওয়েভ আকারে হওয়া উচিত

পরীক্ষার মামলা

ইনপুট: 440

আউটপুট:

ইনপুট: 200

আউটপুট:

ইনপুট: 4000

আউটপুট:


  • এটি এর জন্য স্বল্পতম সমাধানের সাহায্যে ভাষা সন্ধানের বিষয়ে নয় (এমন কিছু কিছু রয়েছে যেখানে খালি প্রোগ্রামটি কৌশলটি ব্যবহার করে) - এটি প্রতিটি ভাষায় সংক্ষিপ্ততম সমাধানটি সন্ধান করা । অতএব, কোন উত্তর গৃহীত হিসাবে চিহ্নিত করা হবে না।

  • আমাদের সাধারণ নিয়মগুলির বিপরীতে, এই চ্যালেঞ্জের চেয়ে নতুন হলেও ভাষা (বা ভাষার সংস্করণ) নির্দ্বিধায় ব্যবহার করুন। এই চ্যালেঞ্জটির 0-বাইট উত্তর জমা দেওয়ার জন্য বিশেষভাবে লেখা ভাষাগুলি ন্যায্য খেলা তবে বিশেষ আকর্ষণীয় নয়।

    নোট করুন যে সেখানে একজন দোভাষী থাকতে হবে যাতে জমাটি পরীক্ষা করা যায়। পূর্ববর্তী অপ্রয়োজনীয় ভাষার জন্য নিজেকে এই অনুবাদক লিখতে (এবং এমনকি উত্সাহিত) অনুমতি দেওয়া হয়েছে।

    এছাড়াও যে ভাষায় নোট না fullfil আছে ভাষায় প্রোগ্রামিং জন্য আমাদের স্বাভাবিক মানদণ্ড


তালিকা

এই পোস্টের নীচে স্ট্যাক স্নিপেট উত্তরগুলি থেকে ক্যাটালগ তৈরি করে a) ভাষার প্রতি সংক্ষিপ্ত সমাধানের তালিকা হিসাবে এবং খ) সামগ্রিক লিডারবোর্ড হিসাবে।

আপনার উত্তরটি প্রদর্শিত হয়েছে তা নিশ্চিত করার জন্য, দয়া করে নীচের মার্কডাউন টেমপ্লেটটি ব্যবহার করে আপনার উত্তরটি শিরোনাম দিয়ে শুরু করুন:

## Language Name, N bytes

Nআপনার জমা দেওয়ার আকারটি কোথায় ? আপনি যদি নিজের স্কোরটি উন্নত করেন তবে আপনি পুরানো স্কোরগুলি শিরোনামে রেখে দিতে পারেন । এই ক্ষেত্রে:

## Ruby, <s>104</s> <s>101</s> 96 bytes

সেখানে যদি আপনি আপনার শিরোনামে একাধিক সংখ্যা অন্তর্ভুক্ত করতে চান (যেমন আপনার স্কোর দুটি ফাইলের যোগফল বা আপনি আলাদাভাবে দোভাষী পতাকা শুল্ক তালিকাভুক্ত করতে চান), নিশ্চিত করুন যে আসল স্কোরটি শিরোনামের শেষ সংখ্যা:

## Perl, 43 + 2 (-p flag) = 45 bytes

আপনি ভাষাটির নামটিকে একটি লিঙ্কও তৈরি করতে পারেন যা স্নিপেটে প্রদর্শিত হবে:

## [><>](http://esolangs.org/wiki/Fish), 121 bytes


কোন কাজ গ্রহণযোগ্য হবে?
একটি স্প্যাগেটে

@ কোয়ার্তা এটি একটি সম্পূর্ণ প্রোগ্রাম হওয়া উচিত।
ক্রিস লুনাম

2
আমি দেখতে পাচ্ছি যে অনেক লোক একটি beep()ফাংশন ব্যবহার করছে । এটি কি নিশ্চিত যে এটি একটি সাইন ওয়েভ?
জিওকাভেল

2
উইন্ডোজ ' System.Console.Beepজিনিসটি আমার (আধুনিক, উইন্ডোজ 10) মেশিনে একটি সাইন ওয়েভ, সুতরাং আমি মনে করি এটি গণনা। পিপিসি সম্পর্কিত সমাধানগুলি সাধারণত বহনযোগ্য হয় না।
লিন

একটি আউটপুট মুদ্রণ "বৈধ উপায় একটি আউটপুট" আউট উপায়?
ইলমারি করোনেন

উত্তর:


13

কিউ বেসিক, 18 বাইট (অযোগ্য)

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


INPUT F
SOUND F,91

৯১ টি টিকের জন্য ইনপুটযুক্ত ফ্রিকোয়েন্সিতে একটি শব্দ বাজান , যা 5 সেকেন্ডের সমান।


এই প্রোগ্রামটি সর্বশেষ প্রয়োজনীয়তা পূরণ করে না: "আউটপুট অবশ্যই সাইন ওয়েভ আকারে হওয়া উচিত"। SOUNDকমান্ডটি পিসি স্পিকার ব্যবহার করে যা নকশাকৃতভাবে টাইমার চিপ 8254 দ্বারা চালিত হয়েছিল যা বর্গাকার তরঙ্গ তৈরি করে। --- যদিও আধুনিক পিসিগুলিতে 8254 SOUNDকমান্ডের সঠিক অনুকরণ অনুপস্থিত হতে পারে এমন একটি বর্গাকার তরঙ্গ তৈরি করা উচিত।
pabouk

3
আমি আমার উত্তর পোস্ট করার পরে এই প্রয়োজনীয়তাটি যুক্ত করা হয়েছিল। : / আমি একটি নোট যুক্ত করব, তবে আমি যখন উত্তরটি শীর্ষে ভোট দিয়েছি তখন এই উত্তরটি মুছে ফেলাতে আমি অদ্ভুত বোধ করি।
লিন

12

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

from winsound import*
Beep(input(),5000)

শুধুমাত্র উইন্ডোজে কাজ করে।


1
চান 5e3কাজ করে?
লিন

3
@ মরিস না, আমি ইতিমধ্যে এটি চেষ্টা করেছিলাম তবে এটি কেবল পূর্ণসংখ্যা চায়।
orlp

10

গণিত, 42 বাইট

আচ্ছা আমরা যদি বিল্ট-ইনগুলি ব্যবহার করতে পারি ...

Input[]
EmitSound@Play[Sin[2t%Pi],{t,0,5}]

একটি পূর্ণ প্রোগ্রামের জন্য প্রয়োজন ধন্যবাদ, এই প্রথমবারের আমি ব্যবহার পেয়েছিলাম ছিল আমার সম্প্রতি আবিষ্কার golfing ডগা ব্যবহার %(শেষ মূল্যায়ন ফলাফল) দুই বাইট সংরক্ষণ করুন।

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



7

ম্যাটল্যাব, 36 বাইট

sound(sin(pi*input('')*(0:8^-4:10)))

দুটি বাইট সংরক্ষণের জন্য flawr ধন্যবাদ ।


2
2^-12পরিবর্তে ব্যবহার করে আপনি একটি অক্ষর সংরক্ষণ করতে পারেন 1/4096
flawr

8^-4ওরে বোকা আমাকে, আরও খাটো!
flawr


4

FakeASM , 12 বাইট

RDA
BEEP 5e3

উইন্ডোজ রেফারেন্স বাস্তবায়ন (ডাউনলোড) এর সাথে কাজ করে । এটি উইন্ডোজের Beepফাংশনটিকে বলে, যা আধুনিক প্ল্যাটফর্মগুলিতে সাইন ওয়েভ।


এসটিডিএন কোথায়?
বিড়াল

1
RDASTDIN থেকে একটি সংখ্যা পড়ে এবং এটি রেজিস্টারে রাখে A
লিন

আমি অনুমানটি পড়ে এবং তা লক্ষ্য করেই শেষ করেছিলাম তবে আমি আমার মন্তব্য মুছতে ভুলে গিয়েছি। ধন্যবাদ, যদিও
বিড়াল

4

বাশ + এক্স 11, 27 20 বাইট

xset b 9 $1 5;echo 

এটিতে একটি ছাপিয়ে যায় না, তাই এখানে একটি হেক্সডাম্প রয়েছে:

0000000: 7873 6574 2062 2039 2024 3120 353b 6563  xset b 9 $1 5;ec
0000010: 686f 2007                                ho .

এটি কমান্ড-লাইন আর্গুমেন্ট হিসাবে ফ্রিকোয়েন্সি নেয় এবং 9% ভলিউমের উপযুক্ত বীপ বাজায় (যেহেতু কোনও ভলিউম নির্দিষ্ট করা হয়নি)।

(দ্রষ্টব্য: আমার কম্পিউটারে কিছু সমস্যার কারণে আমি এটি পরীক্ষা করতে পারিনি, তবে আমি এটি 99% নিশ্চিত এটি কার্যকর))


সেখানে কি \ x07 আছে?
TheDoctor

না, xset সমস্ত বীপিং স্টাফ করে।
একটি স্প্যাগেটো

@ ডক্টর ওহ আমি কী বলতে চাইছি তা দেখতে পেয়েছি ... আসল আওয়াজ করার জন্য এটির জন্য \ x07 দরকার নেই। স্থাপন করা.
একটি স্প্যাগেটো

echo <BEL><BEL>আসল চরিত্রটি কোথায় , 6 বাইট সংরক্ষণ করে
ডেনিস

@ ডেনিস ডি'ওহ ধন্যবাদ!
একটি স্প্যাগেটো

4

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

p=prompt();c=new AudioContext;with(c.createOscillator()){frequency.value=p;connect(c.destination);start();stop(5)}

কিছুটা কাটিং এজ ব্রাউজারের দরকার, প্রম্পটে ফ্রিকোয়েন্সি লিখুন। JSFiddle


এটি 5 সেকেন্ডের জন্য খেলবে না কারণ prompt()অডিও টাইমারটি শুরু হওয়ার পরে কল করা হয় new AudioContext()। আমি বিশ্বাস করি আপনি যেটি পেতে পারেন তা সবচেয়ে কম 115 বাইট সহ c=new AudioContext(p=prompt());with(c.createOscillator()){frequency.value=p;connect(c.destination);start();stop(5)}
ব্যবহারকারী81655

শীর্ষস্থানীয়দের জন্য ধন্যবাদ, আমি পাশাপাশি 'সহ' ব্যবহার করার ধারণাটিরও প্রশংসা করি।
নিকসন

আমি <script>জাভাস্ক্রিপ্টের জন্য পূর্বে একটি সম্পূর্ণ প্রোগ্রাম বিবেচনা করার জন্য প্রয়োজনীয় হিসাবে ট্যাগগুলি দেখিনি । আমি আপনি কি মনে করেন 114. এছাড়াও ভালো আছেন সরানোর pঅ্যাসাইনমেন্ট এবং মাত্র সেটিং frequency.value=prompt()আপনি 110. নামা উচিত
Mwr247

@ এমডব্লিউ 247 দুর্ভাগ্যক্রমে, ব্যবহারকারী 81655 হিসাবে উল্লেখ করা হয়েছে যে টাইমারটি অডিওকন্টেক্সট তৈরি হওয়ার পরে অডিও কখন থামবে তা নির্ধারণ করে। প্রম্পটটি তার আগে উপস্থিত হতে হবে, বা একটি ধীর ইনপুটটির ফলে ছোট অডিও বা কোনও অডিও কোনও ফল হতে পারে না।
নিক্সন

p=prompt();with(new AudioContext)with(createOscillator())frequency.value=p,connect(destination),start(),stop(5)এটি 3 বাইট সংরক্ষণ করে
প্যাট্রিক রবার্টস

4

বাশ + লিনাক্স ইউজ, 95

bc -l<<<"obase=16;for(;t<5;t+=1/8000){a=s($1*t*6.3);scale=0;a*30/1+99;scale=9}"|xxd -p -r|aplay

এটি একটি সত্য সাইন ওয়েভ। কোনও বীপ নেই। কমান্ড-লাইনের মাধ্যমে ইনপুট ফ্রিকোয়েন্সি প্রবেশ করানো হয়েছে:

./hz.sh 440

3

প্রক্রিয়াজাতকরণ, 148 114 106 বাইট

import processing.sound.*;
Engine.start().sinePlay(int(loadStrings("s")[0]),1,0,0,0);delay(5000);exit();

(কোনও কারণে প্রক্রিয়াজাতকরণের জন্য আমদানির বিবৃতি এবং নতুন লাইন উভয়ই প্রয়োজন হয়, অন্যথায় এটি গ্রন্থাগারটি স্বীকৃতি দেয় না))

প্রসেসিংয়ে কীভাবে যুক্তিগুলি পাস করতে হয় তা এখনও আমি খুঁজে পাইনি, যদিও আমি জানি এটি সম্ভব, তাই এই কোডটির জন্য স্কেচ ফোল্ডারে "এস" নামে একটি ফাইল থাকা দরকার যার ফ্রিকোয়েন্সি মান রয়েছে। আমি যদি আর্গুমেন্টে পাস করতে পারি তবে ফাইল ফাইলিং এর সাথে প্রতিস্থাপন করতে পারতাম args[0]


3

VB.net, 90 বাইট , 74 বাইট

Module m
Sub Main(a() as String)
Console.Beep(a(0),5000)
End Sub
End Module

ধন্যবাদ শেহসুচটকে

Module m
Sub Main()
Console.Beep(My.Application.CommandLineArgs.First,5000)
End Sub
End Module

এটি আমার প্রথম পোস্ট তাই আমি যদি কোনও ভুল করি তবে আমাকে জানান let


1
পরিবর্তে প্রধান args মধ্যে কমান্ড লাইন আর্গুমেন্ট পেয়ে কমে যেতে পারে Main(a()As Stringএবং Beep(a(0),5000)74 মোট হ্রাস অনুযায়ী বাইট বাইট কাউন্টার
Sehnsucht

2

টার্বো / বোরল্যান্ড / ফ্রি / জিএনইউ পাস্কেল, 95 বাইট

আধুনিক কম্পিউটারগুলিতে বিলম্বের ক্রিয়াকলাপের কারণে (ভাল, 200Mhz এর চেয়ে দ্রুততর কিছু) টার্বো / বোরল্যান্ড পাস্কাল চালানোর চেষ্টা করছে, এটি প্যাচযুক্ত সিআরটি লাইব্রেরি সহ এমনকি 5 সেকেন্ড অপেক্ষা করতে পারে না

Program a;Uses crt;Var i,k:Integer;BEGIN Val(ParamStr(1),i,k);Sound(i);Delay(5000);NoSound;END.

স্ট্রিং টু ইন্টিজার রূপান্তরটি ফ্রিপ্যাস্কলে সংক্ষিপ্ততর (77 বাইট) করা যেতে পারে এবং আধুনিক ডেরাইভেটস যেমন তাদের StrToIntকাজ করে:

Program a;Uses crt;BEGIN Sound(StrToInt(ParamStr(1)));Delay(5000);NoSound;END.

1
যতদূর আমি জানি, একটি পাস্কাল প্রোগ্রাম Program a;অংশ ছাড়াই সমস্ত সংকলকগুলির সাথে দুর্দান্ত কাজ করবে , যাতে আপনি এটি বাদ দিয়ে 10 বাইট জিততে পারেন।
vsz

@vsz এফপিসি ঠিকঠাক হতে পারে (তাই আমি এটি দ্বিতীয় স্নিপেট থেকে সরিয়ে ফেলতে পারি), তবুও টিপি 5.5 এর মতো কিছু প্রাচীন বিষয়গুলি পরীক্ষা করতে হবে, যতদূর আমি মনে করি তাদের এটির প্রয়োজন ছিল।
SztupY

প্রয়োজনীয়তা বলে "ইনপুট stdin মাধ্যমে গ্রহণ করা আবশ্যক", যাতে লম্বা লাফালাফি ParamStr()এবং মাত্র Read()হিসাবে এটি প্রয়োজন: pastebin.com/1Tw2d0D6
manatwork

2

পার্ল, 27 বাইট

মূলত পাইথন উত্তরের পার্ল সংস্করণ (শুধুমাত্র উইন্ডোতেও কাজ করে), যদি আমরা মডিউলগুলিকে অনুমতি দিই।

use Audio::Beep;beep<>,5000

2

ভিটি + এক্স 11, 20 বাইট

"5 "WX" 9 b tesx",7O

আমার বাশ উত্তরের একটি অনুবাদ। অনলাইন দোভাষী (স্পষ্টতই) কাজ করে না।

ফ্রিকোয়েন্সি অনুসারে কোনও অ-সংখ্যাসূচক অক্ষর হিসাবে ইনপুট নেয় (সুতরাং 440 হার্জেডের ইনপুট জন্য আপনি "a440" করতে পারেন)।

ব্যাখ্যা

"5 "WX" 9 b tesx",7O
"5 "                   Push " 5"
    WX                 Reads input and removes the first character (which is used to force string context)
      " 9 b tesx"      Push "xset b 9 "
                 ,     Pop everything and execute as a shell command.
                  7O   Output bell char.

দুর্দান্ত উত্তর। চমৎকার কাজ.
আর

আপনি ভিট্টি ব্যবহার করেছেন <3 আমার সন্তানকে খালাস করা হয়েছে।
অ্যাডিসন ক্রম্প

1

উইনাপি, 82 বাইট সহ সি

#include<windows.h>
#include<stdio.h>
main(){int x;scanf("%i",&x);Beep(x,5000);}

WinAPI বিপ () ফাংশন ব্যবহার করে।


আপনার কি পাস &xকরার দরকার নেই scanf? এছাড়াও আপনি xপ্রধান হিসাবে একটি পরামিতি হিসাবে ঘোষণা করতে পারেন এবং সংকলকটিকে এর ধরণের ডিফল্ট করতে দিন।
নিল

@ নীল, আমি জানিনা কীভাবে আমি এটি পাস &xনা করে ভুল টাইপ করেছি scanf()। এখনই স্থির; ধন্যবাদ।
ব্যবহারকারী 2064000


0

শ্যাডার্টোয় জিএলএসএল সাউন্ড শ্যাডার, 86

#define F 440.0
vec2 mainSound(float t){return vec2(sin(6.3*F*t)*(t<5.0?1.0:0.0));}

"ইনপুট" এর মাধ্যমে দেওয়া হয় #defineFHz এর আনুমানিক ফ্রিকোয়েন্সি সহ একটি সাইনওয়েভ আউটপুট দেয় । "ডিফল্ট" 6.2831 এর পরিবর্তে 2 * পাই গোল করে 6.3 এ পরিণত হয়েছে, তবে বেশ একইরকম মনে হচ্ছে।

দুঃখজনকভাবে এখানে গল্ফ করার মতো খুব বেশি কিছু নেই।


ইনপুটটি এসটিডিনের মাধ্যমে নেওয়া উচিত, হার্ডকডযুক্ত নয়।
flawr

@ ফ্লোয়ার আমি শ্যাডার্টোয়েতে সঠিক ইনপুট দেওয়ার কোনও পদ্ধতি জানি না। আমাকে আলোকিত করুন।
Kroltan

এটি আপনার কাজ হওয়া উচিত , আমার নয়। তবে আমি শেদার্টোয়কে যাইহোক জানি না তাই আমি আপনাকে সহায়তা করতে পারি না।
flawr

@ ফ্লোয়ার যুক্তিসঙ্গত নির্ভুলতার একমাত্র পদ্ধতি হ'ল কার্সার পজিশন, তবে এটি কেবল চিত্র ছায়ার ক্ষেত্রেই উপলভ্য, সাউন্ড শেডারে নয়। তাই আমি সংজ্ঞায়িত হয়ে বেশ আটকে আছি।
Kroltan

আপনি ফাইল লোড করতে পারেন? এটাই আমি করেছি।
জিওকাভেল

0

জल्फ, 4 বাইট, নন-কেপটিং ing

এই ভাষা সংযোজনটি চ্যালেঞ্জের পরে এসেছিল।

Αc5j
Αc     create a beep
  5     five seconds long
   j    with the input as a frequency

ডিফল্ট তরঙ্গ একটি সাইন ওয়েভ।


0

স্মাইলব্যাসিক, 84 বাইট

INPUT F
N=LOG(F/440,POW(2,1/12))+57BGMPLAY FORMAT$("@D%D@255T12N%D",(N-(N<<0))*63,N)

Hz থেকে অর্ধ ধাপে রূপান্তর করে এবং ফ্রিকোয়েন্সিটি তৈরি করতে একটি ডিটুন মান সহ একটি নির্দিষ্ট নোটটি খেলে।

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