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

レス数が950を超えています。1000を超えると書き込みができなくなります。
2019/11/17(日) 09:00:22.10ID:xqEdXdr6
プログラミングのお題スレです。

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

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

※前スレ
プログラミングのお題スレ Part15
http://mevius.5ch.net/test/read.cgi/tech/1564310397/
2020/01/28(火) 01:50:38.61ID:IwozSCni
まぁかってにしさらせ。
不幸な方向を選択するならそれはあんさん選択したことだ。
他人に責任は無い
2020/01/28(火) 01:53:12.90ID:Ue4lP5nY
>>881
スルー力って何だよ
嫌がらせするつもりでここに来てるのか?
コテを外しているから様子を見ていたけど一向にいなくならないから叩き出してやらないと思ってね

偉そうに他人に言い聞かせる前に自分が実践しろよピッコロ ◆YAZTByPXwc6oさん
2020/01/28(火) 01:56:06.99ID:IwozSCni
>>883
このスレにピッコロはいないよ。
ピッコロを探すならこのスレ以外だよ。
2020/01/28(火) 02:03:09.62ID:gua2EZr0
VBSで便利なプログラムを作れスレ 2
https://mevius.5ch.net/test/read.cgi/tech/1539439008/737-799

このスレで議論した。
100階のビルでは、14回が最小でした

三角数と書いてある!
2020/01/28(火) 02:03:37.01ID:Ue4lP5nY
>>884
統失丸出しで何言ってんだよピッコロ ◆YAZTByPXwc6oさん
23分経過してるんですけど寝るに寝られないんですか?
2020/01/28(火) 02:16:53.06ID:nYsF9Ph8
sibarakuhoutipureiyoro
2020/01/28(火) 02:18:23.00ID:Ue4lP5nY
だね
889885
垢版 |
2020/01/28(火) 02:20:17.70ID:gua2EZr0
このビルの問題は、レベル的には、MS, Google, 灘中の試験レベル!
かなり難しい

MS, Google は、たまに同じ問題を出すw

本では、ビル・ゲイツの面接試験とか、
NHK に出てる、竹内薫の[非公認] Googleの入社試験とか
890885
垢版 |
2020/01/28(火) 02:26:10.32ID:gua2EZr0
もし、このビルの問題が、灘中で出たとしても、5分では思いつかないから、捨てる問題。
漏れなら直感で、平方根ずつ飛ばしていく

100階なら、10階ずつ調査していくと、18回が最小となって、間違いw

即座に、捨てるべき問題ですw
2020/01/28(火) 06:59:41.64ID:SzKOygFW
5分でわからなきゃ灘中はあきらめた方が良い
2020/01/28(火) 07:01:48.95ID:SzKOygFW
瞬時にわかった私は特殊なのかな?
2020/01/28(火) 07:55:50.95ID:UMSh2EY2
なんで卵が2個になっているんだ?
制限ないから無限だろ
2020/01/28(火) 11:16:27.23ID:zyDEnKd7
>>841
イギリスのsecond floorは日本で言うところの3回だぞ
2020/01/28(火) 11:19:05.00ID:lYoEsRq3
>>893
玉子2つなら、一つ割れた段階で可能性が残ってるものを下階から順番に試すしかないという制約になる
この可能性が残るものを最小数にするには、一つ目の玉子をどう使うかという問題
896デフォルトの名無しさん
垢版 |
2020/01/28(火) 15:48:15.73ID:Bdltl+Ea
1. オロナミンCを買ってくる。
2. コップに卵を割って入れる。
3. オロナミンCをコップに入れる。
4. よくかき混ぜる。
5. 飲む。
897デフォルトの名無しさん
垢版 |
2020/01/28(火) 18:39:58.72ID:eRWskeVd
おぇっ!
898デフォルトの名無しさん
垢版 |
2020/01/29(水) 07:37:27.84ID:NhzWp0Lr
6. 嘉門タツオを呼ぶ。
7. 歌わせる。
899デフォルトの名無しさん
垢版 |
2020/01/31(金) 17:07:06.67ID:fxx+hpXO
>>77
Kotlin
https://paiza.io/projects/n5vltQrg35VSMdFxiURgbw
900デフォルトの名無しさん
垢版 |
2020/01/31(金) 19:32:58.05ID:K802DmBr
>>696
Kotlin
https://paiza.io/projects/zOzhyVWu8KV0GT7aSR08nA

