プログラミングのお題スレです。
【出題と回答例】
1 名前:デフォルトの名無しさん
お題:お題本文
2 名前:デフォルトの名無しさん
>>1 使用言語
回答本文
結果がある場合はそれも
【ソースコードが長くなったら】 (オンラインでコードを実行できる)
https://ideone.com/
http://codepad.org/
http://compileonline.com/
http://rextester.com/runcode
https://runnable.com/
https://code.hackerearth.com/
http://melpon.org/wandbox
https://paiza.io/
宿題は宿題スレがあるのでそちらへ。
※前スレ
プログラミングのお題スレ Part20
https://mevius.5ch.net/test/read.cgi/tech/1624028577/
プログラミングのお題スレ Part21
■ このスレッドは過去ログ倉庫に格納されています
2022/11/13(日) 19:00:36.84ID:ZCYlhUwL
394蟻人間 ◆T6xkBnTXz7B0
2023/01/21(土) 23:10:37.02ID:F/Hlc0t0 >>393
一般のデスクトップ向けの無料Linuxなら、利用者と情報の多いUbuntuやXubuntuがいい。
工業製品向けとなるとAndroidとかPuppy Linuxかな。私はLinuxは専門外だけど。
一般のデスクトップ向けの無料Linuxなら、利用者と情報の多いUbuntuやXubuntuがいい。
工業製品向けとなるとAndroidとかPuppy Linuxかな。私はLinuxは専門外だけど。
395デフォルトの名無しさん
2023/01/22(日) 06:43:14.23ID:1NpPY/pK WSL2, Ubuntu 20.04 か22.04。
まあ素人は、20.04が無難
VSCode の拡張機能・Remote Development(Remote WSL, Remote SSH, Remote Containers)
これで、WSL2, Docker Desktop も使える
多言語バージョンマネージャーは、日本人が作ったanyenv とか、asdf もある。
それか、Docker
まあ素人は、20.04が無難
VSCode の拡張機能・Remote Development(Remote WSL, Remote SSH, Remote Containers)
これで、WSL2, Docker Desktop も使える
多言語バージョンマネージャーは、日本人が作ったanyenv とか、asdf もある。
それか、Docker
396デフォルトの名無しさん
2023/01/22(日) 07:22:51.14ID:LkY3mVDz 純粋関数型言語触るかテスト駆動開発入門してセンス磨いてくれ
397デフォルトの名無しさん
2023/01/22(日) 14:44:09.50ID:4qkUXg4j お題
月、名前、金額が入力されます
月が2022-12〜2023-01の期間で
金額の合計が最も大きい人の名前と合計の金額を出力してください
2022-10 加藤 10
2022-12 柳沢 10000
2022-10 柳沢 26
2023-01 伊東 10
2022-12 柳沢 151288
2022-11 加藤 10000
2023-02 伊東 257900
2022-12 柳沢 12600
2022-10 伊東 12600
2023-01 伊東 70000
2022-11 加藤 40000
2023-01 伊東 150000
2022-11 加藤 60000
2022-12 柳沢 257900
2023-02 柳沢 40000
2022-11 加藤 26
2023-02 加藤 10000
月、名前、金額が入力されます
月が2022-12〜2023-01の期間で
金額の合計が最も大きい人の名前と合計の金額を出力してください
2022-10 加藤 10
2022-12 柳沢 10000
2022-10 柳沢 26
2023-01 伊東 10
2022-12 柳沢 151288
2022-11 加藤 10000
2023-02 伊東 257900
2022-12 柳沢 12600
2022-10 伊東 12600
2023-01 伊東 70000
2022-11 加藤 40000
2023-01 伊東 150000
2022-11 加藤 60000
2022-12 柳沢 257900
2023-02 柳沢 40000
2022-11 加藤 26
2023-02 加藤 10000
398デフォルトの名無しさん
2023/01/22(日) 16:15:12.29ID:kK2ZzIVu >>397
Haskell
mport Data.List
makeReport ls = id
$ (\x -> ( minimum x, maximum x ))
$ map (\x -> ( sum $ map (read.(!!2)) x, (head x)!!1))
$ groupBy (\x y -> x!!1 == y!!1 )
$ filter ( \x -> head x >= "2022-12" && head x <= "2023-01" )
$ map words
$ ls
main = do
cont <- getContents
let ls = lines cont
print $ makeReport ls
Haskell
mport Data.List
makeReport ls = id
$ (\x -> ( minimum x, maximum x ))
$ map (\x -> ( sum $ map (read.(!!2)) x, (head x)!!1))
$ groupBy (\x y -> x!!1 == y!!1 )
$ filter ( \x -> head x >= "2022-12" && head x <= "2023-01" )
$ map words
$ ls
main = do
cont <- getContents
let ls = lines cont
print $ makeReport ls
399デフォルトの名無しさん
2023/01/23(月) 01:10:57.11ID:PlrAEUgr >>397
awk, sort, head
元データをコピペで odai_397.txt に入れておいて Linux で bash から以下を実行した。
awk '$1>="2022-12"&&$1<="2023-01"{t[$2]+=$3}END{for(i in t)print i,t[i]}' odai_397.txt | sort -k 2nr | head -1
結果はこう出た。
柳沢 431788
awk, sort, head
元データをコピペで odai_397.txt に入れておいて Linux で bash から以下を実行した。
awk '$1>="2022-12"&&$1<="2023-01"{t[$2]+=$3}END{for(i in t)print i,t[i]}' odai_397.txt | sort -k 2nr | head -1
結果はこう出た。
柳沢 431788
400デフォルトの名無しさん
2023/01/23(月) 02:39:02.46ID:PlrAEUgr401デフォルトの名無しさん
2023/01/31(火) 06:31:47.98ID:ozTESx1d お題
顧客番号・商品番号・小計のCSV を、
商品番号が連番の場合には、その分だけ行数を増やし、
小計を等分割しろ(1円未満は切り捨て)
入力
1,1,100
2,1-3,200
3,1,500
3,2-3,400
出力
1,1,100
2,1,66
2,2,66
2,3,66
3,1,500
3,2,200
3,3,200
空白行に意味はない。見やすくしただけ
顧客番号・商品番号・小計のCSV を、
商品番号が連番の場合には、その分だけ行数を増やし、
小計を等分割しろ(1円未満は切り捨て)
入力
1,1,100
2,1-3,200
3,1,500
3,2-3,400
出力
1,1,100
2,1,66
2,2,66
2,3,66
3,1,500
3,2,200
3,3,200
空白行に意味はない。見やすくしただけ
402デフォルトの名無しさん
2023/02/01(水) 03:34:10.44ID:7Z3xMS0R >>401
Haskell
https://ideone.com/ESZHys
ただし入力はすべての行が
整数,整数,整数
または
整数,整数-整数,整数
のみの形と仮定、エラー処理やそれ以外の形式でが混じっている(空行など)が混じることは想定せず
Haskell
https://ideone.com/ESZHys
ただし入力はすべての行が
整数,整数,整数
または
整数,整数-整数,整数
のみの形と仮定、エラー処理やそれ以外の形式でが混じっている(空行など)が混じることは想定せず
403デフォルトの名無しさん
2023/02/01(水) 22:55:53.80ID:8+TAxA89404デフォルトの名無しさん
2023/02/02(木) 02:55:58.24ID:lvlxzCHr405デフォルトの名無しさん
2023/02/03(金) 20:44:23.48ID:KJ3h+c6Z >>397
Elixir で作った。これは、ややこしかった
{ :ok, input_data } = File.read( "input_data.csv" )
# IO.inspect input_data
# 末尾の改行を削除してから、1行ずつ処理する。空白で区切る。
# 2022-12 〜 2023-01 の期間内のデータだけに絞り込む。
# 名前でグルーピングしてから、金額を取り出す。
# 各人の金額を、数値に変換してから合計する。
# 合計が最も大きい人を求める
tuple = input_data
|> String.trim
|> String.split( "\n" )
|> Enum.map( fn( line ) -> String.split( line, " " ) end )
|> Enum.filter( fn [ head | _ ] -> "2022-12" <= head and head <= "2023-01" end )
# |> IO.inspect
|> Enum.group_by( fn [ _, name, _ ] -> name end, fn [ _, _, money ] -> money end )
# |> IO.inspect
|> Enum.map( fn { key, val } -> { key,
Enum.sum( Enum.map( val, &String.to_integer( &1 ) ) )
}
end )
# |> IO.inspect
|> Enum.max_by( &elem( &1, 1 ) )
# |> IO.inspect
{ name, money } = tuple
IO.puts "#{ name }, #{ money }"
#=> 柳沢, 431788
Elixir で作った。これは、ややこしかった
{ :ok, input_data } = File.read( "input_data.csv" )
# IO.inspect input_data
# 末尾の改行を削除してから、1行ずつ処理する。空白で区切る。
# 2022-12 〜 2023-01 の期間内のデータだけに絞り込む。
# 名前でグルーピングしてから、金額を取り出す。
# 各人の金額を、数値に変換してから合計する。
# 合計が最も大きい人を求める
tuple = input_data
|> String.trim
|> String.split( "\n" )
|> Enum.map( fn( line ) -> String.split( line, " " ) end )
|> Enum.filter( fn [ head | _ ] -> "2022-12" <= head and head <= "2023-01" end )
# |> IO.inspect
|> Enum.group_by( fn [ _, name, _ ] -> name end, fn [ _, _, money ] -> money end )
# |> IO.inspect
|> Enum.map( fn { key, val } -> { key,
Enum.sum( Enum.map( val, &String.to_integer( &1 ) ) )
}
end )
# |> IO.inspect
|> Enum.max_by( &elem( &1, 1 ) )
# |> IO.inspect
{ name, money } = tuple
IO.puts "#{ name }, #{ money }"
#=> 柳沢, 431788
406405
2023/02/03(金) 20:45:35.25ID:KJ3h+c6Z >>405
の続き。データの変遷
[
["2022-12", "柳沢", "10000"],
["2023-01", "伊東", "10"],
["2022-12", "柳沢", "151288"],
["2022-12", "柳沢", "12600"],
["2023-01", "伊東", "70000"],
["2023-01", "伊東", "150000"],
["2022-12", "柳沢", "257900"]
]
%{
"伊東" => ["10", "70000", "150000"],
"柳沢" => ["10000", "151288", "12600", "257900"]
}
[{"伊東", 220010}, {"柳沢", 431788}]
{"柳沢", 431788}
の続き。データの変遷
[
["2022-12", "柳沢", "10000"],
["2023-01", "伊東", "10"],
["2022-12", "柳沢", "151288"],
["2022-12", "柳沢", "12600"],
["2023-01", "伊東", "70000"],
["2023-01", "伊東", "150000"],
["2022-12", "柳沢", "257900"]
]
%{
"伊東" => ["10", "70000", "150000"],
"柳沢" => ["10000", "151288", "12600", "257900"]
}
[{"伊東", 220010}, {"柳沢", 431788}]
{"柳沢", 431788}
407デフォルトの名無しさん
2023/02/14(火) 09:18:44.14ID:NQYE/eke >>397
C#
public static void Main(String[] args) {
var m = ReadLines()
.Select(x => {
var a = x.Split(" ");
return new { Month = a[0], Name = a[1], Money = int.Parse(a[2]) };
})
.Where(x => "2022-12".CompareTo(x.Month) <= 0 && x.Month.CompareTo("2023-01") <= 0)
.GroupBy(x => x.Name)
.Select(g => new { Name = g.Key, Total = g.Select(x => x.Money).Sum() })
.MaxBy(x => x.Total);
Console.WriteLine(m);
}
static IEnumerable<string> ReadLines() {
while (true) {
var line = Console.ReadLine();
if (line == null) {
yield break;
}
yield return line;
}
}
C#
public static void Main(String[] args) {
var m = ReadLines()
.Select(x => {
var a = x.Split(" ");
return new { Month = a[0], Name = a[1], Money = int.Parse(a[2]) };
})
.Where(x => "2022-12".CompareTo(x.Month) <= 0 && x.Month.CompareTo("2023-01") <= 0)
.GroupBy(x => x.Name)
.Select(g => new { Name = g.Key, Total = g.Select(x => x.Money).Sum() })
.MaxBy(x => x.Total);
Console.WriteLine(m);
}
static IEnumerable<string> ReadLines() {
while (true) {
var line = Console.ReadLine();
if (line == null) {
yield break;
}
yield return line;
}
}
408デフォルトの名無しさん
2023/02/14(火) 09:59:44.90ID:K2Y3lAZv お題:与えられた文字列が回文であるかどうかを判定するプログラムを作成してください。 (例: "racecar"は回文)
409デフォルトの名無しさん
2023/02/14(火) 17:10:57.35ID:Dc+ThI52 >>408
Haskell
isPalindrome x = x == reverse x
main = do
print $ isPalindrome "DVD"
print $ isPalindrome "TOMATO"
print $ isPalindrome "しんぶんし"
------
True
False
True
Haskell
isPalindrome x = x == reverse x
main = do
print $ isPalindrome "DVD"
print $ isPalindrome "TOMATO"
print $ isPalindrome "しんぶんし"
------
True
False
True
410デフォルトの名無しさん
2023/02/18(土) 20:06:32.64ID:7FIuY7Pp >>401
C#
public static void Main(String[] args) {
var xs = ReadLines()
.Select(x => {
var a = x.Split(",");
return new { UserId = a[0], ItemIdRange = a[1], Amount = int.Parse(a[2]) };
})
.SelectMany(x => {
var range = x.ItemIdRange.Split("-")
.Select(y => int.Parse(y))
.ToArray();
var from = range[0];
var to = range.Length == 1 ? from : range[1];
var count = to - from + 1;
var amount = x.Amount / count;
return Enumerable.Range(from, count)
.Select(id => new { UserId = x.UserId, ItemId = id, Amount = amount });
});
foreach (var x in xs) {
Console.WriteLine(x);
}
}
static IEnumerable<string> ReadLines() {
while (true) {
var line = Console.ReadLine();
if (line == null) {
yield break;
}
yield return line;
}
}
C#
public static void Main(String[] args) {
var xs = ReadLines()
.Select(x => {
var a = x.Split(",");
return new { UserId = a[0], ItemIdRange = a[1], Amount = int.Parse(a[2]) };
})
.SelectMany(x => {
var range = x.ItemIdRange.Split("-")
.Select(y => int.Parse(y))
.ToArray();
var from = range[0];
var to = range.Length == 1 ? from : range[1];
var count = to - from + 1;
var amount = x.Amount / count;
return Enumerable.Range(from, count)
.Select(id => new { UserId = x.UserId, ItemId = id, Amount = amount });
});
foreach (var x in xs) {
Console.WriteLine(x);
}
}
static IEnumerable<string> ReadLines() {
while (true) {
var line = Console.ReadLine();
if (line == null) {
yield break;
}
yield return line;
}
}
411デフォルトの名無しさん
2023/02/18(土) 20:21:20.76ID:7FIuY7Pp >>408
C#
static bool IsPalindrome(string s) {
var i = -1;
var j = s.Length;
while (++i < --j) if (s[i] != s[j]) return false;
return true;
}
C#
static bool IsPalindrome(string s) {
var i = -1;
var j = s.Length;
while (++i < --j) if (s[i] != s[j]) return false;
return true;
}
412蟻人間 ◆T6xkBnTXz7B0
2023/02/18(土) 21:57:36.50ID:VTzLeszJ お題: 漢字かな混じり文をひらがなにする。
「親子丼を食べたい。」→「おやこどんをたべたい。」
「チャーハン美味しい!」→「ちゃーはんおいしい!」
「電話に出んわ」→「でんわにでんわ」
「親子丼を食べたい。」→「おやこどんをたべたい。」
「チャーハン美味しい!」→「ちゃーはんおいしい!」
「電話に出んわ」→「でんわにでんわ」
413デフォルトの名無しさん
2023/02/18(土) 23:37:48.45ID:MFomzfEL そんなんライブラリ使えば簡単
ちなコードは書かない
ちなコードは書かない
414デフォルトの名無しさん
2023/02/19(日) 11:38:22.32ID:IvV72Gup ChatGPTに聞いてみた。
プロンプト
漢字とひらがなを含む日本語の文をひらがなに変換するプログラムをPythonで書いて下さい。以下は入出力例です。
「親子丼を食べたい。」→「おやこどんをたべたい。」
「チャーハン美味しい!」→「ちゃーはんおいしい!」
「電話に出んわ」→「でんわにでんわ」
回答
Pythonでは、「janome」という形態素解析ライブラリを利用することで、文字列を形態素解析して単語に分割し、各単語の読みを取得することができます。以下は、janomeを使って入力された日本語の文をひらがなに変換するプログラムの例です。
from janome.tokenizer import Tokenizer
def kanji_to_hiragana(text):
t = Tokenizer()
tokens = t.tokenize(text)
result = ""
for token in tokens:
reading = token.reading
if reading is None:
result += token.surface
else:
result += reading
return result
text = "親子丼を食べたい。"
result = kanji_to_hiragana(text)
print(result) # おやこどんをたべたい。
text = "チャーハン美味しい!"
result = kanji_to_hiragana(text)
print(result) # ちゃーはんおいしい!
text = "電話に出んわ"
result = kanji_to_hiragana(text)
print(result) # でんわにでんわ
このプログラムでは、janomeのTokenizerクラスを使用して、入力されたテキストを形態素解析し、各単語の読みを取得します。単語の読みは、Tokenオブジェクトのreading属性に格納されており、これがひらがなであれば、そのまま結果に追加します。readingがNoneの場合は、漢字や記号などの場合であるため、Tokenオブジェクトのsurface属性をそのまま結果に追加します。最終的に、全ての単語を結合してひらがなに変換された文字列を返します。
プロンプト
漢字とひらがなを含む日本語の文をひらがなに変換するプログラムをPythonで書いて下さい。以下は入出力例です。
「親子丼を食べたい。」→「おやこどんをたべたい。」
「チャーハン美味しい!」→「ちゃーはんおいしい!」
「電話に出んわ」→「でんわにでんわ」
回答
Pythonでは、「janome」という形態素解析ライブラリを利用することで、文字列を形態素解析して単語に分割し、各単語の読みを取得することができます。以下は、janomeを使って入力された日本語の文をひらがなに変換するプログラムの例です。
from janome.tokenizer import Tokenizer
def kanji_to_hiragana(text):
t = Tokenizer()
tokens = t.tokenize(text)
result = ""
for token in tokens:
reading = token.reading
if reading is None:
result += token.surface
else:
result += reading
return result
text = "親子丼を食べたい。"
result = kanji_to_hiragana(text)
print(result) # おやこどんをたべたい。
text = "チャーハン美味しい!"
result = kanji_to_hiragana(text)
print(result) # ちゃーはんおいしい!
text = "電話に出んわ"
result = kanji_to_hiragana(text)
print(result) # でんわにでんわ
このプログラムでは、janomeのTokenizerクラスを使用して、入力されたテキストを形態素解析し、各単語の読みを取得します。単語の読みは、Tokenオブジェクトのreading属性に格納されており、これがひらがなであれば、そのまま結果に追加します。readingがNoneの場合は、漢字や記号などの場合であるため、Tokenオブジェクトのsurface属性をそのまま結果に追加します。最終的に、全ての単語を結合してひらがなに変換された文字列を返します。
415蟻人間 ◆T6xkBnTXz7B0
2023/02/19(日) 13:28:00.72ID:tpbM8io3 お題: 入力されたYYYY-MM-DD形式の日付文字列について、その日付が営業日かどうか判定する。
「2023-02-10」→「営業日です」
「2023-02-11」→「営業日ではありません」
「2023-02-23」→「営業日ではありません」
「2023-03-19」→「営業日ではありません」
土日祝日は営業日ではないものとする。
「2023-02-10」→「営業日です」
「2023-02-11」→「営業日ではありません」
「2023-02-23」→「営業日ではありません」
「2023-03-19」→「営業日ではありません」
土日祝日は営業日ではないものとする。
416デフォルトの名無しさん
2023/02/19(日) 13:47:10.98ID:43fXspxI 祝日のうち、「春分の日」及び「秋分の日」は、法律で具体的に月日が明記されずに、それぞれ「春分日」、「秋分日」と定められています。
「春分の日」及び「秋分の日」については、国立天文台が、毎年2月に翌年の「春分の日」、「秋分の日」を官報で公表しています。詳しくは、国立天文台ホームページ「よくある質問」(質問3-1)を御参照ください。
こんなんどうすんの
「春分の日」及び「秋分の日」については、国立天文台が、毎年2月に翌年の「春分の日」、「秋分の日」を官報で公表しています。詳しくは、国立天文台ホームページ「よくある質問」(質問3-1)を御参照ください。
こんなんどうすんの
417蟻人間 ◆T6xkBnTXz7B0
2023/02/19(日) 14:17:51.53ID:tpbM8io3 まともな国の政府なら、どっかのデータベースに休日祝日をまとめて公表してるんじゃないの?
じゃなければ、おま国
じゃなければ、おま国
418デフォルトの名無しさん
2023/02/19(日) 14:42:20.06ID:yOeRloac >>408
Kotlin
折角なので回文判定メソッドを String クラスに追加して判定するようにした。
でも複数文字で1文字扱いになるような場合にダメ(例えば半角カナで濁点や半濁点の文字が入る等)。
https://paiza.io/projects/Sa7SUvtirOLawuwjtMXpWQ
Kotlin
折角なので回文判定メソッドを String クラスに追加して判定するようにした。
でも複数文字で1文字扱いになるような場合にダメ(例えば半角カナで濁点や半濁点の文字が入る等)。
https://paiza.io/projects/Sa7SUvtirOLawuwjtMXpWQ
419デフォルトの名無しさん
2023/02/19(日) 15:55:03.68ID:yOeRloac420デフォルトの名無しさん
2023/02/19(日) 16:25:48.49ID:xSIr/CQB421デフォルトの名無しさん
2023/02/19(日) 16:38:47.61ID:H7J+ByWh >>415
haskell
https://ideone.com/VHHFhk
春分の日、秋分の日は内閣府のhpにも2023,2024しかない
しゃあないのでwikiにあった2299年までのデータベース利用
数式に起こせるかもしれないけどどのみち未来永劫使えるわけでもなし、そんな俺様公式使ってもしゃあないし
曜日の計算はツェラーの公式
haskell
https://ideone.com/VHHFhk
春分の日、秋分の日は内閣府のhpにも2023,2024しかない
しゃあないのでwikiにあった2299年までのデータベース利用
数式に起こせるかもしれないけどどのみち未来永劫使えるわけでもなし、そんな俺様公式使ってもしゃあないし
曜日の計算はツェラーの公式
422蟻人間 ◆T6xkBnTXz7B0
2023/02/19(日) 16:52:57.61ID:tpbM8io3 お題: かな漢字混じり文を入力とし、それに含まれるHTMLの特殊文字をエスケープ処理し、さらに漢字にHTMLのルビを振ったHTML文字列を出力せよ。カタカナにはルビを振る必要はないものとする。
「親子丼を食べたい。」→「<ruby>親子丼<rt>おやこどん</rt></ruby>を<ruby>食<rt>た</rt></ruby>べたい。」
「チャーハン美味しい!」→「チャーハン<ruby>美味<rt>おい</rt></ruby>しい!」
「電話に出んわ」→「<ruby>電話<rt>でんわ</rt></ruby>に<ruby>出<rt>で</rt></ruby>んわ」
「親子丼を食べたい。」→「<ruby>親子丼<rt>おやこどん</rt></ruby>を<ruby>食<rt>た</rt></ruby>べたい。」
「チャーハン美味しい!」→「チャーハン<ruby>美味<rt>おい</rt></ruby>しい!」
「電話に出んわ」→「<ruby>電話<rt>でんわ</rt></ruby>に<ruby>出<rt>で</rt></ruby>んわ」
423デフォルトの名無しさん
2023/02/19(日) 16:56:15.40ID:1QQUowPQ424デフォルトの名無しさん
2023/02/19(日) 17:07:42.42ID:PUYJwCgy # 10進数128ビット浮動小数点数をIEEE754内部表現の2進数と16進数に変換する関数(python)
https://paiza.io/projects/DjBcWyn3v0D-xpwVQ7FrCg?language=java
上記のプログラムにはバグがあり、特定の値を変換できません。
どう直したら全ての128ビット浮動小数点数を網羅できるのかお考え下さい。
https://paiza.io/projects/DjBcWyn3v0D-xpwVQ7FrCg?language=java
上記のプログラムにはバグがあり、特定の値を変換できません。
どう直したら全ての128ビット浮動小数点数を網羅できるのかお考え下さい。
425デフォルトの名無しさん
2023/02/19(日) 23:35:38.77ID:k8LiuZ++ >>422
PowerShell (Microsoft Excelがインストールされている環境限定。例文に特殊文字はないのでエスケープ処理は省略)
Add-Type -AssemblyName Microsoft.VisualBasic
$Excel = New-Object -ComObject Excel.Application
foreach ($s in "親子丼を食べたい。", "チャーハン美味しい!", "電話に出んわ") {
$r = [Microsoft.VisualBasic.Strings]::StrConv($Excel.GetPhonetic($s), 32)
$p1 = $s -replace "[^\p{IsHiragana}\p{IsKatakana}\p{P}]+", "(.+)"
$p2 = [Microsoft.VisualBasic.Strings]::StrConv($p1, 32)
$t1 = [RegEx]::split($s, $p1)
$t2 = [RegEx]::split($r, $p2)
$t3 = [RegEx]::split($p1, "\(\.\+\)")
((0..($t1.count - 1) |% {"<ruby>$($t1[$_])<rt>$($t2[$_])</rt></ruby>$($t3[$_])"}) -join "") -replace "<ruby><rt></rt></ruby>", ""
}
PowerShell (Microsoft Excelがインストールされている環境限定。例文に特殊文字はないのでエスケープ処理は省略)
Add-Type -AssemblyName Microsoft.VisualBasic
$Excel = New-Object -ComObject Excel.Application
foreach ($s in "親子丼を食べたい。", "チャーハン美味しい!", "電話に出んわ") {
$r = [Microsoft.VisualBasic.Strings]::StrConv($Excel.GetPhonetic($s), 32)
$p1 = $s -replace "[^\p{IsHiragana}\p{IsKatakana}\p{P}]+", "(.+)"
$p2 = [Microsoft.VisualBasic.Strings]::StrConv($p1, 32)
$t1 = [RegEx]::split($s, $p1)
$t2 = [RegEx]::split($r, $p2)
$t3 = [RegEx]::split($p1, "\(\.\+\)")
((0..($t1.count - 1) |% {"<ruby>$($t1[$_])<rt>$($t2[$_])</rt></ruby>$($t3[$_])"}) -join "") -replace "<ruby><rt></rt></ruby>", ""
}
426蟻人間 ◆T6xkBnTXz7B0
2023/02/20(月) 00:32:29.95ID:S/Y0RwmV 応用お題: かな漢字混じり文が回文かどうか判定。
427蟻人間 ◆T6xkBnTXz7B0
2023/02/20(月) 00:35:10.73ID:S/Y0RwmV 応用お題: 現在の日時からX営業日後を計算せよ。
428蟻人間 ◆T6xkBnTXz7B0
2023/02/20(月) 00:39:43.23ID:S/Y0RwmV お題: 1番目、2番目、3番目など、いわゆる順序数は、英語で1st, 2nd, 3rdなどのように、アラビア数字と英字を混ぜて表記することがある。
入力された整数をこのような英語の順序数として出力せよ。
入力された整数をこのような英語の順序数として出力せよ。
429蟻人間 ◆T6xkBnTXz7B0
2023/02/20(月) 00:40:21.61ID:S/Y0RwmV お題: 任意の英単語を複数形にせよ。
430蟻人間 ◆T6xkBnTXz7B0
2023/02/20(月) 00:59:45.86ID:S/Y0RwmV お題: 日本語の文が非文ではないことを判定する。
「私はご飯を食べました。」→「非文ではありません」
「投げたんばってんそうらんか。」→「非文の可能性があります」
「やなはまなはなあ。」→「非文の可能性があります」
「私はご飯を食べました。」→「非文ではありません」
「投げたんばってんそうらんか。」→「非文の可能性があります」
「やなはまなはなあ。」→「非文の可能性があります」
431蟻人間 ◆T6xkBnTXz7B0
2023/02/20(月) 01:07:33.83ID:S/Y0RwmV お題: 英文の各単語の先頭の文字を大文字にせよ。
「The quick brown fox jumps over the lazy dog.」→「The Quick Brown Fox Jumps Over The Lazy Dog.」
「The quick brown fox jumps over the lazy dog.」→「The Quick Brown Fox Jumps Over The Lazy Dog.」
432デフォルトの名無しさん
2023/02/20(月) 01:43:32.57ID:4kHRqek0 >>429 js
(word) => word + 's'
(word) => word + 's'
433デフォルトの名無しさん
2023/02/20(月) 01:48:53.40ID:4kHRqek0434デフォルトの名無しさん
2023/02/20(月) 01:51:51.59ID:4kHRqek0436デフォルトの名無しさん
2023/02/20(月) 02:11:24.54ID:5symYZYJ >>435
いやsつけるだけだろ
いやsつけるだけだろ
437蟻人間 ◆T6xkBnTXz7B0
2023/02/20(月) 02:23:51.79ID:S/Y0RwmV >>436
https://english-club.jp/blog/english-noun-plural/
まず、英単語が加算名詞か非加算名詞か判定し、非加算名詞なら何も付けない。
さらにすでに複数形ならばそのまま。
sやshで終わる場合、esを付ける。
yで終わる場合、そのyを外してiesを付ける。
とか、いった規則があったはず。
https://english-club.jp/blog/english-noun-plural/
まず、英単語が加算名詞か非加算名詞か判定し、非加算名詞なら何も付けない。
さらにすでに複数形ならばそのまま。
sやshで終わる場合、esを付ける。
yで終わる場合、そのyを外してiesを付ける。
とか、いった規則があったはず。
438デフォルトの名無しさん
2023/02/20(月) 02:37:40.70ID:4kHRqek0 >>437
(word) =>
isNotKasan(word)
? word
: word.endsWith('s') || word.endsWith('sh')
? word + 'es'
: word.endsWith('y')
? word.slice(0, -1) + 'ies'
: word + 's'
(word) =>
isNotKasan(word)
? word
: word.endsWith('s') || word.endsWith('sh')
? word + 'es'
: word.endsWith('y')
? word.slice(0, -1) + 'ies'
: word + 's'
439蟻人間 ◆T6xkBnTXz7B0
2023/02/20(月) 02:40:42.75ID:S/Y0RwmV fで終わる場合はfを外してvesをつける。
xで終わるときはesをつける。
またいくつかの単語には例外がある。
mouse→mice
xで終わるときはesをつける。
またいくつかの単語には例外がある。
mouse→mice
440デフォルトの名無しさん
2023/02/20(月) 02:49:12.44ID:4kHRqek0 ts
(word: string) =>
蟻(word) ?? (
isNotKasan(word)
? word
: word.endsWith('s') || word.endsWith('sh')
? word + 'es'
: word.endsWith('y')
? word.slice(0, -1) + 'ies'
: word + 's')
type 未定義の処理結果 = string
declare function 蟻(word: string): 未定義の処理結果 | null;
(word: string) =>
蟻(word) ?? (
isNotKasan(word)
? word
: word.endsWith('s') || word.endsWith('sh')
? word + 'es'
: word.endsWith('y')
? word.slice(0, -1) + 'ies'
: word + 's')
type 未定義の処理結果 = string
declare function 蟻(word: string): 未定義の処理結果 | null;
441デフォルトの名無しさん
2023/02/20(月) 09:45:16.32ID:sIqfmv40 仕様上げろや
仕様はそっちで調べて決めてくださいとか誰もやらん
仕様はそっちで調べて決めてくださいとか誰もやらん
443デフォルトの名無しさん
2023/02/20(月) 10:48:51.05ID:4EtRnxBT 蟻人間は元々適当なことしか書いてないから相手にしない方がいい
444デフォルトの名無しさん
2023/02/21(火) 09:46:29.52ID:03Hzj4B1445蟻人間 ◆T6xkBnTXz7B0
2023/02/21(火) 19:11:52.19ID:4/c8giY4 お題: 現在の日時をしゃべらせる。
446デフォルトの名無しさん
2023/02/21(火) 19:35:21.00ID:KtZ49LjO 言語:シリ
ヘイシリ!時間は?
ヘイシリ!時間は?
447デフォルトの名無しさん
2023/02/22(水) 10:39:42.72ID:W49C35S1 >>445
ほら適当なことしか書いてない
ほら適当なことしか書いてない
448デフォルトの名無しさん
2023/02/22(水) 19:44:44.02ID:qGoU8D7A いちいちアホの相手すんな
449デフォルトの名無しさん
2023/02/23(木) 02:57:01.39ID:dGvxcQeE450デフォルトの名無しさん
2023/02/23(木) 02:57:44.62ID:dGvxcQeE 音声を出したい場合はこのテキストを読み上げソフトで読み上げさせたり自分で声に出して読んだりしてください。
451デフォルトの名無しさん
2023/02/23(木) 02:59:24.34ID:dGvxcQeE452デフォルトの名無しさん
2023/02/23(木) 13:20:13.85ID:oMKxIthr 【キッシンジャー】 ワクチンを強制し群れを減らす
://rio2016.5ch.net/test/read.cgi/lifesaloon/1662167492/l50
://rio2016.5ch.net/test/read.cgi/lifesaloon/1662167492/l50
453デフォルトの名無しさん
2023/02/23(木) 17:13:39.72ID:cdZW/MyP クソ蟻の相手すんなや
馬鹿しかおらんのか
馬鹿しかおらんのか
454401
2023/02/23(木) 18:33:45.89ID:n1e6/0k5 >>401
Elixir で作った
{ :ok, input_data } = File.read( "input_data.csv" )
# IO.inspect input_data
# 末尾の改行を削除してから、1行ずつ処理する。カンマで区切る
input_data
|> String.trim
|> String.split( "\n" )
|> Enum.map( fn( line ) -> String.split( line, "," ) end )
|> Enum.each( fn [ custom_num, seq_num, money ] ->
{ from, to } = case String.split( seq_num, "-" ) do
# - を含まない時は、2つに分割できない
[ first ] -> num = String.to_integer( first )
{ num, num }
# - を含む時は、2つに分割できる
[ first, last ] -> { String.to_integer( first ), String.to_integer( last ) }
end
for n <- from..to, do: IO.puts "#{ custom_num },#{ n },#{ div( String.to_integer( money ), to - from + 1 ) }"
end )
# |> IO.inspect
Elixir で作った
{ :ok, input_data } = File.read( "input_data.csv" )
# IO.inspect input_data
# 末尾の改行を削除してから、1行ずつ処理する。カンマで区切る
input_data
|> String.trim
|> String.split( "\n" )
|> Enum.map( fn( line ) -> String.split( line, "," ) end )
|> Enum.each( fn [ custom_num, seq_num, money ] ->
{ from, to } = case String.split( seq_num, "-" ) do
# - を含まない時は、2つに分割できない
[ first ] -> num = String.to_integer( first )
{ num, num }
# - を含む時は、2つに分割できる
[ first, last ] -> { String.to_integer( first ), String.to_integer( last ) }
end
for n <- from..to, do: IO.puts "#{ custom_num },#{ n },#{ div( String.to_integer( money ), to - from + 1 ) }"
end )
# |> IO.inspect
455デフォルトの名無しさん
2023/02/24(金) 02:31:53.29ID:qWDde+97456デフォルトの名無しさん
2023/02/24(金) 20:55:59.01ID:Kkq1C7fS >>445
たまには回答側に回ってみなさい
お題
個人の名前,上司の名前,個人の仕事力
が入力されます
個人の仕事力とその上司たちの仕事力を合計した値を出力してください
入力
ガンド部長,ブリ事業部長,9000
モジャコ,ヤズ係長,39000
ワラサ部長,ブリ事業部長,46000
メジロ部長,ブリ事業部長,34000
ブリ事業部長,,32000
ツバイソ,コズクラ係長,24000
ツバス係長,ハマチ課長,23000
ワカナ,ツバス係長,4000
イナダ課長,ワラサ部長,5000
ヤズ係長,ハマチ課長,23000
ワカナゴ係長,イナダ課長,49000
フクラギ課長,ガンド部長,17000
ハマチ課長,メジロ部長,19000
コズクラ係長,フクラギ課長,31000
出力
41000 : ガンド部長 -> ブリ事業部長
147000 : モジャコ -> ヤズ係長 -> ハマチ課長 -> メジロ部長 -> ブリ事業部長
78000 : ワラサ部長 -> ブリ事業部長
-----省略-----
たまには回答側に回ってみなさい
お題
個人の名前,上司の名前,個人の仕事力
が入力されます
個人の仕事力とその上司たちの仕事力を合計した値を出力してください
入力
ガンド部長,ブリ事業部長,9000
モジャコ,ヤズ係長,39000
ワラサ部長,ブリ事業部長,46000
メジロ部長,ブリ事業部長,34000
ブリ事業部長,,32000
ツバイソ,コズクラ係長,24000
ツバス係長,ハマチ課長,23000
ワカナ,ツバス係長,4000
イナダ課長,ワラサ部長,5000
ヤズ係長,ハマチ課長,23000
ワカナゴ係長,イナダ課長,49000
フクラギ課長,ガンド部長,17000
ハマチ課長,メジロ部長,19000
コズクラ係長,フクラギ課長,31000
出力
41000 : ガンド部長 -> ブリ事業部長
147000 : モジャコ -> ヤズ係長 -> ハマチ課長 -> メジロ部長 -> ブリ事業部長
78000 : ワラサ部長 -> ブリ事業部長
-----省略-----
457デフォルトの名無しさん
2023/02/24(金) 22:54:59.85ID:PMEalhSr ぼくの逞しいおちんぽ
458デフォルトの名無しさん
2023/02/24(金) 23:22:44.02ID:3XqkjO93459デフォルトの名無しさん
2023/02/25(土) 08:48:42.87ID:zHIcIgZr460デフォルトの名無しさん
2023/02/25(土) 11:05:00.42ID:dAzPm75C >>458
同じ人に複数パターンの上司ってどういうこと?
同じ人に複数パターンの上司ってどういうこと?
461デフォルトの名無しさん
2023/02/25(土) 13:54:15.17ID:R9oPtKUj おかしいよな?
しかし
1:ガンド部長,ブリ事業部長,9000
2;ブリ事業部長,,32000
からの出力が
41000 : ガンド部長 -> ブリ事業部長
なら2の行があれば32000を一回足すって事だとしか思えないけど完全に意味不明
しかし
1:ガンド部長,ブリ事業部長,9000
2;ブリ事業部長,,32000
からの出力が
41000 : ガンド部長 -> ブリ事業部長
なら2の行があれば32000を一回足すって事だとしか思えないけど完全に意味不明
462デフォルトの名無しさん
2023/02/25(土) 14:00:32.25ID:dAzPm75C ???
何を不思議がっているのかがわからない
何を不思議がっているのかがわからない
463デフォルトの名無しさん
2023/02/25(土) 14:21:21.89ID:m5+HOY8+ もういいわ
464デフォルトの名無しさん
2023/02/25(土) 14:28:23.84ID:rFr0WMKo465デフォルトの名無しさん
2023/02/25(土) 14:40:44.77ID:m5+HOY8+ やっとわかった
A,B,n
は
社員、直属の上司、仕事力
で例外的に部長は直属の上司なしで
A,,n
と記載されている
求められる仕様は全てのAとその上司Bに対してAの直属の上司、その直属の上司、‥でBに至る社員を全てリストアップしてその仕事力の総和を表示せよ
かね
もういいや
A,B,n
は
社員、直属の上司、仕事力
で例外的に部長は直属の上司なしで
A,,n
と記載されている
求められる仕様は全てのAとその上司Bに対してAの直属の上司、その直属の上司、‥でBに至る社員を全てリストアップしてその仕事力の総和を表示せよ
かね
もういいや
466デフォルトの名無しさん
2023/02/25(土) 14:53:53.68ID:dAzPm75C コレは恥ずかしい。
467デフォルトの名無しさん
2023/02/25(土) 15:00:57.04ID:m5+HOY8+ まだ間違ってんの?
ならもういいや
仮にまだ間違ってるとして何その言い方?
何様?
そんな空気しか出せないんなら消えろやカス
ならもういいや
仮にまだ間違ってるとして何その言い方?
何様?
そんな空気しか出せないんなら消えろやカス
468デフォルトの名無しさん
2023/02/25(土) 18:30:05.28ID:ylAvVdkX469デフォルトの名無しさん
2023/02/26(日) 00:19:46.37ID:RymrPGNU ID:Kkq1C7fSがあれから一回も書き込んでないあたり、何も考えずにお題出したんでしょ
470デフォルトの名無しさん
2023/02/26(日) 02:21:31.96ID:B5iNMzdY ガチアスペが暴れるスレッド
471デフォルトの名無しさん
2023/02/26(日) 09:46:23.93ID:4Uq2hv6i お題:N×Nの正方形Aがある。各頂点から点a,b,c,dを正方形の内側のランダムな方向に射出する。点が内側をバウンドし移動してるあいだAの中心点からM×Mの正方形B(最初は点)が徐々に拡大していく。この時、Bの内側に点a,b,c,dが収まるのはMがいくつの時か計算しなさい。
472デフォルトの名無しさん
2023/02/26(日) 18:15:13.00ID:aYPcDOt1 Mの拡大率も書いてないし射出した点の速さも書かれてない
仕様が不十分
ROMってね
仕様が不十分
ROMってね
473デフォルトの名無しさん
2023/02/26(日) 19:02:07.54ID:OLcPjaJb 厳密厨って何が楽しくて生きてるんだろうな。
474デフォルトの名無しさん
2023/02/26(日) 19:05:44.27ID:6DyDqsNY 指摘するだけで書かない奴な
不足してるなら勝手に補完つくればいいものを
仕事じゃあるまいし
不足してるなら勝手に補完つくればいいものを
仕事じゃあるまいし
475デフォルトの名無しさん
2023/02/27(月) 02:09:11.98ID:dWqm4C62 勝手に補完するも何も、そのお題は何を言わんとしているのか全く分からないため補完のしようがない。
476デフォルトの名無しさん
2023/02/27(月) 02:40:43.98ID:2JCuz1J/ 昔はこれぐらいの仕様のお題でも回答ついたけどなぁ
477デフォルトの名無しさん
2023/02/27(月) 04:20:24.87ID:dWqm4C62 読解できたエスパーだけが答えれば良い
478デフォルトの名無しさん
2023/02/27(月) 06:41:19.91ID:8KPFEApR 俺なんか厳密中が言うからわざわざbnfまで書いたぞ笑
もうあんなつかれるお題出したくないわ
もうあんなつかれるお題出したくないわ
479デフォルトの名無しさん
2023/02/27(月) 10:31:19.36ID:UJX7wwq0 >>476
ないない
ないない
480デフォルトの名無しさん
2023/02/27(月) 10:33:14.65ID:5JFQlul5 一日経っても反論ないあたり出題者は逃げたってことでいいのかな
481デフォルトの名無しさん
2023/02/27(月) 12:42:15.62ID:glsnanmZ482デフォルトの名無しさん
2023/02/27(月) 12:46:22.51ID:glsnanmZ 整数をランダムに4個選ぶ
4個の整数の和はいくつか?
こんな感じ
お題になってない
4個の整数の和はいくつか?
こんな感じ
お題になってない
483デフォルトの名無しさん
2023/02/27(月) 18:18:21.52ID:YYxwKNcv ああ、ランダム性が入ってるのがまずいのか
484デフォルトの名無しさん
2023/02/27(月) 18:18:39.12ID:YYxwKNcv ああ、ランダム性が入ってるのがまずいのか
485デフォルトの名無しさん
2023/02/27(月) 18:24:11.89ID:LWteNAWS 蟻は出題がまともに出来てないって自覚がないアホだから
関わっちゃダメ
関わっちゃダメ
486デフォルトの名無しさん
2023/02/27(月) 20:18:00.93ID:tcBt9uhq 不足してるなら補ってお題として成立されてばいいものを最近の輩はリジェクトすることしか眼中にない
上のお題で言えば速度はプログラムで任意に定義できるようにすればお題として成立されられる
その方向へ持っていこうという気概を見せられないなら黙っていれば良い。
上のお題で言えば速度はプログラムで任意に定義できるようにすればお題として成立されられる
その方向へ持っていこうという気概を見せられないなら黙っていれば良い。
487デフォルトの名無しさん
2023/02/27(月) 20:18:42.48ID:LWteNAWS >>486
言い出しっぺの法則
言い出しっぺの法則
488デフォルトの名無しさん
2023/02/27(月) 20:19:28.33ID:LWteNAWS お題をみんなで作るスレ
じゃないんだから
完成してから出題しろ
じゃないんだから
完成してから出題しろ
489デフォルトの名無しさん
2023/02/27(月) 20:22:36.54ID:Gjavqic5 否定することを糧としているんのだからしゃーない。
490デフォルトの名無しさん
2023/02/27(月) 20:27:21.12ID:LWteNAWS >>489
じゃあお前がやれよ
じゃあお前がやれよ
491デフォルトの名無しさん
2023/02/28(火) 02:06:48.72ID:tFrQfTnP 自分で解答作らないで出題するからやろ
492デフォルトの名無しさん
2023/02/28(火) 08:02:01.71ID:Kf1fynEF お題:
>>471からランダム性を抜いて再現性のあるお題に再構築せよ
>>471からランダム性を抜いて再現性のあるお題に再構築せよ
493デフォルトの名無しさん
2023/02/28(火) 08:08:41.98ID:cWa3A3nM ランダム性ってなんやねん
任意性やろ
任意性やろ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【速報】中国外務省報道官 高市首相発言撤回なければ「断固たる対抗措置」 ★2 [蚤の市★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★4 [ぐれ★]
- 【次の一手】台湾問題で小林よしのり氏が私見「まさに戦争前夜」「ただちに徴兵制を敷いて、高市支持者を最前線へ」… ★3 [BFU★]
- 中国、日本行き“50万人”キャンセル 渡航自粛でコロナ禍以来最大 [お断り★]
- 【速報】日本産牛肉の対中国輸出再開協議が中止 ★2 [おっさん友の会★]
- 毛寧(もう・ねい)報道官「中国に日本の水産品の市場は無い」 高市首相の国会答弁に「中国民衆の強い怒り」 [ぐれ★]
- 中国「私達が怒ってるのは日本の政治家に対してで、日本の観光客や日本企業はこれまで通り歓迎する。これこそが大国としての余裕」 [377482965]
- 【速報】中国政府、ゲームを禁輸。原神やブルアカ、荒野行動が日本で影響 [347751896]
- 【悲報】日本人の半数以上が、事ここに至っても日本が中国に喧嘩売ったって理解していない件について [616817505]
- 中国政府、日本人のビザ免除停止、鬼滅の刃公開停止を検討へ [271912485]
- 高市コイン、ガチで156円突入へwwwwwwwwww [246620176]
- Bloomberg「やり過ぎた中国、高市首相の政策遂行手助け」 [481941988]
