プログラミングのお題スレ Part12 at TECH
[2ch|▼Menu]
1:デフォルトの名無しさん
18/09/28 10:09:07.13 phwOkayR.net
プログラミングのお題スレです。
【出題と回答例】
1 名前:デフォルトの名無しさん
  お題:お題本文
2 名前:デフォルトの名無しさん
  >>1 使用言語
  回答本文
【ソースコードが長くなったら】 (オンラインでコードを実行できる)
URLリンク(ideone.com)
URLリンク(codepad.org)
URLリンク(compileonline.com)
URLリンク(rextester.com)
URLリンク(runnable.com)
URLリンク(code.hackerearth.com)
URLリンク(melpon.org)
URLリンク(paiza.io)
宿題は宿題スレがあるのでそちらへ。
前スレ
プログラミングのお題スレ Part10
スレリンク(tech板)
プログラミングのお題スレ Part11
スレリンク(tech板)

2:デフォルトの名無しさん
18/09/28 10:41:53.02 Trt/L8Tp.net
console.log('>>%d乙', 1);

3:デフォルトの名無しさん
18/09/28 10:55:48.49 Xb8eTiN0.net
3つの値の最小値を調べるには2回比較をしなくてはならないことを証明せよ

4:デフォルトの名無しさん
18/09/28 12:28:47.83 6mi1IA73.net
やだ

5:デフォルトの名無しさん
18/09/28 13:55:38.90 jm6QTuW3.net
>>3
3つの値のうちの最小値が分かった時の情報量はlog3
1回の比較によって得られる情報量はlog2
2回の比較で2log2=log4
log2<log3<log4なので最低2回の比較をしなければ最小値を知る事はできない

6:デフォルトの名無しさん
18/09/28 14:20:38.29 25C/+Q0q.net
>>3
回数の定義による
ハードウェアでパラにやれば1回だと言い張ることもできるし

7:デフォルトの名無しさん
18/09/28 14:26:10.16 6mi1IA73.net
ここは数学のお題を解くスレではなくプログラミングのお題スレなので証明せよというお題ならば証明をするプログラムを作れという意味になる。
決して人間が頭で考えて証明してはならない。

8:デフォルトの名無しさん
18/09/28 14:46:03.56 jm6QTuW3.net
3つの数単体同士の比較だけじゃなくて、a+bとcとかa^cとb+cとか無限に考えられるから有限時間で証明するのは無理では?

9:デフォルトの名無しさん
18/09/28 21:22:39.80 CwsEryp/.net
ID:jm6QTuW3

10:デフォルトの名無しさん
18/09/28 22:47:33.75 21310r5m.net
[a, b, c].min

11:デフォルトの名無しさん
18/09/28 23:21:12.89 I0zPpFv8.net
>>8
値と言ってるのにどこから数式が出てくるんだろう…

12:デフォルトの名無しさん
18/09/28 23:31:28.87 Trt/L8Tp.net
例えばR^3の関数f(x, y, z)で
xが最小の時負、xが最小でなくyが最小の時0、xかyが最小でなくzが最小の時正
になるC^∞級の関数は存在するのでこの関数を使えば比較は1回で済む

13:デフォルトの名無しさん
18/09/29 00:17:28.49 mZMDBHA7.net
>>12
例えばどんな関数?

14:デフォルトの名無しさん
18/09/29 01:00:25.54 SXeyKQEb.net
比較って値そのものの大小の比較ってとだろ

15:デフォルトの名無しさん
18/09/29 01:06:03.17 IuTgmxg/.net
比較というのは差をみつけることだからな
ココでの差は引き算の差の意味ではない、当然
数字を引き算して差を求めることもできる、当然

16:デフォルトの名無しさん
18/09/29 01:15:28.45 SXeyKQEb.net
>>3が言ってる比較って値そのものの差による比較ってことだろ
ってことな
わかった?

17:デフォルトの名無しさん
18/10/01 20:03:33.29 IziOBEHB.net
お題: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

18:デフォルトの名無しさん
18/10/01 20:21:00.27 XiA3uZUZ.net
> nを連続するいくつかの正整数の和として表す表し方の総数
15は7+8と4+5+6と1+2+3+4+5の3通りの表し方があって
その総数f(15)が4ってどういうこと?

19:デフォルトの名無しさん
18/10/01 20:26:01.73 8OIwu5Mv.net
>>18
自身も含まれるんじゃない?

20:デフォルトの名無しさん
18/10/01 21:52:20.39 RJeKuxhD.net
>>17 Java
URLリンク(ideone.com)
適当に作ったが考え方を変えないとideone時間が足りない

21:デフォルトの名無しさん
18/10/01 22:05:00.23 88z5+fOs.net
>>17
>連続するいくつかの正整数の和として表す表し方の総数
URLリンク(izumi-math.jp)
>1以外の奇数の約数と同じだけある
URLリンク(www.eikoh-seminar.com)
>1以外の奇数の約数を何個持っているか

22:デフォルトの名無しさん
18/10/01 23:56:46.25 RJeKuxhD.net
>>17 Java
URLリンク(ideone.com)
>>21の考え方を導入してみた

23:デフォルトの名無しさん
18/10/02 20:12:32.93 3l+a4b56.net
>>17 Java
URLリンク(ideone.com)
BitSetなんて使わず普通に再帰使ったほうが早かった…

