プログラミングのお題スレ Part12at TECH
プログラミングのお題スレ Part12 - 暇つぶし2ch2:デフォルトの名無しさん
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のコードの修正だけでは紀元前に対応していない 紀元前が対応するように修正しなさい
② ①のプログラムの通日を整数の通ナノ秒にして、ナノ秒までの時刻を正確に相互変換できるようにしなさい
③ ②にうるう秒をいれて正確に相互変換できるようにしなさい(制約で問題が発生する場合、問題が発生する時刻を書きなさい)
  参考URL:URLリンク(maia.usno.navy.mil)
③は普通にやったら結構めんどい課題と考えられる
力技でやるなら暇人以外にはオススメしない(力技でやらないほうがいいと一応警告しておいたからな)
コードの一部を出力するコードをサクッと作るぐらいの力量がなければ
きっとサクッとはできないしサクッと結果の評価もできないと考えられる

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)
③で使えるデータは用意しておいた
気が向いたヤツはチャレンジしなさい

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 >③ ②にうるう秒をいれて正確に相互変換できるようにしなさい
>>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...”ね。
それ以外無視と。
了解。

160:デフォルトの名無しさん
18/10/20 18:12:34.08 Nttc2RvP.net
てか、1ー3の数字だけで良いわ。
状態の意味はわかったけど、状態の文字は要らんね。

161:デフォルトの名無しさん
18/10/20 18:16:14.29 xvv7H8Vz.net
それ以外をどう考慮すべきかは書かれてないから、
ここは「3つのデータがランダムに入力される」を信じたフリをして手抜きをするのが吉
そんなことよりステートマシンなら初期状態は与えろよw

162:デフォルトの名無しさん
18/10/20 18:28:45.80 AUqXYm6F.net
>>152
python3

state = "sleep"

while True:
x = input("> ")
if x == "hi":
print("zzz..." if state == "sleep" else "hello")
elif x == "wake up":
state = "wake up"
elif x == "sleep":
state = "sleep"
else:
print("invalid input.")

163:デフォルトの名無しさん
18/10/20 18:42:18.95 Nttc2RvP.net
#include <stdio.h>
#include <conio.h>
int main(void)
{
char c,state = 0;
while(1)
{
c = getchar();
switch(c)
{
case '1':
if(state == '2')
{
printf("hello");
}
else if(state == '3')
{
printf("zzz...");
}
break;

164:デフォルトの名無しさん
18/10/20 18:43:23.41 Nttc2RvP.net
case '2':
state = '2';
break;
case '3':
state = '3';
break;
default:
break;

165:デフォルトの名無しさん
18/10/20 18:43:31.11 Nttc2RvP.net
}
}
return 0;
}
バッファ 無い方がいいのかと思ってバッファ無し版。(押したら即時入力)
conio.hは環境依存だけど、どうせWinだろ。
stdio.hのgetcだったら、バッファがあるからEnter押さないとだけど最初の1文字が入る。
面倒臭かったからステータスは数字に直さず文字そのまま使った。

166:デフォルトの名無しさん
18/10/20 20:20:44.01 WvTfEY4N.net
お題
2つの区間の共通部分を出力せよ
[1,3] [2,4] => [2,3]
(1,2) [1,2] => (1,2)
[0,100) (5,+inf) => (5,100)
(-inf,2] [1,+inf) => [1,2]
[1,2) [2,3) => {}

167:デフォルトの名無しさん
18/10/20 21:46:37.40 O4sbTglp.net
>>152
ruby -nle"$_!=?1?($t=-$_.to_i):(puts %w[zzz... hello _][$t])"

168:デフォルトの名無しさん
18/10/21 04:42:48.87 sz/a4USN.net
>>152
Kotlin
URLリンク(paiza.io)
初期状態は sleep にした。
wake up と sleep 以外の入力に対しては ERROR を出力して状態は変化させないようにした。
入力が何だったか分かるようにするために行頭に >> を付けて入力文字列を出すようにした。

169:デフォルトの名無しさん
18/10/21 04:53:27.38 sz/a4USN.net
>>152
Perl の1行プログラム
perl -ne 'BEGIN{$s=0;%x=("sleep"=>0,"wake up"=>1);%r=(0=>"zzz...",1=>"hello")}print ">> $_";chomp;\
if(defined($x{$_})){$s=$x{$_}}elsif($_ eq "hi"){print"$r{$s}\n"}else{print "ERROR\n"}'
仕様は>>163と同じ。
1行が長くなったので1行目の行末に \ を入れて2行に分けて書いてある。

170:デフォルトの名無しさん
18/10/21 09:26:11.61 3Rh2KUxU.net
>>152 java
URLリンク(ideone.com)


171:KVdM



172:デフォルトの名無しさん
18/10/21 09:40:05.59 UVDgsDD7.net
>>152 GNU Smalltalk
入力は、数値ではなくメッセージで
状態推移は、クラスチェンジで(つまりインスタンス変数なし&条件分岐なし)
…な感じで、他言語では思いつきにくい実装で遊んでみました
Object subclass: Machine [
wakeUp [ ^self ]
sleep [ ^self ]
hi [ self subclassResponsibility ]
state [ ^self class displayNl ]
Other := nil.
]
Machine class extend [ new [ ^WakeUp basicNew ] ]
Machine subclass: WakeUp [ hi [ 'hello' displayNl ] ]
Machine subclass: Sleep [ hi [ 'zzz...' displayNl ] ]
Machine extend [ Other := Sleep basicNew ]
WakeUp extend [ sleep [ ^self become: Other ] ]
Sleep extend [ wakeUp [ ^self become: Other ] ]
| machine |
machine := Machine new.
machine state. "=> WakeUp "
machine hi. "=> hello "
machine sleep; state. "=> Sleep "
machine hi. "=> zzz... "
machine wakeUp; state. "=> WakeUp "
machine wakeUp; state. "=> WakeUp "
machine sleep; state. "=> Sleep "
machine sleep; state. "=> Sleep "
URLリンク(ideone.com)