本当に新しい履歴で古い履歴が置き換えられているかを確認するために入出力は行番号付きで出るようにした(ただし最初の行は0)。
901581
垢版 |
2020/02/01(土) 11:30:55.85ID:6JPjRL8V
Maxima:
Brentせんせーの真似
expm1(x):=if abs(x) < 1e-8 then x*x/2+x else block([y:expm1(x/2)], y*y+2*y);

一方、英語版Wikipediaに拠ると
ttps://en.wikipedia.org/wiki/Exponential_function
expm1(x):=2*tanh(x/2)/(1-tanh(x/2));

tanh()があって、expm1()が無い場合はこうすればいいのか…。
2020/02/01(土) 12:09:01.66ID:YFAnTUnh
expm1って
tanhを計算する以外に使う?
903581
垢版 |
2020/02/01(土) 13:38:54.16ID:6JPjRL8V
HAKMEMに倣って倍角公式でつw
mytanh(x):=if abs(x) < 1e-4 then x-x^3/3 else block([y:mytanh(x/2)],2*y/(1+y^2));

>>902
expm1(x * log(base)) == pow(base, x) - 1
なので、「任意の底でのべき乗マイナス1」のゼロ近傍を精度良く求めたい場合にも使えます。
IEEE754の最新版ではpow(2, x) - 1とpow(10, x) - 1の実装が推奨されてるそうなので、
底が2と10の場合はライブラリ任せになる未来が来る…といいなぁ。
2020/02/01(土) 14:42:02.22ID:YFAnTUnh
>>903
その
任意の底でのべき乗マイナス1
の0近辺をいつ使うのかなあっていう
2020/02/01(土) 15:02:59.25ID:YFAnTUnh
>>624も見てね
2020/02/01(土) 15:05:51.22ID:YFAnTUnh
スカラーでも4倍精度でも同じ方法が使えます
テーブルサイズは色々と変えられるし
多段にも出来ます
2020/02/07(金) 09:14:07.15ID:qw7QPilU
web系でデータ型に固定小数点数がある言語って何がありますか?
2020/02/07(金) 09:27:50.83ID:9c9xCiV6
>>907
スレチ
2020/02/07(金) 11:37:54.05ID:bSyJxcnp
なんでこのスレで質問しようと思ったんだw
2020/02/08(土) 03:34:30.75ID:B8La3jsg
>>907
PythonのDecimalは?
ttps://docs.python.org/ja/3/library/decimal.html
2020/02/08(土) 07:34:55.37ID:gtTyaGQ0
固定小数点なら何でも良いのか?
912910
垢版 |
2020/02/08(土) 09:59:15.15ID:B8La3jsg
あとJavaScriptのこれとか
ttps://github.com/MikeMcl/decimal.js
2020/02/08(土) 10:33:59.99ID:hHzEGlOh
固定小数点ない言語探す方が難しいだろ
2020/02/08(土) 11:21:16.10ID:OUJaeRcl
先生、intは固定小数点数に入りますか?
2020/02/08(土) 20:48:49.89ID:SNKEmgHS
浮動小数点数なら知ってるんだけど固定小数点数ってなに
2020/02/08(土) 21:08:11.45ID:gtTyaGQ0
小数点が固定なヤツ
整数型に適当に仮想の小数点を打って小数と見なすだけでも固定小数点だし
それ用の命令があるCPUもある