24:デフォルトの名無しさん
18/10/04 17:48:26.02 WD/5XFit.net
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

25:デフォルトの名無しさん
18/10/04 18:15:15.90 rW/Q6M2G.net
やはり10/1と10/8は平日だった

26:デフォルトの名無しさん
18/10/04 18:17:14.17 THaWokSR.net
日本語でおk

27:デフォルトの名無しさん
18/10/04 18:18:57.90 GgsL2+/f.net
勤怠記録を整形したいです と正直に言えば話が早いのに

28:デフォルトの名無しさん
18/10/04 19:56:11.98 WD/5XFit.net
>>27
そうなんですけど、VBAで会社にソースはあるんですけど、他の言語でも見たいんです

29:デフォルトの名無しさん
18/10/04 21:21:03.44 lLtqL4D1g
>>24
Python3
URLリンク(paiza.io)

30:デフォルトの名無しさん
18/10/04 21:05:04.35 THaWokSR.net
平日って設定要る?
文字列 "YYYY/MM/DD HH:MM:SS" をいろんなフォーマットに変換するだけの問題じゃ駄目?
なんで一旦 echo するの?
責めてるんじゃなくて単純な疑問ね

31:デフォルトの名無しさん
18/10/04 22:21:43.46 pTnAHI9j.net
>>24 C++
#include <cstdio>
#include <vector>
#include <tuple>
using namespace std;
int zeller(int y, int m, int d) {
if (m < 3) {
y--;
m += 12;
}
return (y + y / 4 - y / 100 + y / 400 + (13 * m + 8) / 5 + d ) % 7;
}
int main() {
vector<tuple<int, int, int, int, int, int>> v;
for (int y, m, d, h, i, s; scanf("%d/%d/%d %d:%d:%d", &y, &m, &d, &h, &i, &s) == 6; ) {
if (int w = zeller(y, m, d); 1 <= w && w <= 5) {
v.emplace_back(y, m, d, h, i, s);
}
}
for (auto [y, m, d, h, i, s] : v) {
printf("%d/%02d/%02d %02d:%02d:%02d\n", y, m, d, h, i, s);
}
for (auto [y, m, d, h, i, s] : v) {
printf("%d%02d%02d %02d%02d%02d\n", y, m, d, h, i, s);
}
}

32:デフォルトの名無しさん
18/10/04 22:45:58.84 yblvOSiR.net
>>30
平日って設定の理由としては、問題を少し複雑にしたかったから、あえて入れてみた
まあその制限が問題を難しくしてるのかって話もあるけど
文字列を色々なフォーマットにするでもいいけど、日本語でおkとか入力例とか出力例が自分でも適当過ぎた気がするので、また今度の機会に‥
>>31
C++は好きな言語だ
今度の連休で遊ばせてもらいます

33:デフォルトの名無しさん
18/10/04 22:49:59.54 9/syaOEb.net
そう言えば寝てたら未来へ行っちゃうってのは、Islandにちょっと似てる。

34:デフォルトの名無しさん
18/10/04 22:50:28.48 9/syaOEb.net
ごめん。誤爆。

35:デフォルトの名無しさん
18/10/05 00:59:15.29 x9IT1j0q.net
>>24
kotlin
URLリンク(paiza.io)
ほとんど何も考えずただ入力して出力しているだけ。

36:デフォルトの名無しさん
18/10/05 07:17:46.24 wqnG0hHC.net
春分の日と秋分の日はその前の年に気


37:ロ庁だかどっかから指定される休日だから任意の時刻に対して平日判定を行うのは不可能



38:デフォルトの名無しさん
18/10/05 08:06:04.84 f0hsTKrn.net
まず問題文をよく読めって学校で教わらなかったのか?

39:デフォルトの名無しさん
18/10/05 09:07:05.89 wqnG0hHC.net
ああ10月限定かすまんな
それでも無駄な情報が多くて何をさせたい問題なのかやっぱりわからんわ

40:デフォルトの名無しさん
18/10/05 09:48:23.51 ExR6m3Ew.net
お題
1から連続する自然数の並びで
最初の a個の総和と
それに続くb個の総和が
等しくなるものを
好きなだけ求めるち

41:デフォルトの名無しさん
18/10/05 10:50:56.93 wqnG0hHC.net
>>39
(0..10**8).each{|i|n=2*i*(i+1)+1;x=Integer.sqrt(n);puts'a=%d, b=%d'%[a=(x-1)/2,i-a]if x**2==n}
#=>a=0, b=0
a=2, b=1
a=14, b=6
a=84, b=35
a=492, b=204
a=2870, b=1189
a=16730, b=6930
a=97512, b=40391
a=568344, b=235416
a=3312554, b=1372105
a=19306982, b=7997214

42:デフォルトの名無しさん
18/10/05 14:58:28.47 mgzjyvv8.net
>>35
koltin全く知らないけど、あとで読んでみます!

43:デフォルトの名無しさん
18/10/05 20:22:47.58 3qR/q5rp.net
>>39
C++
URLリンク(ideone.com)
Wolfram先生によると一般項があるらしい
URLリンク(www.wolframalpha.com)(a%2B1)%3D(a%2Bb)(a%2Bb%2B1)+and+a%3E%3D0+and+b%3E%3D0

