X



プログラミングのお題スレ Part17

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2020/03/13(金) 01:42:47.06ID:0rEhys36
プログラミングのお題スレです。

【出題と回答例】
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/

宿題は宿題スレがあるのでそちらへ。

※前スレ
プログラミングのお題スレ Part16
https://mevius.5ch.net/test/read.cgi/tech/1573948822/
0562デフォルトの名無しさん
垢版 |
2020/05/17(日) 01:00:50.47ID:3JQ6JRsi
>>561
0565デフォルトの名無しさん
垢版 |
2020/05/17(日) 01:06:25.12ID:EUq6tLtb
お客さん、お口が悪いですよ。
0566デフォルトの名無しさん
垢版 |
2020/05/17(日) 01:12:24.60ID:75sCr/7U
>>563
0567デフォルトの名無しさん
垢版 |
2020/05/17(日) 11:38:13.44ID:vMT2I4CL
>>566
0571デフォルトの名無しさん
垢版 |
2020/05/19(火) 20:39:41.77ID:8HY/3oGP
「慶應卒の学歴なんていらない」10代起業で成功する子の共通点
https://www.excite.co.jp/news/article/President_35457/
起業で成功するキャリア形成の仕方とは? 元プロサッカー選手で起業家の鈴木啓祐氏に聞いた
https://sogyotecho.jp/career-development/
【アプリ開発で起業】必要な心得とマネタイズ方法のすべて
https://www.dreamgate.gr.jp/contents/column/application-development
学生起業家が開発、「人を軸に本を探すアプリ」とは?読書通じて「考える力」養って
https://newswitch.jp/p/20168
島田商高生がアプリ考案、発表 ICT起業家育成プログラム
https://www.at-s.com/news/article/local/central/730010.html
医師コンビが「治療用アプリ」で起業、禁煙に続き高血圧治療アプリを開発
https://diamond.jp/articles/-/229375
好きが高じて“カレー起業”、キャッシュレス決済アプリ「TOKYO MIX CURRY」の挑戦
https://diamond.jp/articles/-/215868
0572デフォルトの名無しさん
垢版 |
2020/05/20(水) 19:45:40.23ID:7wrEZNzM
お題
N×M個の頂点からなる格子状の無向グラフが与えられる。
グラフのエッジは隣同士の頂点を結んでいる。

このグラフの全域木を一つ出力せよ。
ただし、横線と縦線の数は同じでなければならない。

[入力]
N M (N, Mは3以上の奇数)

[出力]
頂点'o'、横線'-'、縦線'|'を使って全域木を描画せよ。(答えは複数あり得る)

[入力例]
3 7

[出力例]
o-o-o-o-o-o-o
|.|.|.|.|.|.|
o.o.o.o.o.o.o
|.....|...|..
o-o-o.o-o.o-o
※表示の都合上、スペースは'.'に置き換えています。
0573デフォルトの名無しさん
垢版 |
2020/05/20(水) 23:01:41.75ID:2ebYf5N5
>>572 Ruby
n, m = gets.split.map{|s| s.to_i}
na = [ ['-']*(n+m), [' ']*(n*(m-1)-n-m) ].flatten.shuffle
ma = [ ['|']*(n+m), [' ']*(m*(n-1)-n-m) ].flatten.shuffle
n.times{|y|
puts [ na[y*(m-1)...(y+1)*(m-1)].map{|s|'o'+s}, 'o' ] * ''
puts ma[ y*m...(y+1)*m ].join(' ') if y != n-1
}
0574デフォルトの名無しさん
垢版 |
2020/05/20(水) 23:05:23.83ID:LJzSJjXI
お題:二重振り子を数値計算でシミュレーションせよ
0576蟻人間 ◆T6xkBnTXz7B0
垢版 |
2020/05/22(金) 12:58:56.52ID:QNXRWxiX
お題: 入力文字列に機種依存文字が含まれているか判定するプログラム。
0578デフォルトの名無しさん
垢版 |
2020/05/22(金) 19:52:54.26ID:GgyK+ULi
>>576 C
#include <stdio.h>
int check( unsigned char uc ){
return( uc == 0x40 || uc >= 0x5b && uc <= 0x5e || uc == 0x60 || uc >= 0x7b && uc <= 0x7e || uc >= 0x80 );
}
void main(){
char ch;
while( (ch = getchar()) != EOF )
check( ch ) && printf( "Check %02X '%c'\n", ch, ch );
}
0579蟻人間 ◆T6xkBnTXz7B0
垢版 |
2020/05/22(金) 21:10:30.88ID:OWpC2iYH
お題: XY平面上の謎のキャラクターPが原点に居てY軸(北)の方向を向いている。Pは何回か次のいずれかのアクションを行う。
アクション1. 90度左に自転する。
アクション2. 90度右に自転する。
アクション3. 一つ前に進む。
入力は、カンマ区切りのアクション番号の並びとする。Pは入力されたアクションを順番に実行する。
出力は、入力の各アクションを実行した後の位置と向き(東西南北)を順番に並べたものとする。

