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

■ このスレッドは過去ログ倉庫に格納されています
2018/09/28(金) 10:09:07.13ID:phwOkayR
プログラミングのお題スレです。

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

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

前スレ
プログラミングのお題スレ Part10
https://mevius.5ch.net/test/read.cgi/tech/1514772904/

プログラミングのお題スレ Part11
https://mevius.5ch.net/test/read.cgi/tech/1524570314/
2018/09/28(金) 10:41:53.02ID:Trt/L8Tp
console.log('>>%d乙', 1);
2018/09/28(金) 10:55:48.49ID:Xb8eTiN0
3つの値の最小値を調べるには2回比較をしなくてはならないことを証明せよ
4デフォルトの名無しさん
垢版 |
2018/09/28(金) 12:28:47.83ID:6mi1IA73
やだ
5デフォルトの名無しさん
垢版 |
2018/09/28(金) 13:55:38.90ID:jm6QTuW3
>>3
3つの値のうちの最小値が分かった時の情報量はlog3
1回の比較によって得られる情報量はlog2
2回の比較で2log2=log4
log2<log3<log4なので最低2回の比較をしなければ最小値を知る事はできない
2018/09/28(金) 14:20:38.29ID:25C/+Q0q
>>3
回数の定義による
ハードウェアでパラにやれば1回だと言い張ることもできるし
7デフォルトの名無しさん
垢版 |
2018/09/28(金) 14:26:10.16ID:6mi1IA73
ここは数学のお題を解くスレではなくプログラミングのお題スレなので証明せよというお題ならば証明をするプログラムを作れという意味になる。
決して人間が頭で考えて証明してはならない。
8デフォルトの名無しさん
垢版 |
2018/09/28(金) 14:46:03.56ID:jm6QTuW3
3つの数単体同士の比較だけじゃなくて、a+bとcとかa^cとb+cとか無限に考えられるから有限時間で証明するのは無理では?
2018/09/28(金) 21:22:39.80ID:CwsEryp/
ID:jm6QTuW3
2018/09/28(金) 22:47:33.75ID:21310r5m
[a, b, c].min
2018/09/28(金) 23:21:12.89ID:I0zPpFv8
>>8
値と言ってるのにどこから数式が出てくるんだろう…
2018/09/28(金) 23:31:28.87ID:Trt/L8Tp
例えばR^3の関数f(x, y, z)で
xが最小の時負、xが最小でなくyが最小の時0、xかyが最小でなくzが最小の時正
になるC^∞級の関数は存在するのでこの関数を使えば比較は1回で済む
13デフォルトの名無しさん
垢版 |
2018/09/29(土) 00:17:28.49ID:mZMDBHA7
>>12
例えばどんな関数?
2018/09/29(土) 01:00:25.54ID:SXeyKQEb
比較って値そのものの大小の比較ってとだろ
15デフォルトの名無しさん
垢版 |
2018/09/29(土) 01:06:03.17ID:IuTgmxg/
比較というのは差をみつけることだからな
ココでの差は引き算の差の意味ではない、当然

数字を引き算して差を求めることもできる、当然
2018/09/29(土) 01:15:28.45ID:SXeyKQEb
>>3が言ってる比較って値そのものの差による比較ってことだろ

ってことな
わかった?
17デフォルトの名無しさん
垢版 |
2018/10/01(月) 20:03:33.29ID:IziOBEHB
お題:f(n)::={nを連続するいくつかの正整数の和として表す表し方の総数}とおく
例えば、15=7+8=4+5+6=1+2+3+4+5よりf(15)=4である
上限Nが与えられたとき、n<=Nでf(n)が奇数となるようなnをすべて足し合わせた値を求めよ

10 -> 24
100 -> 665
1000 -> 18006
10000 -> 571940
100000 -> 18010994
1000000 -> 569929080
10000000 -> 18001029437
100000000 -> 569128815672
1000000000 -> 17994029079715
2018/10/01(月) 20:21:00.27ID:XiA3uZUZ
> nを連続するいくつかの正整数の和として表す表し方の総数

15は7+8と4+5+6と1+2+3+4+5の3通りの表し方があって
その総数f(15)が4ってどういうこと?
2018/10/01(月) 20:26:01.73ID:8OIwu5Mv
>>18
自身も含まれるんじゃない?
2018/10/01(月) 21:52:20.39ID:RJeKuxhD
>>17 Java
https://ideone.com/FqcPpb
適当に作ったが考え方を変えないとideone時間が足りない
2018/10/01(月) 22:05:00.23ID:88z5+fOs
>>17
>連続するいくつかの正整数の和として表す表し方の総数

http://izumi-math.jp/sanae/MathTopic/renzokuwa/renzokuwa.htm
>1以外の奇数の約数と同じだけある

ttps://www.eikoh-seminar.com/echtas/blog/2015/10/post-224.html
>1以外の奇数の約数を何個持っているか
2018/10/01(月) 23:56:46.25ID:RJeKuxhD
>>17 Java
https://ideone.com/z2q0Sj

>>21の考え方を導入してみた
2018/10/02(火) 20:12:32.93ID:3l+a4b56
>>17 Java
https://ideone.com/m7oieG
BitSetなんて使わず普通に再帰使ったほうが早かった…
2018/10/04(木) 17:48:26.02ID:WD/5XFit
10月の学校に着いた時間と帰った時間を平日分全部出力する(土日のみ休みで平日は必ず学校がある)
A君は神経質なので秒まで着いた時間と帰った時間をメモする
時間は任意とする。
入力例
2018/10/01 09:25:00
2018/10/01 17:30:00
出力例
入力例と同じフォーマットの形式の日付時間が平日分全て出力された後に、
今度は別のフォーマットで平日分全て出力される
出力例
2018/10/01 09:25:00
2018/10/01 17:30:00
2018/10/02 09:26:00
2018/10/02 17:24:00
:
:
:
平日のみ全部出力
:
:
別フォーマット出力例
20181001 092500
20181001 173000
2018/10/04(木) 18:15:15.90ID:rW/Q6M2G
やはり10/1と10/8は平日だった
2018/10/04(木) 18:17:14.17ID:THaWokSR
日本語でおk
2018/10/04(木) 18:18:57.90ID:GgsL2+/f
勤怠記録を整形したいです と正直に言えば話が早いのに
2018/10/04(木) 19:56:11.98ID:WD/5XFit
>>27
そうなんですけど、VBAで会社にソースはあるんですけど、他の言語でも見たいんです
2018/10/04(木) 21:05:04.35ID:THaWokSR
平日って設定要る?
文字列 "YYYY/MM/DD HH:MM:SS" をいろんなフォーマットに変換するだけの問題じゃ駄目?
なんで一旦 echo するの?
責めてるんじゃなくて単純な疑問ね
■ このスレッドは過去ログ倉庫に格納されています