キラキラ光る


27

人気のある英語の童ryを演奏するプログラムを作成します。

楽譜 (このファイルは、クリエイティブ・コモンズの下でライセンスされて表示-継承3.0非移植ライセンスの帰属:。Helix84英語ウィキペディアはBlahedo英語ウィキペディア)。

役に立つかもしれないいくつかのウィキペディアの記事:

提出のガイドライン:

  • プログラムでは、コンピューターのサウンドカードを使用する必要があります。プログラミング言語がオーディオハードウェアに簡単にアクセスできない場合、プログラムはWAVやMIDIなどの標準形式で出力ファイルを作成する必要があります。

  • プログラムは実際に出力を生成する必要があります。たとえば、WikipediaからOgg Vorbisファイルを埋め込むことは許可されません。

  • 音質は許容範囲内でなければなりません。少なくとも、歌は簡単に認識できるはずです。できれば、音も良いはずです。

  • コードサイズ、音質、またはその両方に焦点を当てる必要があります(どちらを決定したかを説明してください)。エレガントなソリューションも素晴らしいでしょう。楽しむ!

  • これはので、最短のコードが勝ちます


ノートの周波数を概算できますか?
明唐

1
なぜこれは閉じられているのですか?
Programmer5000

@ programmer5000私は...近い理由は非常によくそれを説明するでしょうね
totallyhuman

2
ゴルフをコード化した後でも、これはまだ話題になっていません。 音質は許容範囲内でなければなりません。客観的な妥当性基準ではありません。
デニス

3
@Dennisこれは、「オフトピック」ではなく「不明」に近いと言えます。
エリックアウトゴルファー

回答:


30

QBasic(56)

A$="CCGGAAG2FFEEDDC2"
B$="GGFFEED2"
PLAY "L4"+A$+B$+B$+A$

焦点は回想にあります:)

(ただし、これをテストするQBasicはありません)


1
少なくとも私のDOSBoxインストールで動作しますが、曲全体を再生するように変更できますか?
プリーズスタンド

できた 私は私のリーディングスキルに取り組みます:/
エルベックス

うーん、このページは間違っていますか? en.wikibooks.org/wiki/QBasic/Appendix#PLAY- >オクターブはCで始まり、Bで終わります。
mootinator

6
うわー、これはQBasicでの私の最初のプログラミング体験の思い出をもたらします。
ダニエルスタンダー

3
メモリレーンを下るトリップのために+1!今必要なのは、DRAWコマンドのサンプルだけです:)
システムダウン

16

JavaScript(214 212 211文字)

Safari、Opera、またはGoogle ChromeからJavaScript Shellを開き、以下のコードを入力します。

for(s="",y=192e3;x=--y/4e3|0;)s+="~ "[(y%4e3>800|x%8==1)&Math.pow(2,"024579702457245702457970"[x>>1]/12)*y/31%2];open("data:audio/wav;base64,UklGRiXuAgBXQVZFZm10IBAAAAABAAEAQB8AAEAfAAABAAgAZGF0YQHuAgCA"+btoa(s))

読みやすさのために縮小されていません(それでも理解するのは難しいかもしれません):

for(s = "", y = 192E3; x = --y / 4E3 | 0;) {
  s += "~ "[(y % 4E3 > 800 | x % 8 == 1) & Math.pow(2, "024579702457245702457970"[x >> 1] / 12) * y / 31 % 2];
}
open("data:audio/wav;base64,UklGRiXuAgBXQVZFZm10IBAAAAABAAEAQB8AAEAfAAABAAgAZGF0YQHuAgCA" + btoa(s));

さらにいくつかの文字があれば、Firefoxでも動作しますがaudio/wav、少なくともWAVファイルを保存するように部品を変更できます。


1
Chromeでも問題なく動作します。
-mootinator

@mootinator:私にも役立ちます。Chromeでチェックすることは考えていませんでしたが、ごく最近までWAVファイルのサポートを得ていませんでした。code.google.com/p/chromium/issues/detail?id=23916
PleaseStand

うわー!これは素晴らしい。
フィリップセン

「さらにいくつかの文字がある」とはどういう意味ですか?それらのキャラクターは何でしょうか?
フィリップセン