入力例1) 1, 3, 3, 2, 3
入力例2) 3, 2, 3, 1
0581デフォルトの名無しさん
垢版 |
2020/05/23(土) 02:20:43.28ID:zNKp3hWU
>>579 Ruby
def moves( str )
x, y = 0, 0
r = 0
ta = [ [0,-1], [1,0], [0,1], [-1,0] ]
ts = %w{北 東 南 西}
str.split(/,\s*/).each{|ch|
case ch
when '1'; r = (r - 1) % 4
when '2'; r = (r + 1) % 4
when '3'
x += ta[r][0]
y += ta[r][1]
end
puts "%3d %3d %s" % [ x, y, ts[r] ]
}
end
moves( "1, 3, 3, 2, 3" )
moves( "3, 2, 3, 1" )
0582デフォルトの名無しさん
垢版 |
2020/05/23(土) 03:35:28.55ID:zNKp3hWU
>>579 Ruby
def moves( str )
x, y = 0, 0
dx, dy = 0, -1
ts2 = %w{北 西 \ 東 南 }
str.split(/,\s*/).each{|ch|
case ch
when '1'; dx, dy = dy, -dx
when '2'; dx, dy = -dy, dx
when '3'
x += dx
y += dy
end
puts "%3d %3d %s" % [ x, y, ts2[dx + 2*dy + 2] ]
}
end
moves( "1, 3, 3, 2, 3" )
moves( "3, 2, 3, 1" )
0583デフォルトの名無しさん
垢版 |
2020/05/23(土) 13:53:09.08ID:zNKp3hWU
>>579 Ruby
Vectorで書き直して歩数を追加

require 'matrix'
def moves( str )
xy = Vector[ 0, 0, 0 ]
v = Vector[ 0, -1, 1 ]
ts = %w{ 北 西 x 東 南 }
str.split(/,\s*/).each{|ch|
case ch
when '1'; v = Vector[ v[1],-v[0], 1]
when '2'; v = Vector[-v[1], v[0], 1]
when '3'; xy += v
end
puts "%3d %3d %3d歩 %s" % [ xy.to_a, ts[v.dot(Vector[1,2,0])+2] ].flatten
}
end
0584デフォルトの名無しさん
垢版 |
2020/05/23(土) 14:12:42.14ID:z+y0fCqO
IT掲示板群 ttp://x0000.net/forum.aspx?id=15

学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など

simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0
UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0
連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0
4Dエンジン(画像有り)
ttp://x0000.net/topic.aspx?id=3677-0
matrixのライブラリ
ttp://x0000.net/topic.aspx?id=3711-0
ある強力なFor関数
ttp://x0000.net/topic.aspx?id=3630-0
SQLライブラリ
ttp://x0000.net/topic.aspx?id=3675-0
0585デフォルトの名無しさん
垢版 |
2020/05/23(土) 20:15:00.25ID:a8T1l8MG
なにこの糖質ヤバ
0586蟻人間 ◆T6xkBnTXz7B0
垢版 |
2020/05/23(土) 20:30:44.22ID:tuPjXkuO
お題: テキトーに木構造を描画せよ。