44:デフォルトの名無しさん
18/10/06 10:59:33.32 MgCaJaM3.net
半角スペース区切りで数字が入力されるのでソートして出力しなさい
いろんなアルゴリズムでやってみよう
-*- input -*-
3 1 4 1 5 9 2 6 53 58 97 93 2 38 46 26
-*- output -*-
1 1 2 2 3 4 5 6 9 26 38 46 53 58 93 97
例) Ruby
ボゴソート
ary = gets.split.map(&:to_i)
nil while ary.shuffle!.each_cons(2).any?{|a, b| a > b}
puts ary * ' '
バブルソート
ary = gets.split.map(&:to_i)
(ary.size - 1).times do
  ary.each_cons(2).with_index{|(a, b), i| ary[i, 2] = b, a if a > b}
end
puts ary * ' '

45:デフォルトの名無しさん
18/10/06 13:39:49.65 J8Y2BFN6.net
perl -ne '@d=split;print join(" ",sort {$a <=> $b} @d)."\n"'
無念無想のままたった今打った。1回も試していない。

46:デフォルトの名無しさん
18/10/06 21:20:29.96 evMRo/Iv.net
何かと思えば円周率か
要約気付いた

47:デフォルトの名無しさん
18/10/06 22:11:52.69 xFDNl+om.net
>>43 GNU Smalltalk スリープソート
URLリンク(ideone.com)

48:デフォルトの名無しさん
18/10/06 22:49:39.54 MgCaJaM3.net
>>46
なんだこれw 4ch発祥かぁ。面白いね

49:デフォルトの名無しさん
18/10/07 00:58:45.52 KvcjzmFM.net
>>24
A君は平日以外学校に行かんのだろ?
なら曜日なんぞ気にせず入力された登下校時刻を単に変換するだけになるような