173:デフォルトの名無しさん
18/10/21 11:09:36.22 S2kctYlU.net
>>152
PowerShell、初期状態は 'Sleep'
function StateMachine {
 param([parameter(ValueFromPipeline=$true)][string]$Event)
 begin { $InSleep = $true }
 process {
  switch($Event){
  'hi'{ Write-Host "$(if($InSleep){'zzz...'}else{'hellow'})"}
  'wake up'{$InSleep=$false}
  'sleep'{$InSleep=$true}
  }
 }
}
'hi','sleep','hi','wake up','hi' | StateMachine

174:デフォルトの名無しさん
18/10/21 18:51:44.61 7SU77e8C.net
>>161
Python3
URLリンク(ideone.com)
infは対応してないので1億とか適当な大きい値で代用

175:デフォルトの名無しさん
18/10/21 22:29:32.21 4ZLg1Jin.net
>>142 Lua
io.write(io.read("*a"))

176:デフォルトの名無しさん
18/10/22 01:45:31.26 mc31Kn/b.net
>>2
これおかしくね?

177:デフォルトの名無しさん
18/10/23 19:00:32.44 eWhef4/P.net
>>117-118
返答遅れてすみません
数値はあってるようです
私の稚拙なコードでよければ参考までに
Haskell
URLリンク(www.ideone.com)

178:デフォルトの名無しさん
18/10/23 21:37:05.53 HCMpmlk6.net
お題
Excel列番号の数字表記とアルファベット表記を相互変換せよ
A => 1
AA => 27
ABC => ?
26 => Z
266379 => ?

179:デフォルトの名無しさん
18/10/23 22:19:55.60 kr01ah20.net
>>172
Part6の754ですでに通った道だった
スレリンク(tech板:754番)
そしてその時の俺の回答はこれだ
URLリンク(ideone.com)

180:デフォルトの名無しさん
18/10/23 22:19:56.82 UJUp/CV/.net
>>172 Ruby
f=->n{n.to_s(26).tr('0-9a-p',r='@-Y').sub(/(.)@/){$1.tr('A-Z',r)+?Z}.delete ?@}
g=->s{s.tr('A-Z','0-9a-p').to_i(26)+(26**s.length-1)/25}
puts '%s => %s'%[$_.chop!,~/\d/?f[$_.to_i]:g[$_]]while gets
# =>
A => 1
AA => 27
ABC => 731
26 => Z
266379 => ODAI

181:デフォルトの名無しさん
18/10/23 22:31:11.04 fVBjYNqz.net
iか何かが無かったような?

182:デフォルトの名無しさん
18/10/23 23:51:06.93 H259Ae8g.net
var trans = alpha => parseInt((parseInt(alpha, 36) - parseInt('9'.repeat(alpha.length), 36)).toString(36), 26)
trans('A')
//=> 1
trans('AA')
//=> 27
trans('ABC')
//=> 731
順変換だけやってみたけどすごい不安…
Aがゼロ的な物なのか1的な物なのかこんがらがる…

183:デフォルトの名無しさん
18/10/24 00:17:51.17 n2SwZ/Io.net
>>176
Aは0扱いでよい。
与えられた文字列を str にとして x = str[A-Zの26進数] に対して
求める数 f(x) f N\{0} -> N\{0} は
f(x) = x + (26**g(x) - 1)/25
(g(x) := x == 0 ? 1 : [log_26(x)] + 1).
f は全単射なので逆写像f^(-1)が存在するので
f と f^(-1) が答え.

184:デフォルトの名無しさん
18/10/24 00:19:21.73 kOQJNkO6.net
マジカルインクリメント!マジカルインクリメントじゃないか!!

