プログラミングのお題スレです。
【出題と回答例】
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
361デフォルトの名無しさん
2023/01/12(木) 03:40:18.96ID:+C22HBL8 お題: 電子レンジのワット数に応じた時間計算
例えば500Wでしか暖められない電子レンジがあったとして、600W 2分30秒と書かれた弁当を温める場合に何分何秒にセットするのが良いかを計算して出す。
プログラムの入力はワット数、時間、変換ワット数のように引数で指定でも良いし標準入力から入力しても良いしその辺はご自由に。
出力は何分何秒になるかが分かるように出力されれば良い。
例えば500Wでしか暖められない電子レンジがあったとして、600W 2分30秒と書かれた弁当を温める場合に何分何秒にセットするのが良いかを計算して出す。
プログラムの入力はワット数、時間、変換ワット数のように引数で指定でも良いし標準入力から入力しても良いしその辺はご自由に。
出力は何分何秒になるかが分かるように出力されれば良い。
362デフォルトの名無しさん
2023/01/12(木) 04:31:32.73ID:SDSfV1tN お題:画面左から右に放物線を描け
放物線の大きさは自由とする
放物線の大きさは自由とする
363デフォルトの名無しさん
2023/01/12(木) 17:46:47.17ID:0N8k5ccV もうちょっと解きたくなる問題にしてよ
364デフォルトの名無しさん
2023/01/12(木) 20:01:45.06ID:SDSfV1tN 解きたくなる問題っていわゆる競技プログラミング的な問題?
365デフォルトの名無しさん
2023/01/12(木) 22:39:30.54ID:NydLThiR 辺のリストとして順序のない頂点番号のペアのリストが与えられます
すべての頂点についてそこに接続される辺の数が偶数であるか判定するプログラムを記述せよ
すべての頂点についてそこに接続される辺の数が偶数であるか判定するプログラムを記述せよ
366デフォルトの名無しさん
2023/01/13(金) 07:12:10.26ID:yfNIHWIT お題:2023と出力せよ
ただしソースコードに使う記号とアルファベットと数字の文字数は同じでなければならない
ただしソースコードに使う記号とアルファベットと数字の文字数は同じでなければならない
367デフォルトの名無しさん
2023/01/13(金) 07:28:17.46ID:yfNIHWIT368デフォルトの名無しさん
2023/01/13(金) 08:40:12.03ID:nvi3rj0H printf("%04d",03747);
369デフォルトの名無しさん
2023/01/13(金) 14:36:20.69ID:+TkXA4uq >>365
digraph "koenigsberg" {
graph [rankdir=LR]
A [label="い"]
B [label="ろ"]
C [label="は"]
D [label="に"]
A -> B; A -> C; A -> D
C -> B; C -> B
C -> D; C -> D
}
屁が臭い
digraph "koenigsberg" {
graph [rankdir=LR]
A [label="い"]
B [label="ろ"]
C [label="は"]
D [label="に"]
A -> B; A -> C; A -> D
C -> B; C -> B
C -> D; C -> D
}
屁が臭い
370デフォルトの名無しさん
2023/01/15(日) 00:08:46.23ID:FV+qvPCN >>366
C
https://paiza.io/projects/i1c5DPBXZ1G-wd1QHitTQA
記号、アルファベット、数字は全て45文字になっている。空白文字はカウントしていない。
まあでも、C言語だからこれでエラーなくコンパイルできたというだけだな。
(paiza.ioのCコンパイラは警告出しまくりではあるが)。
他の言語だと変数に文字列代入するとかコメント使うとかしないと文字数の調整が出来ないかも知れない。
C
https://paiza.io/projects/i1c5DPBXZ1G-wd1QHitTQA
記号、アルファベット、数字は全て45文字になっている。空白文字はカウントしていない。
まあでも、C言語だからこれでエラーなくコンパイルできたというだけだな。
(paiza.ioのCコンパイラは警告出しまくりではあるが)。
他の言語だと変数に文字列代入するとかコメント使うとかしないと文字数の調整が出来ないかも知れない。
371デフォルトの名無しさん
2023/01/15(日) 01:00:27.85ID:FV+qvPCN >>361
Kotlin
https://paiza.io/projects/5CeeHK2CT8yX9ExfzW5N8A
実はこのお題を作ったのは俺だ。
計算そのものはとても簡単なのでこういう機能は電子レンジに内蔵して欲しいな。
ワット数一つでダイヤル式の安い電子レンジでもそういう目盛りを書いておいてくれれば出来る。
Kotlin
https://paiza.io/projects/5CeeHK2CT8yX9ExfzW5N8A
実はこのお題を作ったのは俺だ。
計算そのものはとても簡単なのでこういう機能は電子レンジに内蔵して欲しいな。
ワット数一つでダイヤル式の安い電子レンジでもそういう目盛りを書いておいてくれれば出来る。
372デフォルトの名無しさん
2023/01/15(日) 02:14:30.17ID:gPxpLXY1 普通の知能を有した人間なら簡単に暗算出来るから必要ない
重度知能障害のガイジにはその機能すら使えない
つまり
極一部の軽度知能障害ガイジにだけ求められるニッチすぎる機能
そんなバカ向け機能搭載するくらいなら必要な温め時間を商品から読み取る機能を規格化して全(半)自動化すべきだろう
重度知能障害のガイジにはその機能すら使えない
つまり
極一部の軽度知能障害ガイジにだけ求められるニッチすぎる機能
そんなバカ向け機能搭載するくらいなら必要な温め時間を商品から読み取る機能を規格化して全(半)自動化すべきだろう
373デフォルトの名無しさん
2023/01/15(日) 05:24:15.26ID:HfW5N73n 理屈があるのは分かるがまあ普段なら目分量的なイメージで適当に加減するわな
大体でいいんだし暗算っていうか計算すらしてないと思うが
大体でいいんだし暗算っていうか計算すらしてないと思うが
374デフォルトの名無しさん
2023/01/15(日) 06:42:56.97ID:jfEFDcL5 電子レンジにQRコード読み取り部作って弁当のラベルのQRコードで自動的にあっため時間セットしてくれるとかなら便利かな?
375デフォルトの名無しさん
2023/01/15(日) 08:11:24.04ID:mSV32aUO >>366 Ruby
puts 2_0_2_3
puts 2_0_2_3
376デフォルトの名無しさん
2023/01/15(日) 17:19:38.70ID:WCY+XZ1J377デフォルトの名無しさん
2023/01/15(日) 17:48:39.72ID:WCY+XZ1J378蟻人間 ◆T6xkBnTXz7B0
2023/01/15(日) 21:44:15.23ID:vbe9Mh4B お題: エラトステネスのふるいによる素数計算。ただし、発見した素数は
一行ごとにテキストファイルに保存し、途中で中断したり、途中から再開できるようにせよ。
一行ごとにテキストファイルに保存し、途中で中断したり、途中から再開できるようにせよ。
380デフォルトの名無しさん
2023/01/16(月) 01:01:20.29ID:dNVpKyvJ 蟻人間ってこんなスレにも湧くのか
381デフォルトの名無しさん
2023/01/16(月) 15:39:46.71ID:MsfEWWA2 行についての説明が欠如
382デフォルトの名無しさん
2023/01/16(月) 15:41:07.03ID:MsfEWWA2 >>374
電子レンジの中のトレイの下の台って重さ測れるの?
電子レンジの中のトレイの下の台って重さ測れるの?
383デフォルトの名無しさん
2023/01/16(月) 22:39:09.16ID:iuZ1R8qg お題
4桁のダイヤルロックの全パターン(0000~9999)を試すときの
最小手数の手順を一つ構成せよ。一つの桁の数字を1だけずらすことを1手とする。
[出力例]
0000
0001
0002
…
0008
0009
0019
…
…
4桁のダイヤルロックの全パターン(0000~9999)を試すときの
最小手数の手順を一つ構成せよ。一つの桁の数字を1だけずらすことを1手とする。
[出力例]
0000
0001
0002
…
0008
0009
0019
…
…
384デフォルトの名無しさん
2023/01/16(月) 23:31:00.58ID:aXflKE34 >>374
それできると便利だね。レンジの庫内の上にカメラ付けておいて読ませれば弁当入れてスタートさせるだけで良くなる。
それできると便利だね。レンジの庫内の上にカメラ付けておいて読ませれば弁当入れてスタートさせるだけで良くなる。
385蟻人間 ◆T6xkBnTXz7B0
2023/01/20(金) 00:01:32.51ID:9QULq18e お題: マイドキュメントの中から「secret.txt」というファイルを探して、
見つかったら、そのフルパスと中身を出力するプログラム。
見つかったら、そのフルパスと中身を出力するプログラム。
386デフォルトの名無しさん
2023/01/20(金) 01:04:08.85ID:ZAb8Aj+J 仕様があいまい
387デフォルトの名無しさん
2023/01/20(金) 08:07:46.26ID:QPqgERsk わざとやってんのか
ズレてるの自覚してないのか
ズレてるの自覚してないのか
388デフォルトの名無しさん
2023/01/20(金) 08:26:44.32ID:4FDe58aX アホだからわからないんでしょ
389デフォルトの名無しさん
2023/01/21(土) 06:38:17.48ID:LtuQH3eG >>385
Windows 限定?
Windows 限定?
390デフォルトの名無しさん
2023/01/21(土) 09:24:11.19ID:65q2x7kt アホの相手すんな
391デフォルトの名無しさん
2023/01/21(土) 20:04:10.41ID:JTA3Ya2G392蟻人間 ◆T6xkBnTXz7B0
2023/01/21(土) 20:29:41.73ID:F/Hlc0t0393デフォルトの名無しさん
2023/01/21(土) 22:48:16.95ID:PxhUXXTz >>392
Linux のコンサバなディストリは今はなにがお勧めですか、もうそろそろ Linux に乗り換えようかと
Linux のコンサバなディストリは今はなにがお勧めですか、もうそろそろ Linux に乗り換えようかと
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
同じ人に複数パターンの上司ってどういうこと?
同じ人に複数パターンの上司ってどういうこと?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国側が首相答弁の撤回要求、日本側拒否 [夜のけいちゃん★]
- 債券・円・株「トリプル安」に…長期金利1.755%まで上昇、円は対ユーロで史上最安値 [蚤の市★]
- 映画「鬼滅の刃」の興行収入急減、日本行き航空券大量キャンセル…中国メディア報道 [蚤の市★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★5 [ぐれ★]
- 【音楽】Perfume・あ~ちゃんの結婚相手「一般男性」は吉田カバンの社長・吉田幸裕氏(41) 高身長で山本耕史似 [Ailuropoda melanoleuca★]
- 【大分】佐賀関で大規模火災、170棟以上が延焼中 70代男性1人と連絡取れず [ぐれ★]
- 麻生太郎氏、高市政権と距離を置きはじめる(´・ω・`) [399259198]
- 【悲報】中国営業に熱心な日本人タレントたち、中国のイベントが続々と中止に… まだ予定中のアイドルとか歌手とかたくさんいるけど [452836546]
- 自閉症が「んなっしょい」と連呼するお🏡
- 【悲報】高市効果で「1ドル=160円」が相場へwwwwwwwwwwwwwwwwwwwwwwwwwwwww 止まらぬ高市円安💥💥 [871926377]
- 高市総理で期待してるかもしれないけど、自民党はもうダメだから、超党派の勢力が出てくるみたいだぞ。 [134367759]
- トヨタ、反日だった。2027年に中国にレクサスのEV工場を設立。高市 [931948549]