2進数や10進数の固定小数点が比較的良く使われる
2020/02/08(土) 22:11:46.67ID:TegpS8IB
>>916
> 整数型に適当に仮想の小数点を打って小数と見なすだけでも固定小数点だし
> それ用の命令があるCPUもある
そんなCPUあるんだ
なんて言う奴?
918910
垢版 |
2020/02/09(日) 00:14:06.45ID:W3YVjpeH
>>917
例えば
ttps://ja.wikipedia.org/wiki/System/360

昔は、「IBM互換機」というのは、これや後継機種の互換機の意味だった。
2020/02/09(日) 06:42:27.22ID:6++kPC7v
>>918
???
パック10進数のことを言ってるのか?
表現形式違うだけであれも整数だよ
2020/02/09(日) 13:58:31.81ID:0/1sPgy2
スレタイ
2020/02/09(日) 14:31:55.84ID:kf5XKxtD
>>920
お題
固定小数点数を説明し例を挙げよ
922デフォルトの名無しさん
垢版 |
2020/02/09(日) 15:49:35.07ID:mw6BsSoR
お題:
複数個の数字列がありどれとも共通する数字がないことを判定しなさい。
2020/02/09(日) 15:59:49.98ID:7EUojISZ
日本語でおk
924デフォルトの名無しさん
垢版 |
2020/02/09(日) 16:24:14.61ID:oNtWIYyZ
>>919
DSPでは今でもポピュラーな形式ですよ

>パック10進数のことを言ってるのか?
それとは別物
2020/02/09(日) 16:26:53.27ID:6++kPC7v
>>922
せめてサンプル挙げてくれ
その説明じゃ主語とかが曖昧すぎてよくわからん
2020/02/09(日) 16:28:52.87ID:6++kPC7v
>>924
>> パック10進数のことを言ってるのか?
> それとは別物
なら説明して下さいな
少なくとも>>918のリンク先では固定小数点関連の説明を見つけられなかった
2020/02/09(日) 17:00:58.89ID:GpaXptWq
>>922
AVX512にそんな命令があった気がする
2020/02/09(日) 17:08:19.65ID:GpaXptWq
意味がちがうかもちがうかも
ここは出題能力の無い人が多くて困るね
929910
垢版 |
2020/02/09(日) 17:25:04.23ID:W3YVjpeH
>>919
そうかも
金山せんせーの「アセンブラプログラミング入門」で復習してくる
ttps://www.kindaikagaku.co.jp/information/kd0033.htm
2020/02/09(日) 17:40:10.77ID:GpaXptWq
固定小数点

元の値をN倍して整数値として扱うのが固定小数点
100倍したら小数第2位まで扱えるし
256倍すれば2進数で小数第8位まで扱える

加減算だけなら何倍してようがそのまま扱えばいいが
乗除算があると元の値の何倍であるかを意識しないといけない

N倍してる場合
乗算は c = (a * b) / N
除算は c = (a / b) * N
となる

a, b, c の3個とも倍率が異なっても問題無い

Nは2^nであれば演算量が小さいことが多いため
この形が多く使われる

固定小数点DSPでは
乗算とシフトとアキュームレータへの加算がセットになった命令を使う事が多い
2020/02/09(日) 18:51:18.41ID:KQJLHzBI
>>930
いきなり固定小数点の説明始めてどうした?
2020/02/09(日) 19:10:44.62ID:mORiFTgk
>>921
2020/02/10(月) 04:36:47.62ID:AGWHQzBG
お題: 二次元行列において任意の位置に直線が引かれ行列が分断されるので、分断されたそれぞれの要素数を出力しなさい

0,0,0,0
1,1,1,1
0,0,0,0
0,0,0,0

out > 4, 8

1,0,0,0
0,1,0,0
0,0,1,0
0,0,0,1