185:デフォルトの名無しさん
18/10/25 11:51:35.92 3ObU9lli.net
>>172 Pharo/Squeak Smalltalk
| fromExcelColm toExcelColm |
fromExcelColm := [:str | str asByteArray reversed - 64 polynomialEval: 26].
toExcelColm := [:n |
| nn digits |
nn := n.
digits := OrderedCollection new.
[(nn := nn - 1) >= 0] whileTrue: [digits addFirst: nn \\ 26. nn := nn // 26].
(digits asByteArray + 65) asString
].
fromExcelColm value: 'A'. "=> 1 "
fromExcelColm value: 'AA'. "=> 27 "
fromExcelColm value: 'ABC'. "=> 731 "
toExcelColm value: 26. "=> 'Z' "
toExcelColm value: 266379. "=> 'ODAI' "
fromExcelColm value: 'EXCEL'. "=> 2708874 "
toExcelColm value: 2788185942068. "=> 'MICROSOFT' "

186:デフォルトの名無しさん
18/10/25 12:50:39.12 hw/Q19JU.net
>>176
それ Z の時に失敗しない?
他の言語でやってみて失敗したので足したり引いたりする数を色々ひねったらうまく行ったけどね。

187:デフォルトの名無しさん
18/10/25 16:24:37.58 aKbYC4uC.net
>>172 python3
URLリンク(ideone.com)
ここにソースを書いたらブロックされたからideoneで

188:デフォルトの名無しさん
18/10/25 16:39:59.02 wLNEFoo1.net
>>177
>Aは0扱いでよい。
>与えられた文字列を str にとして x = str[A-Zの26進数] に対して
それだと "A" も "AAAAAA" も x = 0 になるから g がダメだな

189:デフォルトの名無しさん
18/10/25 16:46:00.18 9VVQwm/j.net
やっぱり36進数[0-9a-z]使った横着は出来ないのか…

190:デフォルトの名無しさん
18/10/25 17:18:04.60 BFrEhhQu.net
perlのbasecalcだとマジカルなことができる

191:デフォルトの名無しさん
18/10/25 17:29:09.19 /ssDOiD4.net
>>182
文字列にするときは適当な10*n[26進数]を足してやればよいからやはり基本は26進数でよい

192:デフォルトの名無しさん
18/10/25 17:46:06.11 wLNEFoo1.net
デコードは A-Z を 1 から 26 とする 0 を持たない変則 26 進数として数値化すりゃあいいんだよ
以下J
26 #. _64 + a. i. 'ABC'
==> 731
26 #. _64 + a. i. 'ODAI'
==> 266379
エンコードはちょっと1行では説明しにくい

193:デフォルトの名無しさん
18/10/25 17:52:55.69 Toapoewp.net
27進だろ…

194:デフォルトの名無しさん
18/10/25 17:53:10.85 hw/Q19JU.net
>>183
もう一捻り必要なんだよ。
考えてくと何れわかる。

195:デフォルトの名無しさん
18/10/25 18:17:57.30 wLNEFoo1.net
>>187
下からn桁目の重み付けが 26^n で(1番下を0桁とする)、
各桁の数字が1~26なんだよ
これで0以外の数は表記できる
AAA は 1*26*26 + 1 *26 + 1
ABC は 1*26*26 + 2 *26 + 3
YAZ は 25*26*26 + 1*26 + 26

196:デフォルトの名無しさん
18/10/25 19:37:38.82 gO/HWAcm.net
>>172
この問題を思い出した
URLリンク(riverplus.net)

197:デフォルトの名無しさん
18/10/25 20:05:21.59 na0fZQbz.net
全くの素人質問で申し訳ありませんが、お知恵拝借したくお願いします。
URLリンク(www.cjh.com.cn)
の画面左まんなか辺りの
三峡水? 25日 19?00分 174.64 -(入) 15200(出)
を自動で毎日夜21時に取得して
スレリンク(river板)
に自動で書き込む方法はありますでしょうか?
長年誰かが手写しでしたが、死屍累々でございます、、、、なのです、、

198:デフォルトの名無しさん
18/10/25 20:16:07.42 na0fZQbz.net
>>191
URLリンク(www.cjh.com.cn)

URLリンク(nweb.cjh.com.cn)
からでもOKです。

199:デフォルトの名無しさん
18/10/25 20:33:47.72 TSZxWHJ/.net
sssqold.htmlのソース見たが読むほうは簡単そうだな
書き込む方はしらん

200:デフォルトの名無しさん
18/10/25 20:33:50.34 BSekExc/.net
スレタイ

201:デフォルトの名無しさん
18/10/25 23:54:56.07 Hzy8+5Se.net
あらしのおもちゃになるソースを公開するのはさすがにちょっとなあ

202:デフォルトの名無しさん
18/10/25 23:59:06.56 9OC64j5F.net
>>191
2chのcgiは仕様変更ちょいちょいあって追いかけるの面倒だから書き込みは自動保守ツールとか任せるとして、
powershellのスクリプトをタスクスケジューラで動かして出力をテキストファイルにリダイレクトして自動保守ツールに食わせりゃいいんじゃね
スクリプトはこんな感じかね
$html= Invoke-WebRequest -UseBasicParsing URLリンク(nweb.cjh.com.cn)
$pattern = "`"oq`":`"(\d*)`",`"q`":`"(\d*)`"[^}]+`"三峡水库`",`"tm`":(\d+),[^}]+`"z`":`"([0-9\.]+)`""
if ($html.RawContent -match $pattern) {
$time = (Get-Date "1970/1/1 0:0:0 GMT").AddMilliseconds($Matches[3])
"三峡水库 {2:dd}日 {3}m {1}(入) {0}(出)"-f $Matches[1],$Matches[2],$time,$Matches[4]
}

203:デフォルトの名無しさん
18/10/26 01:56:21.09 zqmCYDLg.net
無駄に一行だな

204:デフォルトの名無しさん
18/10/26 03:39:31.47 c84xrxY5.net
>>172
(fold + 0 (map-with-index (lambda (i c) (* (- (char->integer c) #x40) (expt 26 i))) (reverse (string->list "ABC"))))

205:デフォルトの名無しさん
18/10/26 19:50:36.71 /kG4owY9.net
お題
ぷよぷよの連鎖数を求めよ。0-9がぷよ、.が空きマスを表す。
0013
0123
122.
013.
0123
=> 4
9.9.9.9.9.9
.9.9.9.9.9.
=> 1
0123
3012
2301
1230
=> 0

206:デフォルトの名無しさん
18/10/26 20:45:47.09 yqPKU+uE.net
>>196
おお、素晴らしいアドレスありがとうございます。後は何とか頑張ってみます!!

207:デフォルトの名無しさん
18/10/26 20:51:49.05 8JGFizba.net
>>199
2番目のパターンは実際のゲームではあり得ないものだとは思うが、とにかく何もない所があれば落ちてそれから何連鎖するかを求めればいいのかな?

208:デフォルトの名無しさん
18/10/29 19:22:44.11 PHNS982/.net
>>172
Kotlin
URLリンク(paiza.io)
入力が A-Z なら数値に変換(小文字も可)、数字だけの文字列はいわゆるA1の形式に変換。それ以外は入力異常でエラー。

209:デフォルトの名無しさん
18/10/30 17:20:53.74 xBpFVgTt.net
>>199 python3
URLリンク(ideone.com)
最適もへったくれもないゴリ押しですわ…

210:デフォルトの名無しさん
18/10/30 21:09:38.22 RM3bKAov.net
お題: ページャーを実装してください。標準入力から以下のデータが与えられます。不正な入力にはいい感じに対応してください。
 1行目: 現在のページ番号
 2行目: 総ページ数
 3行目: 表示するリンク数
例1
入力:
1
10
5
出力:
[1] 2 3 4 5
例2
入力:
5
10
5
出力:
3 4 [5] 6 7
例3
入力:
10
10
5
出力:
6 7 8 9 [10]

211:デフォルトの名無しさん
18/10/30 22:21:08.83 Mk80lxDb.net
>>204 perl
$now = shift or die $! ;
$all = shift or die $! ;
$show = shift or die $! ;
$x = 1 + int $show/2;
$y = $all - $x + 1;
if($now <= $x){
$start = 1;
}elsif($y <= $now){
$start = $all - $show + 1;
}else{
$start = $now - int $show/2;
}
$end = $start + $show - 1;
print join " ", map{ $_ == $now ? "[$_]" : "$_" }($start..$end);

212:デフォルトの名無しさん
18/10/30 22:51:09.23 N8SwgYLQ.net
>>204
Python3
current = int(input())
total = int(input())
n_links = int(input())

assert 1 <= current <= total and n_links <= total

if current <= n_links//2:
seq = range(1, n_links+1)
elif current >= total-n_links//2:
seq = range(total-n_links+1, total+1)
else:
left = current - n_links//2
right = current + n_links//2 + (0 if n_links%2 == 0 else 1)
seq = range(left, right)
seq = ["[{}]".format(s) if s == current else str(s) for s in seq]
print(" ".join(seq))

213:デフォルトの名無しさん
18/10/30 22:54:52.47 N8SwgYLQ.net
うまく貼れなかった
URLリンク(ideone.com)

214:デフォルトの名無しさん
18/11/02 11:25:03.96 b7bQuZgR.net
>>204 Squeak Smalltalk
| fn |
fn := [:pg :tot :wd |
| start pages |
start := pg - (wd // 2) min: tot - wd + 1 max: 1.
pages := start to: start + wd - 1.
(pages collect: [:x | (x = pg ifTrue: ['[{1}]'] ifFalse: ['{1}']) format: {x}]) joinSeparatedBy: ' '
].
#((1 10 5) (5 10 5) (10 10 5)) collect: [:tri | fn valueWithArguments: tri]
"=> #('[1] 2 3 4 5' '3 4 [5] 6 7' '6 7 8 9 [10]') "

215:デフォルトの名無しさん
18/11/02 23:41:59.56 8MYT0pgk.net
三峡水? 02日 23?00分 174.53 -(入)14700(出)

216:デフォルトの名無しさん
18/11/03 04:09:45.11 vg8hCxXN.net
>>204
Kotlin
URLリンク(paiza.io)
折角日本語使えるんだからたまには使わないとな。

217:デフォルトの名無しさん
18/11/03 08:08:00.00 BMDI0yEn.net
>>172 rust
URLリンク(ideone.com)
>>204 rust
URLリンク(ideone.com)

218:デフォルトの名無しさん
18/11/03 23:34:36.36 BMDI0yEn.net
>>172 c
URLリンク(ideone.com)
>>204 c
URLリンク(ideone.com)

219:デフォルトの名無しさん
18/11/04 13:46:33.88 pidkuN2F.net
>>204
Haskell
main = mapM_ put [(1,10,5),(5,10,5),(10,10,5)]
put (x,y,z) = return (pager x y z) >>= print
pager a b c | a <= (c `div` 2) = mklist a $ take c [1..b]
pager a b c | a > (b - c `div` 2) = mklist a $ drop (b - c) [1..b]
pager a b c = mklist a $ take c $ drop (a - c `div` 2 -1) [1..b]
mklist a xs = [small a xs , jst a xs , big a xs]
small a = filter (< a)
big a = filter (> a)
jst a = filter (== a)
結果
[[],[1],[2,3,4,5]]
[[3,4],[5],[6,7]]
[[6,7,8,9],[10],[]]
[executed "pager.hs"]

220:デフォルトの名無しさん
18/11/04 13:47:27.44 pidkuN2F.net
結果が切れた。。。
改めて結果。
[[],[1],[2,3,4,5]]
[[3,4],[5],[6,7]]
[[6,7,8,9],[10],[]]
[executed "pager.hs"]

221:デフォルトの名無しさん
18/11/05 17:57:48.99 GRwYYoWB.net
お題
3つの自然数A,B,Cが与えられる。
初項A、第二項Bであるフィボナッチ数列に対してCがその数列に含まれるかを判定せよ。
含まれる場合は第何項


222:であるかを返し、含まれない場合は偽を返すものとする。



223:デフォルトの名無しさん
18/11/05 20:17:41.49 0wNeh4D8.net
>>215 python
def fibo(a, b):
_yield a
_yield b
_while True:
__yield a + b
__a, b = b, a+b
def func(fb, n):
_count = 1;
_while True:
__num = fb.next()
__print "{} th term = {}".format(count, num)
__if num >= n:
___if num == n:
____return count
___else:
____return False
__count = count + 1
_return False

a, b, c = 1, 1, 100
print func(fibo(a, b), c)

224:デフォルトの名無しさん
18/11/05 20:25:58.31 0wNeh4D8.net
同じもの
URLリンク(ideone.com)

225:デフォルトの名無しさん
18/11/05 21:15:45.04 b01o/g5T.net
>>215 rust
URLリンク(ideone.com)

226:デフォルトの名無しさん
18/11/05 23:33:04.48 6d8cBeMO.net
>>215 Ruby
require 'matrix'
def hoge(a, b, c)
rm, fm, im = Matrix[[1, 1], [1, 0]], Matrix[[1, 0], [0, 1]], Matrix[[b], [a]]
(0..Float::INFINITY).each do |n|
m = fm * im
return m[1, 0] > c ? false : n if m[1, 0] >= c
fm *= rm
end
end
p hoge(0,1,88) #=> false
p hoge(0,1,89) #=> 11
p hoge(0,1,90) #=> false

227:デフォルトの名無しさん
18/11/06 03:12:12.75 BD76rR44.net
>>215
Kotlin
URLリンク(paiza.io)

228:デフォルトの名無しさん
18/11/06 07:54:03.24 GFB90oOd.net
C
初項の次第二項って書いてるのに、みんな何故0始まりなの。。。
#include <stdio.h>
int fibin(int,int,int);
int main(void)
{
for(int i = 0;i < 6;i++) printf("%d:%d\n",i,fibin(1,1,i));
return 0;
}
int fibin(int fst,int snd,int num)
{
int i = 2,fib = fst;
if(fst == num) return 1;
if(snd == num) return 2;
while(fib != num)
{
fib = fst;
fib += snd;
if(fib <= num) i++;
else return -1;
fst = snd;
snd = fib;
}
return i;
}

229:デフォルトの名無しさん
18/11/06 09:23:46.31 jl2IXbjS.net
(A,B,C)が(0,0,0),(0,1,0),(0,1,1),(1,0,0),(1,0,1)の時はCが無限回、(1,1,1),(0,X,X),(X,0,X),(X,X,X)(2≦X)の時はCが2回出現することがあるが考慮した方が良いか?

230:デフォルトの名無しさん
18/11/06 10:48:03.28 VF9SVEaj.net
A,Bによっては無限ループになり得ないか?

231:219
18/11/06 11:49:20.62 13CfGTjW.net
そういやa,bが0,0だと足しても0だからcも0じゃないと無限ループするかな。

232:219
18/11/06 11:52:26.86 13CfGTjW.net
した。見事にした。
足してゼロなら特別扱いして終わらせる処理がないとダメだったということだな。
今さら直す気は起きんが。

233:デフォルトの名無しさん
18/11/06 11:52:29.61 GFB90oOd.net
>>222
今まで投稿されてるコード見る限りは最初に見つけた時点で停止。
>>223
自然数って指示だから止まるはずだけど、関数の引数側でunsigned指定して(Javaとかだとuint)おいた方が良いかもね。

234:デフォルトの名無しさん
18/11/06 12:34:42.11 jAy4xbYh.net
>>215 Squeak/Pharo Smalltalk
| fibGen fn |
fibGen := [:fst :snd |
Generator on: [:g |
| a b |
a := fst. b := snd.
g yield: a. [b := a+b. g yield: (a := b-a)] repeat
]
].
fn := [:A :B :C |
| count fib last |
count := 1. fib := fibGen value: A value: B.
[(last := fib next) < C] whileTrue: [count := count + 1].
last = C ifTrue: [count] ifFalse: [false]
].
fn value: 1 value: 1 value: 89. "=> 11 "
fn value: 1 value: 1 value: 90. "=> false "

235:デフォルトの名無しさん
18/11/06 14:46:16.34 GFB90oOd.net
Haskell
main = mapM_
(\x -> putStr (show x ++ ":") >> print (fibin 0 1 x))
[0..6]
fibin 0 0 c | c /= 0 = Nothing
fibin a b c = lookup c $
zip (take (10 + c) fib) [1..]
where fib = a:b:(zipWith (+) fib (tail fib))

236:デフォルトの名無しさん
18/11/06 18:51:28.38 2YnZy0Ze.net
>>215 ruby
URLリンク(ideone.com)
AとB足してゼロ問題に対しては
fib = ->a, b {Enumerator.new {|y| loop {y << a; a, b = b, a + b; break if b == 0}}}

237:デフォルトの名無しさん
18/11/06 22:17:30.30 Nv8RqtnA.net
お題
xy平面上の点がn+1個与えられる(各点のx座標は互いに異なる)
与えられた点をすべて通る関数 y=a[i]x^n+...+a[1]x+a[0] の係数a[i]を求めよ
[入力]
点の個数(n+1)
x[0] y[0]
...
x[n] y[n]
[出力]
a[n] ... a[0]
2
0 1
1 3
=> 2 1 (y=2x+1)

1
100 100
=> 100
5
0 1
-1 5
2 2
4 -1
1 0
=> -2/15 4/15 49/30 -83/30 1

238:デフォルトの名無しさん
18/11/06 23:24:52.38 bpzsP6yI.net
【ラグランジュ補間】
Σ[i=1,n] )y[i]Π[k≠i](x-x[k])/ (x[i]-x[k])
この係数を計算するだけ。
こういう純数学的な処理は、お題としてはどうかな?
応用上、常に展開した係数を求めるのに意味がある
とも限らんし、精度評価が重要だったりとか

239:デフォルトの名無しさん
18/11/06 23:43:20.04 iVEsbroy.net
>>230
線形代数は偉大
import numpy as np
N = int(input())
x, y = [], []
for i in range(N):
_x, _y = map(float, input().split())
x.append(_x)
y.append(_y)
x = np.array(x)
y = np.array(y)
px = np.array([x**k for k in range(N)])
a = np.dot(y, np.linalg.inv(px))
print(a[::-1])

240:デフォルトの名無しさん
18/11/06 23:51:57.59 bpzsP6yI.net
[1 x[0] x[0]^2...x[0]^n] [a[n]] =[y[0]]
[1 x[1] x[1]^2... x[1]^n] [a[n-1]]=[y[1]
[1 x[2] x[2]^2...x[2]^n] [a[n-2]]=[y[2]]
...
[1 x[n] x[n]^2 .... x[n]^n] [a[0] ]=[y[n]]
を解かせたというわけか...

241:デフォルトの名無しさん
18/11/07 00:03:06.07 q3WQuIHF.net
また数学板から荒らしにきたのか

242:デフォルトの名無しさん
18/11/07 00:56:30.16 yYgCxC/p.net
お題: 四則演算の文字列を受け取って計算結果を返す
1+2+3+4
=> 10
4+5*6-2*3
=> 28
5+12*(2+9/3)/((2+3)*5-7*3)
=> 20

243:デフォルトの名無しさん
18/11/07 00:58:06.61 B66LtM9k.net
>>230 Ruby
s = ->a, b{a.zip(b).map{|i, j| i - j}}
t = ->a, k{a.map{|i| i * k}}
n = gets.to_i - 1
m = $<.read.split($/).map{|e| f[n, *e.split.map(&:to_r)]}
(1..n+1).each do |r|
(nonzero = m[r- 1..-1].find_index{|e| e[r].nonzero?} + r - 1) && next
m[r - 1], m[nonzero] = m[nonzero], m[r - 1]
m[r - 1] = t[m[r - 1], 1/m[r - 1][r]]
[*[*(0..n)] - [r - 1]].each{|i| m[i] = s[m[i], t[m[r - 1], m[i][r]/m[r - 1][r]]]}
end
puts m.transpose[0].map{|i| i.denominator == 1 ? i.to_i : i} * ' '
2
0 1
1 3
#=> 2 1 (y=2x+1)
3
1 1 1 1
5 4 2 1
8 9 3 1
#=> -1/2 11/2 -4

244:デフォルトの名無しさん
18/11/07 01:00:36.71 B66LtM9k.net
>>236 訂正 尚複数解存在する時は最も次数の小さいものを出力
2
0 1
1 3
#=> 2 1
3
1 1
5 2
8 3
#=> -1/2 11/2 -4

245:デフォルトの名無しさん
18/11/07 01:50:15.65 B66LtM9k.net
>>235
ruby -nle'puts [$_,eval($_)]*" => "'
1+2+3+4 => 10
4+5*6-2*3 => 28
5+12*(2+9/3)/((2+3)*5-7*3) => 20

246:デフォルトの名無しさん
18/11/07 02:11:40.28 B66LtM9k.net
>>236 訂正
s = ->a, b{a.zip(b).map{|i, j| i - j}}
t = ->a, k{a.map{|i| i * k}}
n = gets.to_i
m = $<.read.split($/).map{|e| f[n + 1, *e.split.map(&:to_r)]}
n.times do |r|
  (nonzero = m[r..-1].find_index{|e| e[r].nonzero?} + r) || next
  m[r], m[nonzero] = t[m[nonzero], 1/m[nonzero][r + 1]], m[r]
  [*[*(0..n + 1)] - [r]].each{|i| m[i] = s[m[i], t[m[r], m[i][r + 1]/m[r][r + 1]]]}
end
puts m.transpose[0].map{|i| i.denominator == 1 ? i.to_i : i} * ' '

247:デフォルトの名無しさん
18/11/07 12:58:28.67 jk7t6Ngg.net
>>230 Squeak Smalltalk
| fn |
fn := [:points |
| xs ys fi gi |
xs := points collect: #x.
ys := points collect: #y.
fi := [:x :i | ((1 to: xs size) copyWithout: i) inject: 1 into: [:prod :k | prod * (x - (xs at: k))]].
gi := [:i |
(0 to: xs size - 1) collect: [:n | n = 0 ifTrue: [1] ifFalse: [
(Array streamContents: [:ss |
(xs copyWithoutIndex: i) combinations: n atATimeDo: [:comb |
ss nextPut: (comb negated reduce: #*)]
]
) sum
]]
].
(ys * ((1 to: xs size) collect: gi) / (xs collectWithIndex: fi)) sum
].
fn value: {0@1. 1@3}. "=> #(2 1) "
fn value: {100@100}. "=> #(100) "
fn value: {0@1. -1@5. 2@2. 4@ -1. 1@0}. "=> {(-2/15) . (4/15) . (49/30) . (-83/30) . 1} "

248:デフォルトの名無しさん
18/11/07 13:01:59.20 jk7t6Ngg.net
>>230 Pharo Smalltalk w/PolyMath >>232っぽく
"Metacello new
repository: 'github://PolyMathOrg/PolyMath:master/src';
baseline: 'PolyMath';
load"
| fn |
fn := [:points |
| xs ys xp |
xs := points collect: #x.
ys := points collect: #y.
xp := (PMMatrix rows: ((xs size - 1 to: 0 by: -1) collect: [:m | xs raisedTo: m])) transpose.
(xp inverse * ys asPMVector) asArray
].
fn value: {0@1. 1@3}. "=> #(2 1) "
fn value: {100@100}. "=> #(100) "
fn value: {0@1. -1@5. 2@2. 4@ -1. 1@0}. "=> {(-2/15) . (4/15) . (49/30) . (-83/30) . 1} "

249:デフォルトの名無しさん
18/11/07 18:36:22.03 LRSzKna1.net
お題
Windows bitmap画像(.bmp)は通常、下から上に向かって画像が記録されているが、
高さに負の値を指定することで、上から下へ向かって画像を記録することができる。
これを利用してbmp画像の上下を反転せよ。

250:デフォルトの名無しさん
18/11/07 18:45:22.44 oTVd6hn3.net
どこが問題なのw
仕様に沿った解決法言っちゃってるじゃんw

251:219
18/11/07 19:20:37.53 bimd4khF.net
>>243
プログラムを作るのがお題だろう。
ここはプログラミングのお題スレなんだからこれでいいんだよ。
むしろ人がある程度プログラムの仕様を考えなければならないような数学問題みたいなやつがダメなお題。

252:デフォルトの名無しさん
18/11/07 20:13:22.48 Uevtgk2mh
社会貢献のための生成とはどうあるべきかについて考えればいいじゃないか。
それを無くしては単なる社会主義的生産物として生きていく日々だよ。

253:デフォルトの名無しさん
18/11/07 20:23:12.93 Uevtgk2mh
それとも社会貢献はプログラミングのお題じゃないってか?
頭良すぎるだろ。

254:デフォルトの名無しさん
18/11/07 20:24:13.29 Uevtgk2mh
俺にも下品さの師匠を教えてくれよ。
お前らみたいに豊かになりてーわ笑。

255:デフォルトの名無しさん
18/11/07 19:56:07.71 5DjOPE5m.net
>>242 Ruby
in_fname = 'hoge.bmp'
out_fname = 'hoge_ud.bmp'
File.binwrite(out_fname, File.binread(in_fname).tap{|b| b[22, 4] = [-b[22, 4].unpack(?l).pop].pack(?l))

256:デフォルトの名無しさん
18/11/07 20:06:47.46 umLQTzF1.net
>>244
あなたがそういう問題しか好きじゃないか解けないだけでしょ
スレ民の総意みたいな言い方しないで

257:デフォルトの名無しさん
18/11/07 20:14:12.09 Lazgvcn1.net
>>244
紙とえんぴつで解ける数学問題みたいなやつがプログラミングのお題としてダメなのは同意なんだけど>>242は例えば
画像の上下を反転せよ。入力はbmpとする。
とかのほうが良かったんじゃないかな。
愚直に配列いじる奴を尻目に仕様を利用して華麗に解くやつが現れる。
これがいいんじゃないか。

258:219
18/11/07 21:05:56.46 bimd4khF.net
>>249
スレ民の総意がどうであろうともこのスレはプログラミングのお題スレなんだからプログラミングのお題になってないのはスレチであることには代わりがない。
適切なスレに書くかまたはなければ新たにそれ用のスレを作って書けば良い。
>>250
それでもいいかも知れないが問題が簡略化されているために自分で仕様を調べるというプログラミングとは少し違う作業が発生するな。
更に仕様の盲点に気付くかというクイズ的な要素もある。

259:デフォルトの名無しさん
18/11/07 21:15:41.59 wOCAlbJb.net
まあ式を実装するだけの数学問題と大差ないお題にしてしまうような要素は不要だったな

260:デフォルトの名無しさん
18/11/07 21:15:43.65 h4FWJh3K.net
>>249
>>248 じゃないけど、数学の問題は問題自体が分からないから手が出せない。
高卒でも分かるように噛み砕いて貰えれば書けるかもだが。

261:デフォルトの名無しさん
18/11/07 21:17:30.61 h4FWJh3K.net
そう考えると、プログラミングの能力って言語覚えるより問題を理解する能力だよな。。。

262:デフォルトの名無しさん
18/11/07 22:05:04.79 DuFCNJWg.net
噛み砕くとこうだな
ファイルの22バイトめから保存されている4バイト長の整数値の符号を反転せよ。
ただし数値は下位バイトから順に格納されており、負数は2の補数表現を用いるものとする。

263:デフォルトの名無しさん
18/11/07 22:06:17.13 DuFCNJWg.net
出力は反転した数値以外は元のファイルと同じ内容のファイルとする
も要るか

264:デフォルトの名無しさん
18/11/07 22:14:53.17 h4FWJh3K.net
>>255
ごめん
>>230-231 の方が分からないんだ。。。

265:デフォルトの名無しさん
18/11/07 22:28:14.93 /kHK9X1+.net
それこそ数学の質問スレでやってくれない?

266:デフォルトの名無しさん
18/11/08 03:03:27.47 yQlGi5bN.net
>>244
>ここはプログラミングのお題スレなんだからこれでいいんだよ。
>むしろ人がある程度プログラムの仕様を考えなければならないような数学問題みたいなやつがダメなお題。
スレタイ『プログラマーは何を勉強すべきか?』
プログラマーは何を勉強すべきかということだが、最新のトレンドに適応した勉強が必要だ。
俺は今までこれだけ沢山勉強してきたという人も、実は最新のトレンドに適応していない可能性もある。
5、結論
  以上の結果より導き出される京大英語で8割を超すための対策は、「ネイティブ英語とは何か」
を定義づけして学ぶことに尽きるだろう。
  たとえば、「この料理はまずい」という英作文なら受験生に多いのが
 This dish tastes poor.
しかし、これは評価されない。なぜなら、英語として正しくてもマナー違反。英検英語なら否定文にして、
This dish isn't good. これでマナーは改善された。
  しかし、ネイティブなら I don't like this dish. と言うだろう。本当に不味い場合は、
Yuck! と叫ぶ。そういう違いだ。
 問題は、
「受験英語の参考書や問題集で取り上げられている構文や表現が現実に使われている英語と違う」
  という事実。それを指導している教師や講師も、外国生活がなく50年前の表現を気づかずに指導して
いること。そのために、校内テストや模試で高得点や上位の順位をとっても落ちてしまうこと。
URLリンク(storys.jp)

267:デフォルトの名無しさん
18/11/08 03:57:11.05 AySxWi85.net
「この料理はまずい」の時点でマナー違反なんだからそのまま訳すのが正しい
料理がまずいときの一言を答えさせたいならそう出題すればいいことだ
そういう出題側の質とか意識してんのかなこいつ

268:デフォルトの名無しさん
18/11/08 04:48:49.11 QHwNiY6E.net
数学のように、頭の中で正しいかどうかを、証明するような問題は、面倒くさい。
このスレでは、頭を使わず、単純な総当たり問題が好まれる
その方が、プログラミング的な問題

269:デフォルトの名無しさん
18/11/08 05:18:56.02 HOEn5tLb.net
お題:
自然数Nと、N個の「半角の小文字アルファベットと数字からなる1文字以上の文字列」が標準入力から順次与えられます。
文字列をNatural Sort*して標準出力から順次出力してください。
追加問題:
お題1を正規表現を使わず実装してください。
*:
"a120"と"a13"が与えられた場合、"a13","a120"の順番にソートするようにする。
また、今回は"a01"と"a1"が与えられた場合、連続する数字が少ない方を先にする、すなわち"a1","a01"の順になるようにするものとし、
"0"と"a"のどちらが先に来るかについては自由とします。

270:デフォルトの名無しさん
18/11/08 05:51:13.63 yQlGi5bN.net
>>261
>数学のように、頭の中で正しいかどうかを、証明するような問題は、面倒くさい。
>このスレでは、頭を使わず、単純な総当たり問題が好まれる
ならば、「チンポがシコシコする」という日本語表現は、文法的に正しいのか?
チンポ「を」シコシコするのではなくて、チンポ「が」シコシコする。この場合、「チンポ」は主語となる。
オブジェクト指向で言う「集約」は2種類あって、全体(俺)と部分(チンポ)が繋がっている場合と、
全体(俺)と部分(チンボ)が別々になっている場合とが考えられる。けれども「チンボ」はそれ自体
が独立した生き物であり、所有者の意思とは無関係に、勃起して「シコシコする」。
例えば寝てる時にエロい夢みて朝起きてみたらチンコが勃起して射精してたとか。
違うか?
「胸がドキドキする」は良いが、「チンポがシコシコする」はダメな理由を、50字以内で述べろ!

271:デフォルトの名無しさん
18/11/08 07:42:34.26 Tu3rCJEk.net
>>261
まあそうなんだけど、数学スレでガンガンプログラミング言語で答え出してる奴がいて正直羨ましい。

272:デフォルトの名無しさん
18/11/08 09:21:24.69 UCtqQ5sl.net
なぜそのスレで頑張らないのか。
二軍でヒーローになろうと思ってここで数学の問題出してるの?

273:デフォルトの名無しさん
18/11/08 09:28:43.02 Tu3rCJEk.net

私は出題者じゃ無いよ。

274:デフォルトの名無しさん
18/11/08 09:57:33.73 2oWgTmr1.net
>>265
>なぜそのスレで頑張らないのか。
>二軍でヒーローになろうと思ってここで数学の問題出してるの?
俺はただパソコンに向かって独り言ブツブツ言って、チンポがシコシコしてるだけだが?

275:デフォルトの名無しさん
18/11/08 09:57:41.43 llemawmF.net
>>262
How do I do a natural sort on an array?
URLリンク(www.perlmonks.org)
これを実装すんの?

276:デフォルトの名無しさん
18/11/08 10:23:04.41 Cbg63GbQ.net
>>263
君が何を言いたいのかよくわからない。

277:デフォルトの名無しさん
18/11/08 10:34:41.85 yQlGi5bN.net
>>269
『チンポ』についての生態学は、俺にもよくわからん。

278:デフォルトの名無しさん
18/11/08 11:03:16.65 WO5MlDuJ.net
>>262 Ruby
puts$<.readlines.sort_by{|a|[a.scan(/\d+|\D+/).map{|e|e.to_i(36)},a.size]}

279:デフォルトの名無しさん
18/11/08 14:52:40.11 9PdT3eEJ.net
>>271
>>262
>また、今回は"a01"と"a1"が与えられた場合、連続する数字が少ない方を先にする、すなわち"a1","a01"の順になるようにするものとし、

280:デフォルトの名無しさん
18/11/08 15:03:35.30 5p9g1xrz.net
>>272
問題無い
# stdin
a130
a12
a001
a01
a1
1
# stdout
1
a1
a01
a001
a12
a130

281:デフォルトの名無しさん
18/11/08 15:08:17.09 9PdT3eEJ.net
>>273
a01b2
a1b0002

282:デフォルトの名無しさん
18/11/08 15:11:12.86 5p9g1xrz.net
>>274
うわー恥ずかしい
指摘ありがとう

283:デフォルトの名無しさん
18/11/08 15:11:38.15 rrpg0ZUw.net
>>273
a001
a12
これ逆にならんとあかんのとちゃう?

284:デフォルトの名無しさん
18/11/08 15:14:27.12 tjdDhH3P.net
>>215 python3
むりやり数式で解いてみた
URLリンク(ideone.com)

285:デフォルトの名無しさん
18/11/08 15:33:18.20 quzojjRV.net
ソートの問題、
連続する数字はその連を数値として比較しつつ同じ数値のときは桁数少を前としているわけだよな
つまり
a01a
a1b
a01b
をソートすると
a01a
a1b
a01b

286:デフォルトの名無しさん
18/11/08 16:29:56.18 Tu3rCJEk.net
>>262
Haskell
main = concat $ map qsort grop
grop = map filterlen [1..(maximum $ map length input)]
filterlen n = filter (\x -> n == length x) input
qsort [] = []
qsort (x:xs) = small ++ [x] ++ big
where small = qsort [a |a <- xs, a <= x]
big = qsort [a | a <- xs, a > x]
input = ["a130","a12","a001","a01","a1","1"]


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