プログラミングのお題スレです。
【出題と回答例】
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
328デフォルトの名無しさん
2023/01/11(水) 20:45:29.02ID:jpaYiZfD329デフォルトの名無しさん
2023/01/11(水) 20:48:29.09ID:tUKEbXZD >>311
は??
は??
330デフォルトの名無しさん
2023/01/11(水) 21:01:38.01ID:IvsI+U0J >>327
勘じゃなくてちゃんと考えてから書きなさい
勘じゃなくてちゃんと考えてから書きなさい
331デフォルトの名無しさん
2023/01/11(水) 21:06:32.39ID:IvsI+U0J 連結
全ての点で入と出の差が1以下
入と出が同数じゃない点が2個以下
全ての点で入と出の差が1以下
入と出が同数じゃない点が2個以下
332デフォルトの名無しさん
2023/01/11(水) 21:56:38.66ID:2InRpmeN お前さんには言われたくなかったねぇ
問題文もよく読んでなかったし思い込みで入力扱いして不要な情報だとかなんだとかしていたわけだからね。
問題文もよく読んでなかったし思い込みで入力扱いして不要な情報だとかなんだとかしていたわけだからね。
333デフォルトの名無しさん
2023/01/11(水) 22:09:56.53ID:NOiNk1Lr >全ての点で入と出の差が1以下
つまり次数が奇数の場合もありということか。
有向グラフになったらオイラーグラフの「全ての頂点の次数が偶数」よりも条件が緩くなるのかね。
そんなことあるかね
それとも準オイラーグラフも許されているのか?
ケーニヒスベルクの橋はオイラーグラフだからてっきりそれはないかと。
つまり次数が奇数の場合もありということか。
有向グラフになったらオイラーグラフの「全ての頂点の次数が偶数」よりも条件が緩くなるのかね。
そんなことあるかね
それとも準オイラーグラフも許されているのか?
ケーニヒスベルクの橋はオイラーグラフだからてっきりそれはないかと。
334デフォルトの名無しさん
2023/01/11(水) 22:13:53.37ID:8g/qDi9U すまない、橋の問題はオイラーグラフではなく閉路と言いたかった。
335デフォルトの名無しさん
2023/01/11(水) 22:17:34.30ID:xV7vDRTi あぁ、出題文の問題は一筆書きだけではなくて一筆書きで元の場所に戻るんだ
336デフォルトの名無しさん
2023/01/11(水) 22:21:52.27ID:smM4RS1r 草
アイツほんと問題文読んでないんだね
ドヤ顔で指摘しちゃって恥ずかしいたらありゃしない
アイツほんと問題文読んでないんだね
ドヤ顔で指摘しちゃって恥ずかしいたらありゃしない
337デフォルトの名無しさん
2023/01/11(水) 22:31:14.68ID:IvsI+U0J ケーニヒスベルクの橋って閉路なのか
ただの知識問題でプログラミング全く関係ないけど
ただの知識問題でプログラミング全く関係ないけど
338デフォルトの名無しさん
2023/01/11(水) 22:37:09.41ID:IvsI+U0J >>332
不要だろ
不要だろ
339デフォルトの名無しさん
2023/01/11(水) 22:39:09.52ID:zWDWCyHE 恥ゲージMAXやね
340デフォルトの名無しさん
2023/01/11(水) 22:46:10.73ID:IvsI+U0J341デフォルトの名無しさん
2023/01/11(水) 22:50:28.23ID:IvsI+U0J342デフォルトの名無しさん
2023/01/11(水) 22:58:19.00ID:SA6KxbU7 ( T_T)\(^-^ )ADHDって生きづらいよね
343デフォルトの名無しさん
2023/01/11(水) 23:07:37.17ID:2InRpmeN 違うんだよなぁ。
>>313の意図は知らんけど俺が言ってるのは頂点リストをプログラムの入力にするとは明記されてないということ。
単に「グラフの頂点番号の順序対のリストを与える」と言ったときに頂点番号ってなんだ?とならないようにその説明として「頂点に番号を付けたもの」という文言をつけてるだけの可能性もあるだろうということ。
まぁ、分からないか
>>313の意図は知らんけど俺が言ってるのは頂点リストをプログラムの入力にするとは明記されてないということ。
単に「グラフの頂点番号の順序対のリストを与える」と言ったときに頂点番号ってなんだ?とならないようにその説明として「頂点に番号を付けたもの」という文言をつけてるだけの可能性もあるだろうということ。
まぁ、分からないか
344デフォルトの名無しさん
2023/01/11(水) 23:12:57.97ID:IvsI+U0J 「AがBとして、CがDとして与えられる」
両方与えられるという文にみえる
両方与えられるという文にみえる
345デフォルトの名無しさん
2023/01/11(水) 23:14:31.62ID:IvsI+U0J そうじゃない解釈も確かにある
346デフォルトの名無しさん
2023/01/11(水) 23:14:42.49ID:2InRpmeN 「AはBとして、CはBのD」って意味じゃない?ってこと
347デフォルトの名無しさん
2023/01/11(水) 23:15:33.99ID:IvsI+U0J348デフォルトの名無しさん
2023/01/11(水) 23:15:34.98ID:2InRpmeN いや、BはAとしてCはBのDか
まぁどうでもいいけどね。
まぁどうでもいいけどね。
349デフォルトの名無しさん
2023/01/11(水) 23:16:10.44ID:2InRpmeN そそ、お前さんは先入観とそのレスに惑われてたってこと。
350デフォルトの名無しさん
2023/01/11(水) 23:18:58.91ID:IvsI+U0J >>311に対して「そうだね」で終わる話なのに
351デフォルトの名無しさん
2023/01/11(水) 23:19:23.16ID:IvsI+U0J 変に絡まれた
352デフォルトの名無しさん
2023/01/11(水) 23:19:59.30ID:2InRpmeN いやいや、まるで無駄な入力付けるなよって言ってるかのようじゃん…
まだあんまりわかってないかぁ
そもそも入力とは言ってないんだよね
まだあんまりわかってないかぁ
そもそも入力とは言ってないんだよね
353デフォルトの名無しさん
2023/01/11(水) 23:21:32.80ID:SA6KxbU7 あんぽんターン(^O^☆♪
354デフォルトの名無しさん
2023/01/11(水) 23:21:51.74ID:IvsI+U0J 結局プログラミング以外の話になるのが蟻のお題
355デフォルトの名無しさん
2023/01/11(水) 23:23:33.77ID:qgXhIU8i 【悲報】アスペクトガイジ、先入観でドヤ顔で指摘するも開き直る
356デフォルトの名無しさん
2023/01/11(水) 23:23:52.74ID:IvsI+U0J ケーニヒスベルクの橋の問題なんだから無向に決まってんだろ
これも1個の解釈
これも1個の解釈
357デフォルトの名無しさん
2023/01/11(水) 23:25:37.67ID:hvXrP5Qh 決まってないので指摘するのは間違いよ~
そもそも順序対に気付いていなかったのでそうだと思ってしまったのは仕方ないねぇ
そもそも順序対に気付いていなかったのでそうだと思ってしまったのは仕方ないねぇ
358デフォルトの名無しさん
2023/01/11(水) 23:29:01.68ID:IvsI+U0J 単発君、まだ勘違いしてるのか
アホ
アホ
359デフォルトの名無しさん
2023/01/11(水) 23:32:24.06ID:iLygO0TL 効いてる♪
効いてる♪
効いてる♪
効いてる♪
イライラしちゃって♪顔真っ赤♪
(妖怪ウォッチのリズムで)
効いてる♪
効いてる♪
効いてる♪
イライラしちゃって♪顔真っ赤♪
(妖怪ウォッチのリズムで)
360蟻人間 ◆T6xkBnTXz7B0
2023/01/12(木) 00:27:34.37ID:2cbw5EZQ お題: オブジェクト指向でお絵描きプログラム。
各図形は、描画に必要な座標などを保持する、オブジェクト指向に準じたクラスとして定義する。描画対象のキャンバスは画面、画像、テキスト文字列などを好きに選んでも構わない。
キャンバスでは長方形Rectangle、円Circleの2種類の図形をメモリーの許す限り複数個、追加ができ、また削除できる。色が指定できる場合は塗りつぶしは黄色とし、線の色は青色とする。線の太さは1ピクセル以上とする。
図形を描画する関数は多態性を持ったdraw関数とする。
各図形に図形の位置をずらすmove関数(平行移動)を追加せよ。
複数の図形をグループ化した図形GroupShapeを追加し、GroupShapeにもdraw関数、move関数を追加せよ。
サイズ80x25の空白キャンバスに対して以下の操作を行え。
1. 長方形(8, 10)~(10, 15)を追加。
2. 半径5の円(10, 10)を追加。
3. 1と2をグループ化して+(2, 7)だけmove関数でずらす。
4. キャンバスをdraw関数で描画する。
各図形は、描画に必要な座標などを保持する、オブジェクト指向に準じたクラスとして定義する。描画対象のキャンバスは画面、画像、テキスト文字列などを好きに選んでも構わない。
キャンバスでは長方形Rectangle、円Circleの2種類の図形をメモリーの許す限り複数個、追加ができ、また削除できる。色が指定できる場合は塗りつぶしは黄色とし、線の色は青色とする。線の太さは1ピクセル以上とする。
図形を描画する関数は多態性を持ったdraw関数とする。
各図形に図形の位置をずらすmove関数(平行移動)を追加せよ。
複数の図形をグループ化した図形GroupShapeを追加し、GroupShapeにもdraw関数、move関数を追加せよ。
サイズ80x25の空白キャンバスに対して以下の操作を行え。
1. 長方形(8, 10)~(10, 15)を追加。
2. 半径5の円(10, 10)を追加。
3. 1と2をグループ化して+(2, 7)だけmove関数でずらす。
4. キャンバスをdraw関数で描画する。
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営業日後を計算せよ。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★5 [BFU★]
- 【インバウンド】中国からの“渡航自粛”…ツアー1000人分の直前キャンセル「キャンセル料は免除してくれ」 ことしいっぱいキャンセルに [1ゲットロボ★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 「国民の憤りを引き起こした」中国側“高市首相発言の撤回改めて要求” [どどん★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
- 【ローソン】ロゴの「L」で誤解生んだコーヒーカップ、デザイン変更へ 在庫使い切る3か月後にリニューアル [ぐれ★]
- 【悲報】SANA、発言撤回拒否 [769931615]
- 米シンクタンク「アメリカは台湾問題で"あいまい戦略"を取っている。高市早苗はこの方針から逸脱している」 [603416639]
- 日本「中国製品買うの辞めます。中国旅行辞めます。」 中国「あぁ、そう…」
- ジャーナリストがテレビで解説「台湾問題は高市総理から言ったのではなく、立憲民主が日本の対応可能能力を暴こうとしたから」 [359572271]
- 「遺体、安倍、会いたい」👈逆から読んでみて [175344491]
- お前らの知能指数教えてや