50:デフォルトの名無しさん
18/10/07 07:50:57.08 VJ+UDRYt.net
アスペか?アスペにはこのスレはたぶん無理
↑これの読解もままならないだろうが(苦笑

51:デフォルトの名無しさん
18/10/07 13:41:58.37 9vVPTzNb.net
>>48
そうだ


52:ね さらに 10/01だけの入力から 10/02が出力されるところも謎だ



53:デフォルトの名無しさん
18/10/07 18:04:09.18 t8TfnMHv.net
お題
現在の時刻をスウォッチ・インターネットタイムで表示する

@042

54:デフォルトの名無しさん
18/10/07 19:17:11.77 MD9q6Ezo.net
>>51 Ruby UTC基準で
d=24*60*60;$><<'@%f'%((Time.now.to_f%d)*1e3/d)
#=> @426.818338

55:デフォルトの名無しさん
18/10/07 21:21:58.39 T4GR84FI.net
ビール標準時が基準点でないものはスウォッチ・インターネットタイムではない

56:デフォルトの名無しさん
18/10/07 21:30:25.37 MD9q6Ezo.net
>>53
d=24*60*60;$><<'@%f'%(((Time.now.to_f-60*60)%d)*1e3/d)

57:デフォルトの名無しさん
18/10/08 02:11:26.03 tKqgyITq.net
perl -e '$s=86400;$n=1000*((time()+3600)%$s)/$s;printf "@%d\n",$n'
今実行するとこう出る。
@757

58:デフォルトの名無しさん
18/10/08 16:16:40.26 SHTmPUE+.net
URLリンク(exoplanetarchive.ipac.caltech.edu)
まずこのサイトを読んで日時(UTC基準)からJDを求めるプログラムを作りなさい
逆に日時(UTC基準)から時刻を求めるプログラムを作りなさい
このサイトに書いてあるとおりに作るとプログラムの結果は正しくならない
プログラムの結果が正しくなるように修正し、
このサイトのどこに誤記があるかその箇所を指摘しなさい

59:デフォルトの名無しさん
18/10/08 16:19:35.99 SHTmPUE+.net
>>56訂正
(正)逆にJDから日時(UTC基準)を求めるプログラムも作りなさい
(誤)逆に日時(UTC基準)から時刻を求めるプログラムを作りなさい

60:デフォルトの名無しさん
18/10/08 20:56:19.15 P7JfEPgv.net
>>56 Ruby
URLリンク(ideone.com)

61:デフォルトの名無しさん
18/10/08 22:00:20.72 c9HgNpeF.net
>>58
(365.25*dy).to_i とかは 1461*dy/4 にしないとまずい

62:デフォルトの名無しさん
18/10/08 22:51:07.00 P7JfEPgv.net
>>59
365.25 は 101101101.01(2) だから誤差の心配は無いよね?
(1..3000).each{|n| p n if (365.25*n).to_i != 1461*n/4 }
とかやってみて

63:デフォルトの名無しさん
18/10/08 23:14:43.42 c9HgNpeF.net
>>60
それは良いとしても ( (c-122.1)/365.25 ).to_i の類の表現が他の個所にも複数あり
この内のどれかが
p (5.151/1.717).to_i #=> 2
のようにならないとはコードをみただけでは明確ではなく
剰えrubyのFloat classの精度は実装依存であるためこの様な処理はすべきではない

64:デフォルトの名無しさん
18/10/08 23:58:05.73 5rk01rQ6.net

ruby って IEEE 754 に準拠してないの?
信じ難いなそれ
使い物にならないじゃん

65:デフォルトの名無しさん
18/10/09 00:09:36.06 lL60bjnv.net
IEEE754関係ないやろ
Cのdoubleも環境依存やで

66:デフォルトの名無しさん
18/10/09 02:53:53.02 z616RbAo.net
いや関係なかったら困るだろ
バグってんだか仕様だかわからなくなるぞ

67:デフォルトの名無しさん
18/10/09 07:49:23.39 G0ViTg21.net
関係ないってそういう意味ではないのでは?
>>62の指摘することとIEEE 754は関係ないってだけで。
例えば32bitか64bitでdouble型の精度が違うなんて別に珍しいことではないと思うんですけど。

68:デフォルトの名無しさん
18/10/09 19:02:39.94 jSAcVkU7.net
> 32bitか64bitでdouble型の
ん? 32bitのdoubleなんてありえるの?
IEEE 754以外で倍制度を決めてる何かがあるの?

69:デフォルトの名無しさん
18/10/09 21:21:14.72 7Krlta4j.net
>>61
たかだか30行程度のループも再帰もない一本道なので具体的に示してもらえるとありがたいです。
この種のプログラムは地デジの日付情報が MJDで ARIBの規格書にも載っていて、
ごく一般的に使われているので、もし問題があるようならばなんとかしたいですよね。
>( (c-122.1)/365.25 ).to_i
浮動小数点で JD が扱える精度+αくらいならこれは問題ないと思いますが。
c は整数ですし、分母の 365.25もすでに説明しましたね。
グレゴリオ暦6239年で JD が 4000000辺りで分子が 365.25の倍数前後は
4000217.1/365.25 と 4000218.1/365.25 だから仮数部が 19bitほどあればいいわけですね。
# こんな定数のままだとコンパイラが最適化してしまいますけどね
組み込み用途などによっては考慮すべきかもしれないけれど、
最初のお題(>>56 )ってそういう意図があったのでしょうか?
>このサイトに書いてあるとおりに作るとプログラムの結果は正しくならない
これは特定の環境に限られたものを指していたのかな?

70:デフォルトの名無しさん
18/10/09 21:40:48.90 BHyo+myF.net
精度的に問題ないって理解してれば良いのでは
よく理解してない人が小数点使う必要ない場面で使って事故って何も分かりませんみたいな事あるし
コンシューマゲームなんかだとシビアなんで、癖みたいにしておかないとハマってしまうけど

71:デフォルトの名無しさん
18/10/09 22:33:03.53 uKgwXIAC.net
>>56はココからが本当の本題
@ >>59のコードでの誤記の指摘は概ね正解 ただ>>59のコードの修正だけでは紀元前に対応していない 紀元前が対応するように修正しなさい
A @のプログラムの通日を整数の通ナノ秒にして、ナノ秒までの時刻を正確に相互変換できるようにしなさい
B Aにうるう秒をいれて正確に相互変換できるようにしなさい(制約で問題が発生する場合、問題が発生する時刻を書きなさい)
  参考URL:URLリンク(maia.usno.navy.mil)
Bは普通にやったら結構めんどい課題と考えられる
力技でやるなら暇人以外にはオススメしない(力技でやらないほうがいいと一応警告しておいたからな)
コードの一部を出力するコードをサクッと作るぐらいの力量がなければ
きっとサクッとはできないしサクッと結果の評価もできないと考えられる

72:デフォルトの名無しさん
18/10/09 22:35:06.29 uKgwXIAC.net
訂正
(正)>>58
(誤)>>59

73:デフォルトの名無しさん
18/10/09 22:56:04.77 uKgwXIAC.net
URLリンク(ideone.com)
Bで使えるデータは用意しておいた
気が向いたヤツはチャレンジしなさい

74:デフォルトの名無しさん
18/10/09 23:20:13.38 UrO6v+ga.net
>>69-71 はサマータイムスレで暴論吐いてた奴じゃない?

75:デフォルトの名無しさん
18/10/10 00:03:10.45 uHP11E7s.net
C言語スレとかのいろいろな所に出没してる半角先生だ
どこでも相手にされなくなったから出題しに来た

76:デフォルトの名無しさん
18/10/10 09:42:44.92 hOT3iUsl.net
サマータイムスレでの暴論って何なんだろう?
まさかのサマータイム賛成なんて奴だったら許せんな。

77:デフォルトの名無しさん
18/10/10 16:39:18.23 slDdF7J+.net
お題
倍精度実数で整数部分が正確に表現できる最大値を求める

78:デフォルトの名無しさん
18/10/10 17:03:11.31 8BTNYbZT.net
浮動小数点実数型と言えど最大要素に近い
部分は、整数×2^整数という形の整数也

79:デフォルトの名無しさん
18/10/10 17:03:47.89 8BTNYbZT.net
整数×2^自然数
だた

80:デフォルトの名無しさん
18/10/10 17:4


81:1:41.04 ID:8BTNYbZT.net



82:デフォルトの名無しさん
18/10/10 18:05:44.00 TfVezTBt.net
区間を求めるなら仮数部だけで収まる最大値だけど、
とある数の整数部が正しく表現されているだけなら仮数部も込みで double の最大値が答え
それを std::numeric_limits<double>max() や DBL_MAX を使わずに計算せよ、ということか

83:デフォルトの名無しさん
18/10/10 19:38:40.27 TfVezTBt.net
>>75を2分探索で計算で出すコード書いてて ideone のコンパイラのバグ見つけた気がする
URLリンク(ideone.com)
if 文の条件式の値が1なのに実行されない
find_max<char> とか int32_t で起きる
何か間違ってるかな

84:デフォルトの名無しさん
18/10/10 20:37:17.47 GOApHyvI.net
符号付き整数オーバーフロー(未定義動作)のせいで
変な最適化でもかかってるんじゃね?

85:デフォルトの名無しさん
18/10/10 21:07:51.69 3iBo9D9z.net
>>69
通常 JDは UTCを元にするので閏秒は考慮しないと思いますよ、
天文計算などする場合は必要に応じて UT1とかに変換しているのじゃないかと?

86:デフォルトの名無しさん
18/10/10 22:22:14.63 TfVezTBt.net
>>81
なるほど。
オーバフローが未定義動作だとすると符号付整数の最大値を求めるのは難しそうだな。

87:デフォルトの名無しさん
18/10/11 00:30:47.35 p15CvoFg.net
ものすごい頭悪いこといってるわ。。。
  UTCは う る う 秒 入 れ た 時 刻 のことだぞ
マジでなんでこんな頭悪いの
天文でつかわれるユリウス日なんかはアホがいうとおり固定
1光年も固定でもないとヤバイからな
1光年は光が1ユリウス年(365.25日)進む距離になる
そもそもオレの課題ではそんなことを問題になんかしてないからな
課題どおりにやればいい

88:デフォルトの名無しさん
18/10/11 00:34:27.93 p15CvoFg.net
低学歴知恵遅れが知ったぶりしてハジかく典型的な例といっていい
低学歴知恵遅れはいちいち自分が低学歴知恵遅れですと自白するからな

89:デフォルトの名無しさん
18/10/11 01:18:58.62 ZbBeURnP.net
おまえまたくっさいくっさい自演しとんのか

90:デフォルトの名無しさん
18/10/11 12:46:49.51 ZOnVTpMr.net
誰からも相手にされなくなったか

91:デフォルトの名無しさん
18/10/11 13:22:48.89 yY2EC70D.net
相手にされなくなったんで問題だせば自動的に相手にされると思い込んでいる
その辺りが半角先生の思考の限界

92:デフォルトの名無しさん
18/10/11 14:46:25.14 MYvNBgY5.net
ここが適切なのかわかりませんが、知恵を頂けたら幸いです。
当方CGクリエーターで、プログラミングの知識は殆どありません。
そこで質問なのですが、
Aのオブジェクトの座標値が(-1,-2,-3)として、Bのオブジェクトの座標値が(1,2,3)の場合、
Bのワールド位置を維持して、BをAのローカル座標位置へ移動させるには
どのような行列式になるでしょうか?
ネットで座標変換とか色々調べてみましたが、子のワールド位置を維持した状態で
親に該当するローカル座標へ移動させる方法がわかりませんでした。
本来の目的としては、
CGアニメーションソフトのコンストレイント機能にペアレントがありますが、
それを行列式(ノード)で行いたいのです。
(コンストレインのペアレントとは、
時間軸上の任意の位置で親子関係の接続や解除を行うことが出来る機能です。
その接続/解除時には、子は現在のワールド位置を維持します。

93:デフォルトの名無しさん
18/10/11 15:04:14.07 3Bdkvxy9.net
スレ違い
「3d 行列」で検索!

94:デフォルトの名無しさん
18/10/11 15:26:21.10 ZOnVTpMr.net
>>89
スレのルールに則れば誰か答えてくれるかもね

95:デフォルトの名無しさん
18/10/11 16:45:05.30 NcfxmDj4.net
>>89
>Aのオブジェクトの座標値が(-1,-2,-3)として、Bのオブジェクトの座標値が(1,2,3)の場合、
(1,2,3) を (-1,-2,-3) からの相対値で表すということなら
(1,2,3) 引くことの (-1,-2,-3) イコール (2,4,6)

96:デフォルトの名無しさん
18/10/11 21:49:13.39 anEb94RG.net
>>69 >B Aにうるう秒をいれて正確に相互変換できるようにしなさい
>>84 >UTCは う る う 秒 入 れ た 時 刻 のことだぞ
うるう秒を入れるでなく、外すが正解ですね。すでに UTCには閏秒が入っていますから。
UTC(協定世界時)は TAI(国際原子時)を元に閏秒で補正して UT1(世界時)に合わせています。
7:00:00(UTC)の一日先の時間が24h+-1sec(閏秒)でも時刻は7:00:00(UTC)となるわけです。
よって JDに24hを足すと翌日になり JD/24h%7で曜日が分かります。
未来の日付も計算可能ですが、閏秒を入れないTAI(国際原子時)では地球の自転次第で変化します。
>天文でつかわれるユリウス日なんかはアホがいうとおり固定
逆です、天文計算で使うような時間は UT(世界時)を基準にしています。
それは天体の運動方程式を解くために基準の時刻からの正確な時間が必要だからです。

97:デフォルトの名無しさん
18/10/11 23:02:27.87 p15CvoFg.net
URLリンク(warwick.ac.uk)
・International Atomic Time (TAI)
 - SI second defined by frequency of hyperfine transition of cesium133
 - Measured and counted with international network of atomic clocks
・Co-ordinated Universal Time (UTC)
 - Our civil time (in winter)
 - Based on SI second, with 86400s/day
 - Kept synchronised with UT1 since 1972 by addition of leap seconds
 - Leap seconds not added to TAI, so TAI-UTC is not constant
 - Currently (Nov 2012) TAI - UTC = 35s
 - Use of leap secs currently under discussion (inconvenient for astro)
・Co-ordinated Universal Time (UTC)
 - Currently (Nov 2012) TAI - UTC = 35s
・Calendar is independent of time system, so state both, e.g.
 - 2011 November 11 11:00:00.0 UTC
 - 2011 November 11 11:00:34.0 TAI
 - JD 2455876.958333 UTC
 - JD 2455876.958727 TAI
コレでオレの課題ができないなら
人間やめたほうがいい

98:デフォルトの名無しさん
18/10/12 01:38:38.44 xbwLlD7o.net
>>75
倍精度って、これでいいの?
URLリンク(ja.wikipedia.org)
とすると -2^53 〜 2^53 になるわけでプログラムを作る必要性がないわけだが。
それとも仮数部が何ビットか分からない倍精度実数のビット数を求めるプログラムを作れってこと?

99:デフォルトの名無しさん
18/10/12 02:02:42.62 ZYTXH3K/.net
プログラミングのお題
「10以下の素数の和を求めよ」
答え
「17。コード書くまでもないんだがこれでいいのか?」
これはおかしいだろう

100:デフォルトの名無しさん
18/10/12 02:23:49.18 I/tzu8NI.net
>>96 ruby
n = 10
Prime.reduce(0){|s, i|break(s) if i > n; s + i}

101:デフォルトの名無しさん
18/10/12 02:35:54.36 xbwLlD7o.net
え?じゃ、こんな感じ?
perl -e 'for($n=1;(2**$n)!=(2**$n+1);$n++){} printf "%d, %.0f\n", $n, 2 ** $n;'
動かすとこう出るが。
53, 9007199254740992

102:デフォルトの名無しさん
18/10/12 06:06:04.48 j3qUjmca.net
>>96 Pharo/Squeak Smalltalk
(Integer primesUpTo: 10) sum

103:デフォルトの名無しさん
18/10/12 07:40:50.69 GdhRssFx.net
>>96
ruby -rPrime 'p Prime.first(10).sum'
#=> 17

104:デフォルトの名無しさん
18/10/12 09:39:43.72 1UpgDbu2.net
first(10)って普通は最初の10個を列挙するもんだがrubyは違うのか…
名前重要ってわりにセンスないな

105:デフォルトの名無しさん
18/10/12 10:33:46.63 oIm8hJ6E.net
じゃあちなみにこの関数名は何ならいいんだ?
お前の考えを言ってみろよ
センスを判定してやるよ

106:デフォルトの名無しさん
18/10/12 10:49:03.90 6UbBSJp3.net
first(10)が10までってセンスは普通におかしいだろ
つーかrubyも最初の10個返すんだが…?

107:デフォルトの名無しさん
18/10/12 13:22:40.26 +EEi3z6C.net
誰も動作を疑わずに書かれたものを脳死で信じるいい例だな、 >>100 のは17にはならん

108:デフォルトの名無しさん
18/10/12 13:50:43.62 oIm8hJ6E.net
ruby/ruby: The Ruby Programming Language
URLリンク(github.com)
そりゃそうだろ
スクリプト言語のソースコードは公開されてて誰でも読めるが
大抵のユーザーは書かれたものを脳死で信じるしかないだろ
それともお前は使うスクリプト言語のソースコードは全部精査してるのか?
コンパイラのソースコードまで熟読してるのか?
ンなモン、脳死で信じるしかねーだろ

109:デフォルトの名無しさん
18/10/12 13:54:46.58 VST6PShP.net
最近JavaとかC++とか少ないな
Javaは例の騒動があるから仕方ないとしてCとかC++はないんか

110:デフォルトの名無しさん
18/10/12 16:36:53.91 OhxorjMK.net
>>106
>>80はC++だね。

111:デフォルトの名無しさん
18/10/12 18:59:19.35 eR+rcBR9.net
>>96 ruby
require 'prime'
p Prime.take_while {|i| i < 10}.inject(:+)

112:デフォルトの名無しさん
18/10/12 20:05:50.75 oyAlSwuR.net
>>106
例の騒動って何

113:デフォルトの名無しさん
18/10/12 20:13:31.37 jorGy8Se.net
>>80
gcc8.1だと
char
(!(n > d && is_usual_num(n))) 0
(!(n > d && is_usual_num(n))) 0
(!(n > d && is_usual_num(n))) 0
(!(n > d && is_usual_num(n))) 0
(!(n > d && is_usual_num(n))) 0
(!(n > d && is_usual_num(n))) 0
(!(n > d && is_usual_num(n))) 1
(!(n > d && is_usual_num(n))) 0
break
calculated = -128
numeric_limits = 127
128
127
となるね

114:デフォルトの名無しさん
18/10/12 21:22:44.25 +EEi3z6C.net
ORACLEがお金取りますよってやつじゃない?

115:デフォルトの名無しさん
18/10/12 21:27:58.87 +EEi3z6C.net
なぜか言語自体のコード読む読まないの話になってるけど、これくらいのコードなら動かせばすぐにfirstが何してるか分かるじゃん、って思っただけだわ

116:デフォルトの名無しさん
18/10/13 10:05:11.14 m4emGyLz.net
お題
方程式 1/n = 1/x + 1/y (ただし、n,x,yは正整数でx≦y)について考える
例えばn=4のとき、1/4 = 1/5 + 1/20 = 1/6 + 1/12 = 1/8 + 1/8 より解の個数は3である
上限Mが与えられたとき、上の方程式の解の個数がMを超える最小のnの値を求めよ
2 -> 4
5 -> 12
10 -> 24
100 -> 1260
1000 -> 180180
10000 -> 116396280
250000000000 -> ?

117:デフォルトの名無しさん
18/10/13 11:29:08.44 4qDoRB+X.net
つまんない

118:デフォルトの名無しさん
18/10/13 11:32:11.63 QkDteBzw.net
>>113
n = 2の時
1/4 + 1/4 = 1/2
1/3 + 1/6 = 1/2
だけだから結果は2だよ
n=4の時より大きくなることはあり得ないし

119:デフォルトの名無しさん
18/10/13 11:52:27.26 QkDteBzw.net
ごめん。>>115は勘違い無視して

120:デフォルトの名無しさん
18/10/13 17:46:23.51 QtssFn


121:Iu.net



122:デフォルトの名無しさん
18/10/15 17:32:39.82 lmCCx0VP.net
回答一人で出題者からの返事がないとあってるかどうかわからないから困る

123:デフォルトの名無しさん
18/10/17 11:31:35.00 UkGf74ne.net
お題
[0,1]の一様乱数をN個発生させ、小さい順に並べてa(1), ..., a(N)とする
同様にもうN個作って小さい順にb(1), ..., b(N)とする
同じ順位同士で(a(1), b(1)), ..., (a(N), b(N)) とペアを作った時、a>bとなるペアの個数は0〜N個になるが、その分布は?
またa, bを一様分布以外の分布から取ってくるとどうなる?

124:デフォルトの名無しさん
18/10/17 12:32:44.20 DKH+Jm9W.net
>>119
それはプログラミングで解くお題なのか?

125:デフォルトの名無しさん
18/10/17 13:07:54.93 OYXuI76a.net
>>120
シミュレーションしてみるのも面白いかなと

126:デフォルトの名無しさん
18/10/17 13:50:50.88 8efdFbKL.net
趣味で

127:デフォルトの名無しさん
18/10/17 14:07:56.22 4awkQadJ.net
これはひどい

128:デフォルトの名無しさん
18/10/17 15:35:45.15 5mPHIqhK.net
プログラミングで解くということに挑戦することから逃げるプログラマー

129:デフォルトの名無しさん
18/10/17 15:55:41.32 mC+TJhph.net
数学に逃げちゃ駄目だ。

130:デフォルトの名無しさん
18/10/17 17:12:22.62 DXXGfTNm.net
乱数全部同じパターンを引いてもその結果のみから分布を論じてかまわないというならそれでもいいがな

131:デフォルトの名無しさん
18/10/17 17:34:51.31 slnS35LM.net
ちょっとやってみた
J で
NB. monadic sort operator
sort=: /:~
NB. monadic operator returns count of a_n > b_n
NB. where a and b is sorted y-length array of rand(1000)
do1=: verb define
a =. sort ?y$1000
b =. sort ?y$1000
+/ (a>b)
)
NB. dyad operator returns count of number x in array y
count=: dyad define
+/ (x = y)
)
続く