@cf_PhillipSenn:Firefoxでコードを実行すると、機能しないQuickTime Playerが手に入りました。Firefoxの組み込みのオーディオプレーヤーを使用するには、コードopen(...)Audio(...).play()(8文字以上)に変更する必要がありました。
プリーズスタンド

11

C#(長さ:LOL)

そこで、私がここでやったのは、C#でQBasicソリューションに使用される文字列から.wavファイルを生成するためのサポートを実装することです(1オクターブ、偶然ではありません)。重点は次のとおりです。

  1. unsafeコードブロックの回避
  2. 私の時間を無駄にしない
  3. それは作る比較的拡張が簡単

using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text.RegularExpressions;
using System.IO;

namespace ConsoleApplication1
{
    public static class Extension
    {
        public static byte[] ToByteArray(this object o)
        {
            return o.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance)
                .SelectMany(x =>
                                {
                                    var value = x.GetValue(o, null);
                                    if (value.GetType().Equals(typeof (UInt16)))
                                    {
                                        return BitConverter.GetBytes((UInt16) value);
                                    }
                                    if (value.GetType().Equals(typeof (UInt32)))
                                    {
                                        return BitConverter.GetBytes((UInt32) value);
                                    }
                                    if (value.GetType().Equals(typeof(char[])))
                                    {
                                        return ((char[]) value).Select(y => Convert.ToByte(y));
                                    }
                                    if (value.GetType().Equals(typeof(byte[])))
                                    {
                                        return (byte[]) value;
                                    }
                                    throw new NotImplementedException();
                                }).ToArray();
        }
    }
    public class Wave
    {
        public readonly byte[] WavFile; 

        public Wave(string notes)
        {
            var header = new Header();
            var data = new List<Chunk>();
            var f = new Fmt(8000);
            data.Add(f);
            data.Add(new WavData(notes, f));
            var thefile = data.SelectMany(x => x.ToByteArray()).ToArray();
            header.Size = (uint)thefile.Length + 4;
            WavFile = header.ToByteArray().Concat(thefile).ToArray();
        }
        class WavData: Chunk
        {
            private static IEnumerable<byte> RenderNote(string note, int length, Fmt fmt)
            {
                double frequency;
                switch (note)
                {
                    case "A":
                        frequency = 440;
                        break;
                    case "B":
                        frequency = 493.883;
                        break;
                    case "C":
                        frequency = 261.626;
                        break;
                    case "D":
                        frequency = 293.665;
                        break;
                    case "E":
                        frequency = 329.628;
                        break;
                    case "F":
                        frequency = 349.228;
                        break;
                    case "G":
                        frequency = 391.995;
                        break;
                    default:
                        throw new NotImplementedException("Unsupported Note");
                }
                var result = new byte[fmt.SampleRate / length * 2];  // For 120BPM tempo
                for (int i = 0; i < result.Length; i++)
                {
                    double time = (i % fmt.SampleRate) / (double)fmt.SampleRate;
                    double position = time * frequency;
                    if (result.Length - i <= fmt.SampleRate / 16)
                        result[i] = 127;
                    else
                        result[i] = (byte)Math.Round((Math.Sin(position * 2 * Math.PI) + 1) * 127);
                }
                return result;
            }
            public WavData(string notes, Fmt fmt)
            {
                Samples = new byte[0];
                foreach (var note in Regex.Matches(notes, @"[A-G][1|2|4|8]?").OfType<Match>().Select(x => x.Value))
                {
                    Samples = Samples.Concat(RenderNote(note[0] + "", note.Length > 1 ? note[1] - '0' : 4, fmt)).ToArray();
                }

            }
            public override char[] Id
            {
                get { return "data".ToCharArray(); }
            }
            public override uint DataSize
            {
                get { return (uint)Samples.Length; }
            }
            public byte[] Samples { get; private set; }
        }
        class Fmt : Chunk
        {
            public Fmt(UInt32 sampleRate)
            {
                CompressionCode = 1; // Unknown/PCM
                Channels = 1;
                SampleRate = sampleRate;
                SignificantBits = 8;
            }
            public override char[] Id
            {
                get { return "fmt ".ToCharArray();}
            }
            public override uint DataSize
            {
                get { return 16; }
            }
            public UInt16 CompressionCode { get; private set; }
            public UInt16 Channels { get; private set; }
            public UInt32 SampleRate { get; private set; }
            public UInt32 AvgBytesPerSecond { get { return SampleRate*BlockAlign; } }
            public UInt16 BlockAlign { get { return (UInt16) (SignificantBits/8*Channels); } }
            public UInt16 SignificantBits { get; private set; }
        }
        class Header
        {
            public Header()
            {
                Type = "RIFF".ToCharArray();
                RiffType = "WAVE".ToCharArray();
                Size = 0;
            }

            public char[] Type { get; private set; }
            public UInt32 Size { get; set; }
            public char[] RiffType { get; private set; }
        }
        abstract class Chunk
        {
            public abstract char[] Id { get; }
            public abstract UInt32 DataSize { get; }
        }
    }
    class Program
    {
        public static void Main(string[] args)
        {
            var p1 = "CCGGAAG2";
            var p2 = "FFEEDDC2";
            var p3 = "GGFFEED2";
            var w = new Wave(p1+p2+p3+p3+p1+p2);
            using (var f = new FileStream("testfile.wav", FileMode.Create))
                f.Write(w.WavFile, 0, w.WavFile.Length);
        }
    }
}