入力例)
動物→鳥類、哺乳類
鳥類→ペンギン、アヒル、スズメ
哺乳類→ニワトリ、リス
0587デフォルトの名無しさん
垢版 |
2020/05/23(土) 21:34:52.27ID:FnKZOoV+
>>586
digraph sample {
subgraph cluster1 {
label="cluster1";
{
動物->鳥類, 哺乳類;
鳥類->ペンギン, アヒル, スズメ;
哺乳類->ニワトリ, リス;
哺乳類, 魚類, 鳥類->アマビエ;
}
}
}
0588デフォルトの名無しさん
垢版 |
2020/05/23(土) 21:42:52.29ID:a8T1l8MG
言語は
0591デフォルトの名無しさん
垢版 |
2020/05/23(土) 22:16:49.59ID:a8T1l8MG
0592デフォルトの名無しさん
垢版 |
2020/05/23(土) 22:17:57.75ID:a8T1l8MG
>>589
美しい
0595蟻人間 ◆T6xkBnTXz7B0
垢版 |
2020/05/23(土) 23:25:04.33ID:tuPjXkuO
お題: おらがロボ村では、5人の選手が参加するマラソン大会が実施される。マラソンコースは半径500mの円形で、各選手はコースを一周する。
マラソン大会の開始時刻では、5人の選手はスタートラインに並ぶ。各選手を20km/h〜40km/hのランダムな速度でコースに沿って
ゴールに向かって動かし、スタートラインからの相対位置と順位を1分ごとに記録せよ。
0598デフォルトの名無しさん
垢版 |
2020/05/24(日) 20:12:35.94ID:UpvKbmnk
バグってて草
0602デフォルトの名無しさん
垢版 |
2020/05/29(金) 19:46:09.73ID:Yyjc625Z
>>600 C++ Windows

#include <Windows.h>
#include <iostream>

int main()
{
auto drives = GetLogicalDrives();
for (int i = 0; i < 32; ++i) {
if (drives & (1 << i)) {
char directory[] = "A:";
directory[0] += i;
ULARGE_INTEGER freeBytes;
if (GetDiskFreeSpaceExA(directory, nullptr, nullptr, &freeBytes) != 0) {
std::cout << directory << " " << freeBytes.QuadPart << std::endl;
}
}
}
}
0603デフォルトの名無しさん
垢版 |
2020/05/30(土) 02:41:31.20ID:k7WMMDxu
>>600

#!/bin/sh

echo '残りHDD容量'
0608デフォルトの名無しさん
垢版 |
2020/05/30(土) 19:59:18.23ID:/dD/Ru8o
代々受け継がれた秘伝では
ビット演算にはいやらしいほど大量の括弧を付ける
0609デフォルトの名無しさん
垢版 |
2020/05/30(土) 20:08:41.76ID:40+e0S4G
Cの条件文の後の式も
必ずカッコ{}でくくらないと
気持ち悪くなる体になってしまった
0612蟻人間 ◆T6xkBnTXz7B0
垢版 |
2020/05/31(日) 08:43:10.84ID:KExNe49d
お題: アリが20匹現れた。ハエ叩き棒でやっつけろ。ジョークプログラムなので、なるべく面白いのを頼む。
0613デフォルトの名無しさん
垢版 |
2020/05/31(日) 10:31:10.30ID:Rl1Q+n8J
前出のお題の修正:
5以上の素数に対して、6の剰余は±1のいずれかになる。剰余を順次加算していくと
合計が0になる時の素数は
7, 13, 19, 37, 43, 79, 163, 223, 229
が表れる。次に表れる素数は何か。
0614デフォルトの名無しさん
垢版 |
2020/05/31(日) 11:28:53.67ID:nFHAPcg5
>>613
C && sh
is_prime.exe のソース
https://pastebin.com/JSJU2GWt
これは is_prime.exe 5 600 で5以上600以下の素数を整形して表示する
また、 exe 7 => 7, exe 8 => のように引数1つの時はそれが素数である場合のみ返す
そんな exe を使えば題意の229の次は521だと分かる