132:デフォルトの名無しさん
18/10/17 17:35:05.08 IG2KKzqQ.net
>>119 Squeak/Pharo Smalltalkでシミュレーションのみ
擬似乱数発生器は Squeak の場合 Mersenne Twister(Pharo なら Park-Miller)
| N M random bag |
N := 10.
M := 1e6.
random := Random new.
bag := Bag new.
M timesRepeat: [
| pairs count |
pairs := (random next: N) with: (random next: N) collect: [:a :b | {a. b}].
count := pairs count: [:pair | [:a :b | a > b] valueWithArguments: pair].
bag add: count
].
bag sortedElements
"Squeak =>{
0->981.
1->9873.
2->44008.
3->117136.
4->205258.
5->246203.
6->204286.
7->117345.
8->44247.
9->9702.
10->961} "

133:デフォルトの名無しさん
18/10/17 17:38:20.84 cKcilnbV.net
>>119 Squeak/Pharo Smalltalkでシミュレーションのみ
擬似乱数発生器は Squeak の場合 Mersenne Twister(Pharo なら Park-Miller)
| N M random bag |
N := 10.
M := 1e6.
random := Random new.
bag := Bag new.
M timesRepeat: [
| pairs count |
pairs := (random next: N) with: (random next: N) collect: [:a :b | {a. b}].
count := pairs count: [:pair | [:a :b | a > b] valueWithArguments: pair].
bag add: count
].
bag sortedElements
"Squeak =>{
0->981.
1->9873.
2->44008.
3->117136.
4->205258.
5->246203.
6->204286.
7->117345.
8->44247.
9->9702.
10->961} "