out > 6, 6
2020/02/10(月) 11:56:13.07ID:NGNAXTbr
0からなる島の数を数えればいいんじゃね
2020/02/10(月) 17:44:26.07ID:j00hoIMv
だね
直線の定義も無いから
どんな直線かわからんし
936デフォルトの名無しさん
垢版 |
2020/02/12(水) 13:26:27.37ID:RjN3CVSY
グラフィックス描画の時の点で囲まれた範囲内を塗り潰すみたいなペンキこぼしたアイコンのあれか
2020/02/13(木) 12:04:10.52ID:pgHMR/PS
そのものズバリの問題がある
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0067
2020/02/13(木) 22:23:36.23ID:IlpbVxdq
>>933
Java
https://paiza.io/projects/8xlcRUxdzO4V-nZLKwTBJQ
2020/02/14(金) 21:25:21.62ID:A4umB3Fs
>>937
ひさびさに腕が鳴るぜと思ったらデータ読み込みですでに挫折した
2020/02/15(土) 07:21:35.23ID:1M8DJTak
>>937
サンプルの2番目と3番目は表示と結果を合わせてあるのか、なかなかお茶目だな
会津大学にはインターネット使い始めた時に色々お世話になったわ
2020/02/15(土) 09:47:25.94ID:sllo66FE
>>940
なんで?
俺はつくば大学には世話になってるが
2020/02/15(土) 10:20:55.88ID:1M8DJTak
>>941
当時からオープンソースとかをFTPで公開してくれてたんよ
会津大学だけじゃないけど結構利用させてもらった
2020/02/15(土) 13:25:20.64ID:4O8uAQVX
どこの大学か忘れたけど俺もソース公開してもらったことあるな
わざわざ会員にしてくれてねちっこい感謝メール送った憶えあるわ
まぁ当時は俺のレベルが低くてあまり利用しなかったんだけど
2020/02/15(土) 17:24:54.16ID:sllo66FE
>>942
へぇ〜なるほど
どうもありがとう
2020/02/17(月) 00:08:50.45ID:DNOVCA1a
お題
コロナウイルスが流行しています
人類が利益優先で地球環境を汚染してることに神が怒って人類に罰を与えたかのようです

コロナウイルスの日毎の感染者の増加数が数列として与えられます
マイナスは治癒した人の数を表します

最も感染者数が増加した7日間を火の七日間と呼ぶことにしました
火の七日間の感染者数を出力してください

入力:12,-3,14,8,9,1,12,10,4,8,0,-3,14,4,14,12,12,8,0,3
2020/02/17(月) 00:33:03.49ID:DNOVCA1a
お題
文字の集合を{}で表します
空集合のときは空文字列に置き換え
要素数が0のときは集合を要素で置き換えることで
式を簡略化してください

入力:{J{A{P{A{N{}}},M{A{I{C{A{}}}}},V{A{}}},O{R{D{A{N{}}}}}}}
出力:J{A{PAN,MAICA,VA},ORDAN}
2020/02/17(月) 00:35:34.75ID:DNOVCA1a
> 要素数が0のときは集合を要素で置き換えることで
要素数が1のときは集合を要素で置き換えることで
の間違いです
2020/02/17(月) 13:59:00.72ID:jzpbGAPw
>>945
>人類が利益優先で地球環境を汚染してることに神が怒って人類に罰を与えたかのようです

頭おかしいからどっか行け
2020/02/17(月) 15:09:25.58ID:NKe87pRn
よくもそんなことを!
950デフォルトの名無しさん
垢版 |
2020/02/17(月) 15:35:10.73ID:zC1Ey7v3
how dare you
951デフォルトの名無しさん
垢版 |
2020/02/17(月) 16:14:28.45ID:zC1Ey7v3
>>945
Kotlin
https://paiza.io/projects/9VSbHWToTvrYAKNxm1T5jA