上記の答えでは、出力波の振幅が非常に小さいことに気付きました。明らかに、8ビットのサンプルがどのように機能するかについて何かが欠けています。
mootinator

ああ、それを修正しました。操作の順序は重要です。サンプル出力はこちら:dl.dropbox.com/u/469380/testfile.wav
mootinator

FromDigits["LOL",36]==28101LOL <sub> 36 </ sub>バイトのように見えませ
CalculatorFeline

6

パイソン(259)

import pysynth

c=('c',4)
g=('g',4)
a=('a',4)
b=('b',4)
d=('d',4)
e=('e',4)
f=('f',4)
g2=('g',2)
c2=('c',2)
d2=('d',2)

s=(c,c,g,g,a,a,g2,f,f,e,e,d,d,c2,g,g,f,f,e,e,d2,g,g,f,f,e
            ,e,d2,c,c,g,g,a,a,g2,f,f,e,e,d,d,c2)

pysynth.make_wav(s,fn="s.wav")

3
これは短縮できなかったのimport ttlsですか?
zzzzBov

@zzz:うーん、それは冗談ですか?
ジョン

2
@zzz:-Bangs-head-on-desk-正確に何を言っているの?
ジョン

1
@Johnそれは明らかに公案です。お辞儀をするか、彼をhitる必要があります。
ixtmixilix

1
参考のために(非常に遅くコメント)は、ここでそれは本当にgolfedているため、バージョン-60バイトです。
エリックアウトゴルファー

5

C、277文字

#include<math.h>
a[]={0,7,9,7,5,4,2,0,7,5,4,2,7,5,4,2,0,7,9,7,5,4,2,0},i,j,f;main(){unsigned char
b[8000];f=open("/dev/dsp",1);for(i=0;i<24;i++){for(j=0;j<8000;j++){b[j]=(i%4==3
||j/400%20!=9?1+sinf(j*powf(2,a[i]/12.)):1)*127;}for(j=0;j<8000;j+=write(f,b+j,
8000-j));}close(f);}

Perl、203文字

open F,'>:raw','/dev/dsp';for$a(0,7,9,17,5,4,2,10,7,5,4,12,7,5,4,12,0,7,9,17,5,4
,2,10){$b=pack'C*',map 127*($a>9||$_/400%20!=9?1+sin($_*2**($a%10/12)):1),0..
7999;$b=substr$b,syswrite F,$b while length$b}

便利なことに、OSS/dev/dspデフォルトは8kHzモノラルu8です。ここで行うことは、デバイスを開いて計算されたサンプルを書き込むことだけです。


Perlを個別に投稿してください。codegolfを使用しています:)
Eelvex

179 -j,f;main(i){char b[8000];f=open("/dev/dsp",1);for(i=24;i--;write(f,b,j))for(j=0;j<8000;j++)b[j]=(i%4&&j/400%20==9?1:1+sinf(j*powf(2,("@BDEGIG@BDEGBDEG@BDEGIG@"[i]-64)/12.)))*127;}
gastropner

4

PowerShell:207

ゴルフコード:

filter n {switch($_){C{262}D{294}E{330}F{349}G{392}A{440}}}$t="CCGGAAGFFEEDDCGGFFEEDGGFFEEDCCGGAAGFFEEDDC";1..6|%{$t[0..5]|n|%{[console]::beep($_,600)};$t[6]|n|%{[console]::beep($_,1200)};$t=$t.SubString(7)}

Ungolfed、コメント付き:

# Filter to define note frequencies.
filter n {switch($_){C{262}D{294}E{330}F{349}G{392}A{440}}}

# Notes for Twinkle, Twinkle, Little Star.
$t="CCGGAAGFFEEDDCGGFFEEDGGFFEEDCCGGAAGFFEEDDC"

# Run through each phrase in the song.
1..6|%{
    # Play first six notes as quarter notes.
    $t[0..5]|n|%{[console]::beep($_,600)}
    # Play seventh note as half note.
    $t[6]|n|%{[console]::beep($_,1200)}
    # Left-shift $t by 7 notes.
    $t=$t.SubString(7)
}

史上最高のサウンドの演出ではありませんが、機能します。


1
(後期コメント)n{代わりにできますn {か?
エリックアウトゴルファー

4

C-520

バンプ。

#include <linux/fd.h>
#include <time.h>
struct timespec t,p;char*q="AAHHJJH  FFEECCA  HHFFEEC  HHFFEEC  AAHHJJH  FFEECCA";x,y,z,v,w;main(){x=open("/dev/fd0",3);for(y;q[y];y++){clock_gettime(CLOCK_MONOTONIC,&p);if(q[y]>' ')for(w=z=0;z<4e8;z+=t.tv_nsec,w++){struct floppy_raw_cmd s={0};s.flags=FD_RAW_NEED_SEEK;v=!v;s.track=v;ioctl(x,FDRAWCMD,&s);clock_gettime(CLOCK_MONOTONIC,&t);t.tv_nsec=(w+1)*5e8/pow(2.,q[y]/12.)-(t.tv_sec-p.tv_sec)*1e9-t.tv_nsec+p.tv_nsec;t.tv_sec=0;nanosleep(&t,0);}t.tv_nsec=2e8;nanosleep(&t,0);}}

スピーカーやヘッドフォンのような過去1世紀のハードウェアを使用する理由 この優れたコードにより、最新のハードウェアであるフロッピードライブで曲を再生できます。
特別な要件はありません:

  • IDEフロッピードライブ
  • Linuxカーネル
  • コンパイルする -lm
  • プログラムがにアクセスできることを確認して/dev/fd0、デバイスをchownするか、スーパーユーザーとして実行します

少し規則を曲げますが、フロッピードライブをサウンドデバイス、IDEコントローラーを統合サウンドカードと考えてみましょう。


これは理にかなっていると思いますが、フロッピードライブは驚くほどこのタスクに対応していますyoutu.be/LkqYLOa76E0
Hotkeys

3

HyperCardの 2.2から113

play harpsichord "c c g g a a gh fq f e e d d ch gq g f f e e dh gq g f f e e dh cq c g g a a gh fq f e e d d ch"

使用法: HyperCardを起動し、⌘Mと入力してメッセージボックスを開き、上記のコードを貼り付けてEnterキーを押します。

harpsichordで置き換えfluteたりboing、別のサウンドを取得したりできます。


(非常に遅いコメント)harpsichord-> flute-6楽器と引用符の間のスペースを削除します-1合計-7
エリックアウトゴルファー

3

C、96文字

main(t){for(;++t>>16<3;)putchar(t*!!(t>>9&7|!(-t>>12&7))*(96+"#d|dOE3#dOE3dOE3"[t>>13&15])>>5);}

クラシックバイトビートスタイルで生の8ビット符号なしモノオーディオデータを生成します。再生の推奨サンプルレートは8〜16 kHzです。サンプルレートを変更すると、テンポとピッチが変更されます。

Linuxでコンパイルして再生するには、上記のコードを名前を付けて保存しtwinkle.c、次のコマンドを実行します。

gcc twinkle.c -o twinkle
./twinkle | aplay

コードの仕組みに関するいくつかの注意:

  • このようなバイトビート構成に使用される一般的なトリックputchar()は、整数値を取りますが、その下位8ビットのみを印刷することです。したがって、putchar(t)ここで、t増加するカウンタであり、のこぎり波を生成し、波の周波数を乗算することによって変更することができるt適切な値を有します。

  • !!(t>>9&7|!(-t>>12&7))繰り返される6 + 1音符パターンを生成します。具体的に!!(t>>9&7)は、0いつでもt>>9 & 7 == 0、または1そうでない場合に評価します。したがって、4096サンプルごとに512サンプルのギャップが生成されますが、!(-t>>12&7)8つごとにギャップが削除されます。

  • 96+"#d|dOE3#dOE3dOE3"[t>>13&15]メロディを生成します。文字列に含まれる各文字のASCIIコードに96を加えたものが、対応するノートの相対的な頻度を示します。実際には、値は3オクターブ/小オクターブのコンサートピッチノートのHz単位の近似周波数です。つまり、Aが220に対応します。ただし、これらの値が乗算されるベーストーンは約64 Hz 、または8 kHzで再生する場合は32 Hz)、>>5周波数を適切な範囲に戻すには、結果を5オクターブ縮小する必要があります。

追伸 JavaScriptベースのバイトビートプレーヤーでこのコードを試してみたい場合は、に置き換え[t>>13&15]てください.charCodeAt(t>>13&15)


2

Python 317 305 301

これは私の標準的なPythonライブラリのみを使用したソリューションです。

import math,wave,struct;d=24000;r=1100.;t=wave.open("t.wav","w");t.setparams((1,2,int(r),d,"NONE",""));a=[0,7,9,7];b=[5,4,2,0];c=[7,5,4,2]
for h in[math.sin(6*[240*2**(j/12.)for j in a+b+c+c+a+b][x/1000]*(x/r))*(x%500>9 or x/1000%4>2)for x in range(d)]:t.writeframes(struct.pack('h', int(h*64000/2)))

そして、ここでは読みやすくするためにいくつかの空白を追加しています。

import math,wave,struct;d=24000;r=1100.
a=[0,7,9,7];b=[5,4,2,0];c=[7,5,4,2];s=[240*2**(j/12.) for j in a+b+c+c+a+b]
z=[math.sin(6*s[int(x/1000)]*(x/r))*(x%500>10 or int(x/1000)%4>2) for x in range(d)]
t=wave.open("t.wav","w");t.setparams((1,2,int(r),d,"NONE",""))
for h in z:t.writeframes(struct.pack('h', int(h*64000./2)))


2

Arduino、688

int length=15;char notes[]="ccggaag ffeeddc ggffeed ggffeed ccggaag ffeeddc";int beats[]={1,1,1,1,1,1,2,1,1,1,1,1,1,2,4};int tempo=300;void playTone(int tone,int duration){for(long i=0;i<duration*1000L;i+=tone*2){digitalWrite(11,HIGH);delayMicroseconds(tone);digitalWrite(11, LOW);delayMicroseconds(tone);}}void playNote(char note, int duration){char names[]={'c','d','e','f','g','a','b','C'};int tones[]={1915,1700,1519,1432,1275,1136,1014,956};for(int i=0;i<8;i++){if(names[i]==note){playTone(tones[i], duration);}}}void setup(){pinMode(11, OUTPUT);}void loop(){for(int i=0;i<length;i++){if(notes[i]==' '){delay(beats[i]*tempo);}else{playNote(notes[i],beats[i]*tempo);}delay(tempo/2);}}

出力11にブザーを差し込みます。主に品質だけでなく、コードの長さに集中しました。


(最新のコメント)"ccggaag ffeeddc ggffeed ggffeed ccggaag ffeeddc "スペースを削除しますか?int beats[] =スペースを削除しますか?for (longスペースを削除しますか?11, LOWスペースを削除しますか?note, intスペースを削除しますか?i], durationスペースを削除しますか?11, OUTPUTスペースを削除しますか?
エリックアウトゴルファー

実際にいくつかのスペースを忘れましたか?私が理解している限りでffeeddc "は、スペースはある種の遅延のためのものであり、最後には必要ありませんbeats[] =。スペースを確保する理由はありません。また、単にコード長に集中したバージョンを作成する必要があります。
エリックアウトゴルファー

変数はすべて1文字にすることができると思いますが、そのような古い答えに時間を費やす価値はないと思います。これらのヒントをありがとう。
ティムテック

よろしければ、別の回答として自由に投稿してください。
ティムテック

@Timtech質問が閉じられているので、残念ながらそれはできません... :
wizzwizz4

2

bash + say + gunzip、136バイト

say、もちろん、OS Xのテキスト読み上げコマンドです。これは...ひどいです。ええ、下品に行きましょう。

printf '<117 bytes>'|gunzip|sh

117バイトは、もちろん、印刷できない文字を含むgzipストリームです。これらの文字を含むスクリプトのxxdダンプは次のとおりです。

00000000: 7072 696e 7466 2027 1f8b 085c 305c 305c  printf '...\0\0\
00000010: 305c 305c 3002 032b 4eac 54d0 2d0b c9c8  0\0\0..+N.T.-...
00000020: cf4d 2c56 c8e7 c2ca 75cc cb4b c4ce 71cb  .M,V....u..K..q.
00000030: ccc7 c90b 4b4d 85f0 7252 530b 14f4 4ca0  ....KM..rRS...L.
00000040: c2de 8945 a979 4061 6cbc e0c4 dcc4 bc92  ...E.y@al.......
00000050: 8c44 dc02 2e89 7999 a939 685c 5c74 7723  .D....y..9h\\tw#
00000060: ec44 755c 6e2a 8f8a ee19 581b 8767 1402  .Du\n*....X..g..
00000070: 5c30 fa36 7e25 2599 025c 305c 3027 7c67  \0.6~%%..\0\0'|g
00000080: 756e 7a69 707c 7368                      unzip|sh

説明

117バイトは、gzip圧縮された次のスクリプトです。

say -vThomas o
say -vThomas o
say -vAnna o
say -vAnna o
say -vFiona o
say -vFiona o
say -vVeena o
sleep .4
say -vKaren o
say -vKaren o
say -vSamantha o
say -vSamantha o
say -vDaniel o
say -vDaniel o
say -vThomas o
sleep .4
say -vVeena o
say -vVeena o
say -vKaren o
say -vKaren o
say -vSamantha o
say -vSamantha o
say -vDaniel o
sleep .4
say -vVeena o
say -vVeena o
say -vKaren o
say -vKaren o
say -vSamantha o
say -vSamantha o
say -vDaniel o
sleep .4
say -vThomas o
say -vThomas o
say -vAnna o
say -vAnna o
say -vFiona o
say -vFiona o
say -vVeena o
sleep .4
say -vKaren o
say -vKaren o
say -vSamantha o
say -vSamantha o
say -vDaniel o
say -vDaniel o
say -vThomas o

そうです、私はちょうどsay「o」と言うたくさんの異なる声を出しました。どの音声見つけるために、私はaubionotesを使用してスクリプトを作成し、各音声のピッチをすばやく汚い推定値を取得してから、ほとんど正しいと思われるものを多くの試行錯誤を行いました。

私はこれを手動でゴルフしようと考えましたが、繰り返しが非常に多いので、Zopfliがそれをより短くするだろうと思ったので、簡単な方法を取りました。


1

SmileBASIC、45バイト

BGMPLAY"{M=CCGGAAG2FFEEDDC2}{M}[GGFFEED2]2{M}

0

Powershell、120 117バイト

[Console]::beepIsziに触発されたノートラベルと周波数

 ($a='ccggaaGffeeddC')+'ggffeeD'*2+$a|% t*y|%{[console]::beep((0,110,0,65,73,82,87,98)[$_-band7]*4,600+600*($_-lt97))}

主なアイデア

  • メロディは文字列にエンコードされます。
  • メモは文字でエンコードされていますACDEFG
  • 大文字はを意味しdouble durationます。
  • 下位3ビット($_-band7)周波数配列のインデックスとして、各音符の用途(A->1C->3D->4...)
  • このスクリプトは、(0,110,0,65,73,82,87,98)[$_-band7]*4Isziの代わりに周波数のサンプリングレートを減らしたものを使用し(0,440,0,262,294,330,349,392)[$_-band7]ます。[console]::Beepは最も正確な楽器ではないため、わずかに偽造できます:)

説明:メロディー文字列の各文字ccggaaGffeeddCggffeeDggffeeDccggaaGffeeddCに対して、スクリプトは:

  • インデックスとして下位ビットを使用して、配列から頻度を検索します
  • 文字の大文字/小文字に基づいて期間を計算します
  • [console]::beepメモを再生するために呼び出します
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.