~/bin/is_prime.exe 5 600 |perl -pe 's/\s+/\n/g'| head -200 | sed '/^$/d' | perl -ne 'chomp;m/\A(\d+)/;$total += $1; print "$_ ($total)\n" if ($total %6 == 0)'
7 (12)
13 (36)
19 (72)
37 (192)
43 (276)
79 (786)
163 (2742)
223 (4656)
229 (5112)
521 (23064)
569 (26364)
593 (28692)
0615デフォルトの名無しさん
垢版 |
2020/05/31(日) 14:47:31.82ID:nFHAPcg5
出力コードを簡素化した。結果は同様
~/bin/is_prime.exe 5 600 |perl -pe 's/\s+/\n/g'| head -200 | sed '/^$/d' | perl -ne '$total += $_; print if ($total %6 == 0)'
7
13
19
37
43
79
163
223
229
521
569
593
0616デフォルトの名無しさん
垢版 |
2020/05/31(日) 16:58:02.85ID:cODyvW7N
>>614
済みませんが、
素数の時、6の剰余+1か-1のいずれかを使って
加算してください。
0617デフォルトの名無しさん
垢版 |
2020/05/31(日) 18:09:04.04ID:pTVQa+4z
>>613
問題の意味がわからない。

> 5以上の素数に対して、6の剰余は±1のいずれかになる。

割り算の余りがマイナスになるというのはどういう事なのか?
0620デフォルトの名無しさん
垢版 |
2020/05/31(日) 18:21:00.56ID:nFHAPcg5
整数でいえば余り1,5の状態だな

>>616
No
mod 6 で閉じてて可換な四則計算順序を指定する意図が不可解
0621デフォルトの名無しさん
垢版 |
2020/05/31(日) 18:24:13.24ID:eZt8j+dv
ああーそれとも剰余の合計rに対して
剰余が5 のときr--して剰余が1のときr++しろってことかな?
なら>>613は解無しじゃないのか
0622デフォルトの名無しさん
垢版 |
2020/05/31(日) 18:25:46.74ID:Vy0zCg8D
これは荒れる予感
0624デフォルトの名無しさん
垢版 |
2020/05/31(日) 20:09:27.86ID:pTVQa+4z
>>619
(n - 1) mod n の計算結果は n - 1 になるが? 5 mod 6 = 5 になるだろ普通に計算すれば。
余りはどうやっても負の数にならんよな。余りなんだから。
0626デフォルトの名無しさん
垢版 |
2020/05/31(日) 20:15:11.96ID:7viDr3wo
落ち着けよ
ガキじゃねえんだからさぁ…
0627デフォルトの名無しさん
垢版 |
2020/05/31(日) 20:17:14.86ID:pTVQa+4z
>>625
それはどういうルールなのか?普通の数学や数値計算とルールが違うのであればその独自ルールを全て書いてくれ。
書いてくれればそれに合わせて考えるから。
0628デフォルトの名無しさん
垢版 |
2020/05/31(日) 20:18:31.19ID:eZt8j+dv
>>627
普通の文脈で、数学において x = -1 mod n ⇔ x = n - 1 mod n なんですが、あなたはどの宇宙の数学を学んできたんですか
0631デフォルトの名無しさん
垢版 |
2020/05/31(日) 20:30:52.80ID:eZt8j+dv
>>630
いやだからそもそも剰余環境Z/nZにおいては -1 も n - 1 も同じ数字なんだっての
なんで理解できないの
0633デフォルトの名無しさん
垢版 |
2020/05/31(日) 20:35:39.68ID:pTVQa+4z
>>631
「剰余環境Z/nZ」とは何か?
0634デフォルトの名無しさん
垢版 |
2020/05/31(日) 20:54:07.01ID:F5Rzc4As
いきなり専門用語使いだすオタク
0635デフォルトの名無しさん
垢版 |
2020/05/31(日) 20:56:47.94ID:Ni/4BDkr
ほんとお前ら数学の話題大好きだよな
0636◆QZaw55cn4c
垢版 |
2020/05/31(日) 20:56:59.96ID:22Gnkx1d
>>630
n を自然数として、
6n + 5 の形である整数の集合…@