134:デフォルトの名無しさん
18/10/17 17:40:58.97 wdgUzBYj.net
あ、誤連投&Jのにきスマン

135:デフォルトの名無しさん
18/10/17 17:41:12.83 slnS35LM.net
続き
NB. 長さ100の配列で100000回試行
r =: (do1 "0) 100000$100
NB. r を表示
r
=> 43 77 58 31 23 36 59 26 85 15 73 72 4 34 0 26 22 26 85 70 95 2 64 46 22 84 22 86 78 39 51 34 92 94 68 98 47 38 68 92 48 43 19 97 80 18 13 65 76 79 17 88 19 39 72 74 16 54 32 11 99 3 80 32 94 25 87 91 ...
NB. 0...100 の各数値の出現数
(i. 101) (count "0 1) r
=> 109 107 118 94 104 93 98 100 76 87 97 102 93 98 101 94 94 90 112 107 92 103 109 97 112 89 113 118 97 108 96 81 86 103 87 102 107 101 95 90 96 102 96 87 100 88 108 115 97 119 129 104 94 100 104 101 114...
NB. グラフ化
plot (i. 101) (count "0 1) r
URLリンク(i.imgur.com)
一様分布っぽい

136:デフォルトの名無しさん
18/10/17 17:43:54.06 slnS35LM.net
だいぶ結果が違っててわろすw
>>128ソート忘れてないか?

137:デフォルトの名無しさん
18/10/17 17:47:40.41 slnS35LM.net
理屈で考えると乱数がどんな分布でも a、b の分布が同じならコレの結果は常に同じ分布か

138:デフォルトの名無しさん
18/10/17 19:01:16.05 wdgUzBYj.net
なんか書き込めん…
>>132
たしかに^^;
pairs := (random next: N) sort with: (random next: N) sort collect: [:a :b | {a. b}].
で同じ分布になった

139:デフォルトの名無しさん
18/10/17 22:28:10.42 9jVKFKz5.net
ハローワールドの次にやる問題ってなんだろう

140:デフォルトの名無しさん
18/10/17 22:28:34.01 Ny9Q/0jK.net
ハローワークへ行きなさい

141:デフォルトの名無しさん
18/10/17 22:47:23.45 ysrRFDeq.net
>>135
echoかfizz buzzでもやれば

142:
18/10/17 23:45:01.56 DyWl92+N.net
>>137
>echo


143:デフォルトの名無しさん
18/10/18 09:27:49.01 xtVP5nmJ.net
>>138
echoコマンドの実装ってことじゃない?
\0xxx や \n も解釈するようなの作ると初心者には結構勉強になるかも。

144:デフォルトの名無しさん
18/10/18 19:47:17.70 3zhbamE0.net
136本人が出てきて答えなさい

145:デフォルトの名無しさん
18/10/18 22:31:25.80 qi6SRLg2.net
ハローワールドの次ぐらいだとすごろくとかじゃない

146:デフォルトの名無しさん
18/10/19 16:49:17.22 F1UCQFsO.net
お題
標準入力から入力したデータをそのまま標準出力人出力する

147:デフォルトの名無しさん
18/10/19 17:05:33.84 veK9KPY5.net
URLリンク(3dnchu.com)
このようなソフトはvisual studioで作るんですか?
なんの言語がいいか教えてください

148:デフォルトの名無しさん
18/10/19 17:15:05.14 gPrGaWTX.net
>>142
cat

149:デフォルトの名無しさん
18/10/19 18:18:43.95 rCjk/mnI.net
>>144 Brainfuck
,[.,]

150:デフォルトの名無しさん
18/10/19 18:19:25.68 rCjk/mnI.net
安価ミス >>144 -> >>142

151:デフォルトの名無しさん
18/10/19 20:16:34.44 qai0UNii.net
お題
マルチバイト文字だけ文字化けさせて出力

152:デフォルトの名無しさん
18/10/19 20:39:51.48 5dseSh/K.net
>>147 Python
URLリンク(ideone.com)

153:デフォルトの名無しさん
18/10/20 03:08:59.15 gD7ZVb6v.net
iso-8859-2を入力したら文字化けしたりUTF-7を入力したら文字化けしなかったりするのは美しくないから文字コードを指定させないといかん

154:デフォルトの名無しさん
18/10/20 05:27:36.15 qwv4GmvH.net
>>147
Kotlin
URLリンク(paiza.io)
入力はデフォルトのエンコーディングで Java のライブラリ内部で Unicode に自動変換させ、出力は UTF-8 になると想定して作られている。
つまり元の Unicode で \x0080 以上は UTF-8 だと全てマルチバイトになるので化けるようにしてある。
化け方は2通りでサロゲートペアの文字は % になりその他は * になる。

155:デフォルトの名無しさん
18/10/20 17:10:58.56 hxCjYBWY.net
>>142 Io
File standardInput contents print

156:デフォルトの名無しさん
18/10/20 17:46:57.83 cv2X893a.net
お題: 超簡単なステートマシン
以下の3つのデータがランダムに入力される。
1: hi
2: wake up
3: sleep
1が入力された場合、状態がwake up


157:であれば「hello」、状態がsleepであれば「zzz...」と出力せよ。 2が入力されたら状態をwake upに、3が入力されたら状態をsleepに移行せよ。



158:デフォルトの名無しさん
18/10/20 18:05:02.67 Nttc2RvP.net
>>152
つまり、hi以外で2、3に該当しない奴も無視で良いの?(hiは無視で良いんだよね)
データは勝手に標準入力にするけど。
(リダイレクトでファイルからに出来るし)

159:デフォルトの名無しさん
18/10/20 18:08:05.20 Nttc2RvP.net
あれ、違うぞ?
hiが入力された時、「かつ」wake upだったら”hello”出力か。
んでsleepなら”zzz...”ね。
それ以外無視と。
了解。


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

1874日前に更新/360 KB
担当:undef