7日の合計を一日ずらしで全て求めて人数多い順に先頭の日と共に出すだけなんだけど、こんなので良いの?
最初の行が火の七日間ね。
952デフォルトの名無しさん
垢版 |
2020/02/17(月) 19:32:24.86ID:zC1Ey7v3
>>946
Kotlin
https://paiza.io/projects/yQJo7wDcbGRS2T0m8b26dA
953デフォルトの名無しさん
垢版 |
2020/02/17(月) 23:11:42.06ID:6oTlxsWX
R
>>945 https://ideone.com/6Azmc7
>>946 https://ideone.com/cAdmIr
2020/02/22(土) 04:56:53.70ID:r22v7z8l
お題: 点Xが多角形Pの内部にあるかどうか判定するプログラム。

参考: https://www.nttpc.co.jp/technology/number_algorithm.html
2020/02/22(土) 10:29:10.88ID:l8PjXQtK
954ですが出題を間違えました!
多角形とか馬鹿の発想なんで、単純に"Hello, World!"と出力するプログラムを書いてください。
お願いします!
2020/02/22(土) 10:53:17.17ID:SFxQYKYb
所詮は蟻ということか
2020/02/22(土) 14:34:34.68ID:bX7nhnRg
>>955
ポリゴンぶつけてやろうか?
2020/02/22(土) 14:39:53.51ID:bX7nhnRg
多角形、いわゆるポリゴンを馬鹿にしちゃあかんよ。CGの基礎はポリゴン。描画も当たり判定もポリゴンがなければ話しにならない。
多角形は自由に様々な形状を表現できる。イライラ棒のフレームとか、道端に転がってる岩の形とか。
2020/02/24(月) 20:48:14.13ID:D8qhYUus
[お題]
URLのページに都道府県別の人口と面積が載っている。
 今回使用するのは、2019.10.1のデータ
 URL: https://uub.jp/pjn/pb.html

 異なる20都道府県を選んで人口密度(人/km2)を最大化する。
 人口密度は、少数6桁程度表示
 選んだ都道府県名を 20個表示する(表示されてる順 ← 県コード順)。

 例えば、3都道府県なら、
  4906.099305 人/km2
  [東京都, 神奈川県, 大阪府]

※入力はwebページから(工夫して)コピペで、スクレイピングの問題じゃない。
2020/02/25(火) 12:49:16.61ID:A39/tA2F
>>959 Ruby
https://ideone.com/sLaDGe
推定で 1008.245481 人/km2
2020/02/25(火) 21:15:33.96ID:A39/tA2F
>>959 Ruby
面倒なことはしなくて良かったみたい
https://ideone.com/5bUwaQ
2020/02/25(火) 23:17:09.48ID:zX8kgoJ+
お題: 決められたフォーマットの日付が与えられるので、年月日の表記を相互変換しなさい

例:
in < 2020/02/25
out > 2020年2月25日

in < 2020年2月25日
out > 2020/02/25
2020/02/25(火) 23:42:53.40ID:QaG0jWhg
>>962
perl5
https://i.imgur.com/uXYkFCA.jpg
964デフォルトの名無しさん
垢版 |
2020/02/26(水) 01:45:39.12ID:+8ew93/H
>>963
それだと月の02が2にならないのでは?
2020/02/26(水) 01:52:39.49ID:h2sTW171
02 だったか
printf などでゼロ埋めさせる必要があったんだな
2020/02/26(水) 08:04:04.40ID:PiyizPRV
そそっかしい人間だなぁ
問題文よく読んでないんじゃね

スラッシュ表記の時は0を削除
年月日表記の時は0で埋める

問題文の例が見えない間抜けの馬鹿なのか?
2020/02/26(水) 08:27:12.43ID:/vd0VUJl
他人のミスにつけ込みすかさずマウンティングwww
2020/02/26(水) 08:52:59.77ID:PiyizPRV
ミスやバグを作り出すような人間には早期に消えてもらった方がいいからね
それに、そそっかしくて注意力のない欠陥人間なんて一番いらないでしょ
だから、マウンティングを超えて、馬鹿にハッキリと「お前は馬鹿だから要らない、消えてくれ」と言い渡す訓練はいつも行う必要がある