6n - 1 の形である整数の集合…A
があったとき、よくよく考えると @とAは合致しませんか?

>>631
もっと簡単な言葉で説明できませんか?難しい言葉でしか説明できないのなら、それは本質がわかっていないということになりませんか?

>>632
馬鹿にあわせて説明できる人こそ真の天才だとおもいますが、そういう人はなかなかいないようですね
0637デフォルトの名無しさん
垢版 |
2020/05/31(日) 20:57:37.82ID:HJ4meGZ2
数学の話してんなら普通やろ
いつもの数学コンプレックスニキが自演してんやろな
0639デフォルトの名無しさん
垢版 |
2020/05/31(日) 21:00:21.63ID:2kODrb8A
>>623
ありがとうございます。まだ確認できていませんが、
素数が6の剰余で+1型とー1型が同じ割合で存在するなら合計の零点は
もっと頻繁にあると思っていました。
0640デフォルトの名無しさん
垢版 |
2020/05/31(日) 21:09:29.45ID:sumeuwmr
同値とかいう言い方してるから伝わないんやろ
そんなこともわからんのか
0644デフォルトの名無しさん
垢版 |
2020/05/31(日) 21:12:53.15ID:eZt8j+dv
ググれば10秒でわかることをいちいち聞いてくるアホ共
最終的には足し算の定義聞かれてペアノの公理説明することになりそうだなw
0645デフォルトの名無しさん
垢版 |
2020/05/31(日) 21:14:02.77ID:Z63y3ceL
>>613 こんな感じじゃないかなあ
C++
#include <iostream>
const int MAXENT = 1000000;
int prime_table[MAXENT] = {3};
int main()
{
 int found = 0, s = 0, d = 4;
 for(__int64 p = 5;;p += (d = 6 - d)) {
  for(int i = 0;;i ++) {
   int can = prime_table[i];
   if( p < can * can || i >= found ) {
    if( p < MAXENT ) { prime_table[found ++] = (int)p; }
    if( (s += d - 3) == 0 ) { std::cout << p << std::endl; }
    break;
   }
   if( p % can == 0 ) { break; }
 } }
 return 0;
}
0646デフォルトの名無しさん
垢版 |
2020/05/31(日) 21:22:36.66ID:jV2aqIZ1
「n-1と-1は同値」
これ本来の同値ってワードの使い方として合ってるの?
まあ感覚でわかるけどややこしくしてる要因だな
0647デフォルトの名無しさん
垢版 |
2020/05/31(日) 21:24:23.77ID:eZt8j+dv
>>646
「x = -1 mod n ⇔ x = n - 1 mod n 」ってわざわざ読み下してるんですがあなたの眼球にはピンポン玉でもつまっているのですか?
0648デフォルトの名無しさん
垢版 |
2020/05/31(日) 21:26:38.45ID:zrZ3dZ+f
数学オタは意地でもスマートな記述にこだわるから一般人には伝わりにくい
もっと日常語で説明して
0651デフォルトの名無しさん
垢版 |
2020/05/31(日) 21:29:19.97ID:oxSjxpRM
数学得意なやつにとって当たり前で簡単なことは勝手に算数呼ばわりする奴も定期的に湧くよな
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況