まぁこの手の馬鹿がこういうかんたんで短い問題であぶり出せるのも分かった
アホは問題文を読む能力すらないし、読もうともしない
それに、引っかけ問題は、不要な馬鹿やクズや重度のお人よしを見分けるのに使える
2020/02/26(水) 08:54:05.83ID:h2sTW171
次からはヒューマンエラーが出ないように
正解出力例をコピペして、テストにかけておく
2020/02/26(水) 09:13:55.04ID:/vd0VUJl
一生懸命やな
971デフォルトの名無しさん
垢版 |
2020/02/26(水) 09:55:08.64ID:re2OdmIW
人生とはTSPである。
972デフォルトの名無しさん
垢版 |
2020/02/26(水) 11:25:01.06ID:b8tbrO4B
>>968
お前は馬鹿だから要らない、消えてくれ。
2020/02/26(水) 14:32:49.12ID:bEhXB3HQ
>>968
つまらないミスをする人より、つまらない人間(>>968)の方が不要だろうw
2020/02/26(水) 14:41:32.81ID:yGkcf64x
問題文を読んでも例しか書いてないし
決められたフォーマットとやらの記載がどこにもない
何を対応すればいいのかまったく不明
問題文がミス
2020/02/26(水) 16:46:21.84ID:0uW8t3zH
>>962の修正
お題: 標準入力から入力が与えられる。入力は一行の文字列で、yyyy/mm/ddまたはyyyy年mm月dd日のフォーマットで構成される。
この時yyyyは西暦年(0~9999)でmmは月(1~12)でddは日(1~31)である。
yyyy/mm/ddの入力をyyyy年mm月dd日のフォーマットに整形しなさい。
また、yyyy年mm月dd日の入力をyyyy/mm/ddのフォーマットに整形しなさい。
yyyyは0埋めの4ケタとし、mm, ddは0埋めの2桁として整形しなさい。

例:
in < 2020/02/25
out > 2020年02月25日

in < 2020年02月25日
out > 2020/02/25
2020/02/26(水) 16:49:07.66ID:0uW8t3zH
>>975
追記、整形した文字列は標準出力に出力すること
977デフォルトの名無しさん
垢版 |
2020/02/26(水) 18:22:57.88ID:q+vU4LVz
>>962
Perl5
https://paiza.io/projects/fHuOkAPF0a4kE9gAktniDw

こういうのはPerlだと楽だな。
978959
垢版 |
2020/02/26(水) 19:06:00.12ID:jFCu1Qxy
>>959 https://ideone.com/uhSlIm

想定解、二分探索でやる。人口密度は"平均値"そのもの。
"平均 最大化"でググれば、それなりの解説がある。

※母数が47と小さいので、1秒焼きなましでも ほぼいける。

>>961
 一発回答問題なので合っているので正解。しかし気になるのは
 rubyよくわからないが、[県名,人口,面積]として
 [['A', 9,3.0],['B',1, 1.0],['C',13,6.0],['D',15,7.0]] から
 2点を選ぶときの正解は{AB}、3点を選ぶときの正解は{ACD}のパターン。
2020/02/26(水) 19:17:12.65ID:qN9Z1rJQ
ミスを指摘するのはいいけどスマートに指摘してる>>964の後でグダグダ書いても見苦しいだけ
980デフォルトの名無しさん
垢版 |
2020/02/26(水) 19:28:29.51ID:q+vU4LVz
>>975
Kotlin
https://paiza.io/projects/-XJ2Y2J3_f0inCATzeLV2g

元のお題のように桁数可変にする場合はコメントになってる方を使う。
2020/02/27(木) 20:37:04.61ID:pCBnuevU
高次元のhypot()って、
・1パス派
(例:ttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/hypot)
・2パス派
(最初のパスで絶対値が最大のやつを探す)
レス数が950を超えています。1000を超えると書き込みができなくなります。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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