[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 06/10 16:48 / Filesize : 307 KB / Number-of Response : 1031
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん mailto:sage [2019/07/28(日) 19:39:57.54 ID:832c/ukY.net]
プログラミングのお題スレです。

【出題と回答例】
1 名前:デフォルトの名無しさん
  お題:お題本文

2 名前:デフォルトの名無しさん
  >>1 使用言語
  回答本文
  結果がある場合はそれも

【ソースコードが長くなったら】 (オンラインでコードを実行できる)
https://ideone.com/
codepad.org/
compileonline.com/
rextester.com/runcode
https://runnable.com/
https://code.hackerearth.com/
melpon.org/wandbox
https://paiza.io/

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

※前スレ
プログラミングのお題スレ Part14
mevius.5ch.net/test/read.cgi/tech/1558168409/

786 名前:ツまらない。ということでこれ。

fun main() {
 val br = System.`in`.bufferedReader()
 br.readLine()
 val t0 = System.nanoTime()
 while (true) {
  if (br.ready()) {
   val c = br.read()
   if (c == '\n'.toInt())
    break
  }
  val t1 = System.nanoTime()
  val t = t1 - t0
  print("%d.%09d\r".format(t / 1000000000L, t % 1000000000))
 }
 println()
}
[]
[ここ壊れてます]

787 名前:デフォルトの名無しさん mailto:sage [2019/10/14(月) 07:53:19.70 ID:kizbcx2j.net]
お題
2^511-1の真約数をひとつ求める
https://mainichi.jp/articles/20191013/k00/00m/040/245000c

788 名前:デフォルトの名無しさん mailto:sage [2019/10/14(月) 08:39:26.54 ID:6P2fe30E.net]
>>768
そのニュース関係なくね?

789 名前:デフォルトの名無しさん mailto:sage [2019/10/14(月) 08:53:29.04 ID:z/6QW2Tk.net]
実は素数でした
とかいう形?

790 名前:デフォルトの名無しさん mailto:sage [2019/10/14(月) 09:34:48.23 ID:6P2fe30E.net]
>>770
511 = 7 * 73 だから 2^511 - 1 は素数ではない

791 名前: mailto:sage [2019/10/14(Mon) 09:38:05 ID:6P2fe30E.net]
というか2^73-1で割り切れる

792 名前: mailto:sage [2019/10/14(Mon) 15:57:50 ID:eo8SsHS2.net]
>>771-772
それは 2^511-1 は 2^7-1 でも割り切れることを主張しているのですか?

793 名前:デフォルトの名無しさん mailto:sage [2019/10/14(月) 16:21:24.99 ID:CCU+9UFO.net]
>>773
それ以外にどう読めるんだよアホか

794 名前:デフォルトの名無しさん mailto:sage [2019/10/14(月) 20:26:24.40 ID:ead7I0ur.net]
>>773
2^511-1 = 2進数で1が511個 = 2進数で1111111が73個並んだ形
2^511-1を2^7-1で割ったら2進数で0000001が73個並んだ形
ってことじゃろ



795 名前:蟻人間 mailto:sage [2019/10/14(月) 20:53:54.75 ID:O0QR+doO.net]
プログラミングから一気に整数論へダイブ

796 名前: mailto:sage [2019/10/14(Mon) 21:23:44 ID:eo8SsHS2.net]
>>774-775
2^{ab}-1 = (2^a-1)(1 + 2a + 2^2a + 2^3a + ... + 2^(b-1)a)
と因数分解できるんですね…
thx a lot.

797 名前: mailto:sage [2019/10/14(Mon) 22:14:18 ID:hXRtCJE+.net]
必死に5時間検索しまくったのか・・・

798 名前: mailto:sage [2019/10/15(Tue) 01:03:22 ID:LXkkA+L3.net]
もう何処かのチャレンジ問題を議論するスレでも良いのでは?

799 名前:デフォルトの名無しさん mailto:sage [2019/10/15(火) 01:28:25.21 ID:4KtvCQDg.net]
お題: お題スレの過去スレからお題をランダムに選択し出力するプログラムを作成せよ

800 名前: mailto:sage [2019/10/15(Tue) 15:09:04 ID:WmSwVXlW.net]
QZの醜態を全部晒すプログラムを作成せよ

801 名前: mailto:sage [2019/10/15(Tue) 15:25:10 ID:YTs2ZIZB.net]
>>781
w3m https://mevius.5ch.net/test/read.cgi/tech/1564310397/ | ~/bin/select_word_and_ancher.pl QZaw55cn4c
https://pastebin.com/MPWNXYG5
https://i.imgur.com/fJi3S6W.png

802 名前:デフォルトの名無しさん mailto:sage [2019/10/15(火) 16:06:38.33 ID:Ogt2CAsV.net]
>>782
くそわろた

803 名前:デフォルトの名無しさん mailto:sage [2019/10/16(水) 01:16:39.26 ID:bAHdrVWX.net]
>>755 python
ideone.com/caxm7I

ほぼ典型っぽいので、桁DPで解く。

遊びで (X,Y)=(0, 10^100)を実行してみる

804 名前:デフォルトの名無しさん mailto:sage [2019/10/16(水) 01:58:29.60 ID:OEkTBx4G.net]
あらら仕事にかまけてほったらかしていたら
先こされちゃったな感



805 名前:デフォルトの名無しさん mailto:sage [2019/10/16(水) 02:04:49.25 ID:5tDJE0Z9.net]
QZは自分がキチガイということは全然自覚してないんだろうな

806 名前:デフォルトの名無しさん mailto:sage [2019/10/16(水) 08:36:01.98 ID:Mi1dGaVf.net]
>>786 自覚はあるらしいよ。

807 名前: mailto:sage [2019/10/16(Wed) 16:11:48 ID:EcYqpM5S.net]
QZが自身をキチガイだと認識しているのならば、QZはキチガイという言葉の正しい意味を理解していない

808 名前:デフォルトの名無しさん mailto:sage [2019/10/16(水) 16:58:30.92 ID:NsS1/fO1.net]
誰が見てもQZは頭がおかしいよ

809 名前: mailto:sage [2019/10/16(Wed) 20:10:11 ID:JF94p0Fe.net]
>>789
どういうところが「頭がおかしい」と思ったのですか?

810 名前: mailto:sage [2019/10/17(Thu) 01:44:31 ID:QhHbr34y.net]
>>790
周囲が迷惑している行為や的外れで頓珍漢な言動をした際にそれを指摘しても、分からないから具体的に言えという。普通の人からすれば明らかな場合であろうと。
そして具体的に説明しても、自分はそう感じないから理解しない、納得しないと言い、言動を改めない。

本人の中では論理的整合性がとれた言動なのかも知れないが、周囲からすれば会話ができない困った奴に見える。

811 名前: mailto:sage [2019/10/17(Thu) 02:01:41 ID:Wp46MCu9.net]
朝鮮人に特有な行為だね

812 名前:デフォルトの名無しさん mailto:sage [2019/10/17(木) 02:18:55.29 ID:E+5qu981.net]
他人の迷惑考えずこんなの貼っちゃう奴だしな

848 ◆QZaw55cn4c  sage 2019/07/20(土) 08:18:17.29 ID:jbjCUWIF
お題と回答
5 : 6 10 32 36 44
9 : 15 34 35 79

まんま>>791に該当するわ

813 名前: mailto:sage [2019/10/17(Thu) 09:29:19 ID:yTQXhZUg.net]
複素数の多価関数を何度説明しても理解してなかったし脳に欠陥があるのだろう

814 名前: mailto:sage [2019/10/17(Thu) 12:35:29 ID:MLKesy/P.net]
多価関数を理解できなかったのかwww
じゃあリーマン面も分からないだろうな
そんな状態で一丁前に「留数定理」とのたまうから頭おかしい



815 名前:デフォルトの名無しさん [2019/10/17(Thu) 16:53:38 ID:H8l94EK2.net]
>>744
Kotlin
>>766をほんのちょっと改造
https://paiza.io/projects/K_ZOTIieO38ysksk8P8-sw

816 名前: mailto:sage [2019/10/17(Thu) 19:46:20 ID:LNHzPSkK.net]
>>795
>そんな状態で一丁前に「留数定理」とのたまう
多分、それは「留数定理は忘れた」という文脈以外ではいったことがないと思いますよ

>>794
「何度も」説明を受けた覚えはありませんよ、むしろ意図的に答えを隠されたような隔靴掻痒的なほのめかししかなかったと記憶しています

>>793
問題を明確に指摘された後は、その貼り付けは実施していないのですが

>>794
今はすべてを実数に限定した線形微分方程式ですらとても苦しんでいるので、複素解析/j関数論とかは当分無理だと思います、関数論のいい教科書があれば教えてください

817 名前: mailto:sage [2019/10/17(Thu) 20:10:25 ID:Fo0iAhjp.net]
>>797
あれだけ明瞭な説明を受けて理解できないどころかはぐらかされたと感じるならばお前は脳の病気だな

818 名前:デフォルトの名無しさん mailto:sage [2019/10/17(木) 22:10:55.40 ID:lFPJOlZz.net]
5chなんて無駄にマウント取るやつばっかりだから、コテつけてごちゃごちゃ言っても時間の無駄だぞ
袋叩きにあうだけ

819 名前:デフォルトの名無しさん [2019/10/18(Fri) 01:24:53 ID:RRRrLQ0r.net]
自演擁護乙。

820 名前:蟻人間 mailto:sage [2019/10/18(金) 23:48:51.61 ID:981JMrNY.net]
気を取り直していくぞ。

お題: 現在時刻のアナログ時計のSVG画像を出力せよ。丸い外枠と短針と長針だけでいいが、可能なら秒針と文字盤も表示せよ。

821 名前:デフォルトの名無しさん mailto:sage [2019/10/19(土) 02:49:07.69 ID:PZMkyc4n.net]
暇な人向けのお題:なるべく公正な多数決システムを考案せよ。
サンプル:https://ideone.com/Ayr1Az

上記は多数決して、3人サンプルして、じゃんけんする。というプロセスで導き出される。

822 名前:デフォルトの名無しさん mailto:sage [2019/10/19(土) 18:44:38.13 ID:PZMkyc4n.net]
暇な人向けのお題II!
9x9のセルが与えられる。そのセルは磁石である。
真空状態での磁気シミュレーションをして量子コンピュータに近似せよ。

一つの万能ではない方針。
1パス目で相互作用を足し込む。
2パス目で相互作用の蓄積を作用素数で割る。

ライフゲームがヒントになるかもしれない。

823 名前:デフォルトの名無しさん mailto:sage [2019/10/19(土) 18:45:19.24 ID:PZMkyc4n.net]
>>803
なお、自分は物理学も数学も素人である。。。Orz

824 名前:デフォルトの名無しさん [2019/10/21(月) 08:37:49 ID:HKPBZHRe.net]
お題
入力された正整数を漢数字表記にして出力せよ
10の何乗まで対応するかは任せる

514 -> 五百十四
131072 -> 十三万千七十二
90010 -> 九万十



825 名前:デフォルトの名無しさん mailto:sage [2019/10/21(月) 09:41:08 ID:5iZNWaQ2.net]
>>805 python

%pip install kanjize
from kanjize import in

826 名前:t2kanji, kanji2int
print(int2kanji(123456789))
# 一億二千三百四十五万六千七百八十九
[]
[ここ壊れてます]

827 名前:デフォルトの名無しさん [2019/10/21(月) 09:45:18 ID:HKPBZHRe.net]
>>806
そんなのあるのか…

828 名前:デフォルトの名無しさん mailto:sage [2019/10/21(月) 13:26:32 ID:Yxovtd3S.net]
perlの時代には既に存在した

829 名前:デフォルトの名無しさん [2019/10/21(月) 13:31:36 ID:W7vxtZcq.net]
じゃあunicodeにシュメル文字が収録されたので、それで。
フフフ、ライブラリなんてあるまい

830 名前:デフォルトの名無しさん mailto:sage [2019/10/21(月) 13:35:10 ID:ZDMJHUdn.net]
>>809 Python

%pip install sumerianize
from fumerianize import int2sumerian, sumerian2int
print(int2sumerian(123456789))
# ????????????????????????

831 名前:デフォルトの名無しさん [2019/10/21(月) 13:39:33 ID:n9VxwF2L.net]
あんのかよワロタw

832 名前:デフォルトの名無しさん mailto:sage [2019/10/21(月) 13:45:48 ID:qqa/WroJ.net]
逆も欲しいな
漢数字を入れるとアラビア数字に変換するプログラム

833 名前:デフォルトの名無しさん mailto:sage [2019/10/21(月) 13:49:33 ID:BDK5iYLM.net]
表示できてなくて笑う

834 名前:デフォルトの名無しさん [2019/10/21(月) 13:50:52 ID:hy8thByE.net]
>>805
それと同じお題を以前出した覚えがある。
まあいいか。スレ見に来てる人も変わってるだろうし。



835 名前:デフォルトの名無しさん mailto:sage [2019/10/21(月) 16:23:33 ID:5iZNWaQ2.net]
>>813 表示できていないのは見る人がフォントを入れていないからだろ。 不思議でも何でもない。

836 名前:デフォルトの名無しさん [2019/10/21(月) 16:37:23.10 ID:lI38JOob.net]
>>812
それと同じお題も過去にあったような。双方向で変換ってやつかな。

まだやったことない人なら頭の体操(またはボケ防止)にはなるからやってみると良いと思う。

837 名前:デフォルトの名無しさん mailto:sage [2019/10/21(月) 17:22:20.45 ID:Yxovtd3S.net]
>>812
漢数字変換 - Perl表技集
www2u.biglobe.ne.jp/~MAS/perl/waza/kansuji.html

これですな

838 名前:デフォルトの名無しさん mailto:sage [2019/10/21(月) 20:27:05.91 ID:niRnsl0k.net]
実はcpanからお題を決めてるんじゃないかなというのがしばらく続いてたと思う

839 名前:デフォルトの名無しさん mailto:sage [2019/10/21(月) 22:35:38 ID:9OcWZn69.net]
ローマ数字との変換、は簡単か

840 名前:デフォルトの名無しさん mailto:sage [2019/10/21(月) 22:41:08 ID:tcnN+Hr+.net]
何回か出てる。

841 名前:デフォルトの名無しさん mailto:sage [2019/10/21(月) 23:57:16.86 ID:PlH6WJHg.net]
適当な整数を入力してそれが円周率の何桁目で出てくるか出力せよ。

何桁まで対応するかは任せる。

842 名前:デフォルトの名無しさん mailto:sage [2019/10/22(火) 00:08:15 ID:TSqT/b7n.net]
perl だと m/digit/p からの $^{prematch} とかだな

843 名前:デフォルトの名無しさん mailto:sage [2019/10/22(火) 12:07:39.33 ID:rZX4V0+4.net]
>>821 Perl5、小数点以下10000桁まで一番最初に見つかった桁を出力

$d = 893; # 適当な整数
use Math::BigFloat try => 'GMP,Pari';
$pi = Math::BigFloat->bpi(10000);
#print "$pi\n";
$pi =~ s/\.//; # 小数点「.」を除去
$i = index $pi, $d;
print $i < 0 ? "無し\n" : "小数点以下 $i 桁目\n";


実行結果
~ $ perl 15_821.pl
小数点以下 999 桁目

844 名前:デフォルトの名無しさん mailto:sage [2019/10/22(火) 12:11:07.49 ID:wZUXcjF6.net]
あきらかにNP問題だから解く気がしねえ



845 名前:デフォルトの名無しさん [2019/10/22(火) 12:40:06.09 ID:E1qN728j.net]
じゃあNP問題だと証明しろよ

846 名前:デフォルトの名無しさん mailto:sage [2019/10/22(火) 13:54:00.39 ID:rZX4V0+4.net]
>>823
一度にある桁まで求めておいてから検索するよりも、
ガウス=ルジャンドルのアルゴリズムまたはラマヌジャンの式を使うなどして
下の桁まで収束を進めながら検索してゆく方が面白かったかな

847 名前:デフォルトの名無しさん mailto:sage [2019/10/22(火) 16:09:06.09 ID:0ZM3PvBa.net]
>>825
キチガイすぎて草

848 名前:デフォルトの名無しさん [2019/10/22(火) 19:15:47.41 ID:/ue0mcGS.net]
ぬるぽ問題

849 名前:デフォルトの名無しさん mailto:sage [2019/10/22(火) 19:35:05.18 ID:JpCkwFny.net]
じゃあそれにしよう。

適当な文章を入力して縦横斜めにぬるぽの3文字が入っていればガッと出力す

850 名前:る。
ひらがなだけにするかそれ以上の対応をするかは任せる。
[]
[ここ壊れてます]

851 名前:デフォルトの名無しさん mailto:sage [2019/10/22(火) 23:37:52.31 ID:0ZM3PvBa.net]
>>829 Python

%pip install nurupo
from nurupo import nurupofield
if nurupofield("ぬるぽ")
print("ガッ")
# ガッ

852 名前:デフォルトの名無しさん mailto:sage [2019/10/23(水) 00:32:58.65 ID:65oBAktI.net]
pythonなんでも揃ってんな・・・

853 名前:デフォルトの名無しさん mailto:sage [2019/10/23(水) 20:25:56.13 ID:LcbXQT4h.net]
お題:整数配列の奇数要素のみをソートした配列を返す処理を書いてください

入力例:[6, 5, 4, 3, 2, 1]
出力例:[6, 1, 4, 3, 2, 5]

854 名前:デフォルトの名無しさん mailto:sage [2019/10/23(水) 20:53:09.53 ID:oBmkNBH8.net]
>>832 octave
https://ideone.com/W2Q4NP



855 名前:デフォルトの名無しさん mailto:sage [2019/10/23(水) 20:53:23.91 ID:65oBAktI.net]
奇数だけ抜き出した配列作成→ソート→元の配列の奇数の位置にソートした配列の要素を入れてくだけで良さそう

856 名前:デフォルトの名無しさん mailto:833 [2019/10/23(水) 20:54:52.29 ID:oBmkNBH8.net]
あ、ダメだこれw
失礼しました

857 名前:833 mailto:sage [2019/10/23(水) 21:05:23.34 ID:oBmkNBH8.net]
>>832 octave
https://ideone.com/F0JmMT

858 名前:デフォルトの名無しさん mailto:sage [2019/10/23(水) 22:37:14.26 ID:PSSarBFK.net]
>>832 Perl5

@s = (6, 5, 4, 3, 2, 1);
@ix = grep{$s[$_] & 1} keys @s;
@iy = sort{$s[$a] <=> $s[$b]} @ix;
@s[@ix] = @s[@iy];
use Data::Dump 'dump';
print dump @s;

実行結果
~ $ perl 15_832_sort_odd_elem.pl
(6, 1, 4, 3, 2, 5)

859 名前:デフォルトの名無しさん [2019/10/24(木) 08:28:31.82 ID:5RTZY+Zo.net]
>>832 J
f =: 3 : 0
a =. I. 2 | y
b =. /:~ a { y
b (a) } y
)

f 6 5 4 3 2 1
6 1 4 3 2 5

860 名前:デフォルトの名無しさん mailto:sage [2019/10/24(木) 09:51:33.40 ID:76TAYxNw.net]
>>832
p [6, 5, 4, 3, 2, 1].partition.with_index{|_, i| i.even?}.then{|e, o| e.zip(o.sort).flatten}
# => [6, 1, 4, 3, 2, 5]

861 名前:デフォルトの名無しさん mailto:sage [2019/10/24(木) 09:51:53.30 ID:76TAYxNw.net]
>>839 Ruby 2.6.0

862 名前:デフォルトの名無しさん mailto:sage [2019/10/24(木) 12:04:34.69 ID:yRKIAYVV.net]
>>839
[6, 5, 3, 2, 1] とかだと結果が間違っている上、nilとか足されてひどいことになるyo?

p [6, 5, 3, 2, 1].partition.with_index{|_, i| i.even?}.then{|e, o| e.zip(o.sort).flatten}
# => [6, 2, 3, 5, 1, nil]

正しくは => [6, 1, 3, 2, 5]

863 名前:デフォルトの名無しさん [2019/10/24(木) 15:41:34.92 ID:gElHX+jG.net]
>>832
Kotlin
https://paiza.io/projects/RXWCx9-WsZvakBKGgIo1UA

やり方は >>834 に書かれている通り。

しかし、もっとスマートな方法はないものか?
ありそうだが思い浮かばない。

864 名前:デフォルトの名無しさん mailto:sage [2019/10/24(木) 16:54:57.81 ID:ZpMPcQ0n.net]
>>842
配列コピーしない場合奇数が出たらその後の要素を見て一番小さい奇数と要素の交換でもどう?
配列のコピー不要や。



865 名前:デフォルトの名無しさん mailto:sage [2019/10/24(木) 21:24:20.41 ID:YtgvOVKx.net]
>>832 ruby
https://ideone.com/EUWgwy

>>832 ocaml
https://ideone.com/6SktpO

866 名前:デフォルトの名無しさん mailto:sage [2019/10/24(木) 23:20:25.74 ID:33G0+sWg.net]
>>838
さすがJニキ、さっぱりわからん…

867 名前:デフォルトの名無しさん [2019/10/25(金) 00:26:52.21 ID:GgLEjF73.net]
アプリ作成したいのですが、素人なのでどなたか相談に乗ってください。

飲み物が入ったコップを定期的に重量を量り、
そのデータを無線で受信してサーバーで記録し
プロットするアプリを作りたいです。

またRaspiなどのPCはなしで作りたいのですが
組み込みPC?を使わないとできませんか?

またこういったアプリに適した言語などありますでしょうか?

868 名前:デフォルトの名無しさん [2019/10/25(金) 00:32:12.57 ID:D+sRag4r.net]
プログラム部分はたいしたことがないとおもうのだが
装置、ハードのほうが大事だろ
そもそもプログラムもハード依存するかもしれないし


869 名前:チに既成品なら []
[ここ壊れてます]

870 名前:デフォルトの名無しさん [2019/10/25(金) 00:48:27.50 ID:GgLEjF73.net]
ありがとうございます。
ハードウェアの知識が全く無いため困っています。
飼い猫のために水の量を管理してあげたいんです。

下記のような組み合わせで出来そうでしょうか?

ADコンバータ
KKHMF HX711モジュール 秤量センサー 24位精度ADモジュール 圧力センサーモジュール

重量センサー
uxcell 計量ロードセル アルミ合金材質 500g計量 電子天秤 有線 計量センサー

871 名前:デフォルトの名無しさん [2019/10/25(金) 03:57:48.67 ID:uJcHRouN.net]
やり方わからないんだけど、カメラで撮影して映像解析して量が分かるのであればスマホやタブレット用のアプリでできそうだよね。
(PCに小さいカメラ付けても良いが)。

872 名前:デフォルトの名無しさん mailto:sage [2019/10/25(金) 04:08:18.02 ID:rztx2iSz.net]
>>848
適切なスレに移動した方がいいぞ

873 名前:デフォルトの名無しさん mailto:sage [2019/10/25(金) 09:43:45.15 ID:C/odSq3f.net]
センサーの話題などは、Linux 板のラズパイのスレで聞けば?

874 名前:デフォルトの名無しさん mailto:sage [2019/10/25(金) 09:56:31.28 ID:VVjeWd6A.net]
>>848
適当なIoTの計り買えば解決
実装はCだろうな



875 名前:デフォルトの名無しさん mailto:sage [2019/10/25(金) 11:49:06.01 ID:C/odSq3f.net]
>>832
Ruby で、

input_ary = [ 6, 5, 4, 3, 2, 1 ]
odd_ary = [ ]; index_ary = [ ]

input_ary.each_with_index do |num, idx|
if num.odd?
odd_ary.push num
index_ary.push idx
end
end

odd_ary.sort! # ソート

# 同時に、複数の配列をループする
index_ary.zip( odd_ary ).each { |idx, num| input_ary[ idx ] = num }
p input_ary

876 名前:デフォルトの名無しさん [2019/10/25(金) 12:30:51.02 ID:GgLEjF73.net]
>> 849 , 850, 851, 852
情報ありがとうございます。

スレチだったみたいで申し訳ないです。
センサーありきなので、Raspiは使わないと思うのですが
板覗いてみます。

877 名前:デフォルトの名無しさん mailto:sage [2019/10/25(金) 14:59:52.83 ID:ylwTeYJx.net]
>>832
https://ideone.com/FKifBY
C++。クイックソート書けないので謎のソートでお茶を濁す。

878 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 01:38:30 ID:o5w2ifn2.net]
お題: 端末上で(´・ω・`)を端から端まで移動し、往復させよ
ただし、端についたら(´・ω・`)は増幅し(´・ω・`)(´・ω・`)になる
同様に再び端についたら(´・ω・`)(´・ω・`)は増幅し(´・ω・`)(´・ω・`)(´・ω・`)になる
左右に移動できなくなる又ははみ出す場合は逆に(´・ω・`)を減らしていき、最終的に(´・ω・`)を消滅させよ

879 名前:デフォルトの名無しさん [2019/10/26(土) 06:24:17 ID:2eoY+VbT.net]
お題: Unicode 1 文字を与えると East Asian Width に従った属性値を返す関数を作成し、その関数に対して任意の文字を与えてテストするプログラムを作れ。
返す属性値の F, H, W, Na, A, N は文字列でも良いし対応する数値でも良いし enum のような(またはCなら #define されている)名前でも良い。
East Asian Width の一覧は下記URLのテキストの内容を使用する。これを最初に読んで初期化するように作っても良いし、最初からプログラムに適した形式で埋め込まれていても良い。
www.unicode.org/Public/UCD/latest/ucd/EastAsianWidth.txt
参考: 東アジアの文字幅
https://ja.wikipedia.org/wiki/%E6%9D%B1%E3%82%A2%E3%82%B8%E3%82%A2%E3%81%AE%E6%96%87%E5%AD%97%E5%B9%85

880 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 07:11:59 ID:I0XoRu/q.net]
お題:>>832 に「偶数要素は2で割って降順ソート」という要件を追加してください
すでに回答済

881 名前:みの場合は最少限の変更でのご対応で腕(もしくは言語のポテンシャル)を見せてください []
[ここ壊れてます]

882 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 07:27:04.95 ID:I0XoRu/q.net]
>>858
入力例:[0, 9, 8, 4, 6, 5, 1, 2, 7, 3]
出力例:[4, 1, 3, 2, 1, 3, 5, 0, 7, 9]

883 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 11:01:29.07 ID:/Rj6VhaF.net]
>>832 Pharo/Squeak Smalltalk

| fn |
fn := [:arr |
| sortedOdds |
sortedOdds := (arr select: #odd) sort readStream.
arr collect: [:x | x odd ifTrue: [sortedOdds next] ifFalse: [x]]
].

fn value: #(6 5 4 3 2 1) "=> #(6 1 4 3 2 5) "


>>835

| fn |
fn := [:arr |
| sortedOdds sortedHalfEvens |
sortedOdds := (arr select: #odd) sort readStream.
sortedHalfEvens := ((arr select: #even) sort reversed / 2) readStream.
arr collect: [:x | x odd ifTrue: [sortedOdds next] ifFalse: [sortedHalfEvens next]]
].

fn value: #(0 9 8 4 6 5 1 2 7 3) "=> #(4 1 3 2 1 3 5 0 7 9) "

884 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 11:03:35.88 ID:/Rj6VhaF.net]
>>860
×835 → ○>>858



885 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 11:45:52.80 ID:4aRwI3hq.net]
>>859 Perl5、最小限でか…

@s = (0, 9, 8, 4, 6, 5, 1, 2, 7, 3);
@ix = grep{$s[$_] & 1} keys @s;
@iy = sort{$s[$a] <=> $s[$b]} @ix;
@s[@ix] = @s[@iy];
@iz = grep{~$s[$_] & 1} keys @s;
@s[@iz] = map{$_ / 2} reverse sort{$a <=> $b} @s[@iz];
use Data::Dump 'dump';
print dump @s;

実行結果
~ $ perl 15_859.pl
(4, 1, 3, 2, 1, 3, 5, 0, 7, 9)

886 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 12:12:03.02 ID:Zgyrlv2c.net]
>>832,858
@Mathematica

https://ideone.com/0UFN7o

887 名前:デフォルトの名無しさん [2019/10/26(土) 12:22:15.14 ID:GFiKSQ9h.net]
>>856
Porwershell。バージョンによってはプロンプト画面に直接貼り付けると$sの文字列が
化けるので、その場合はファイルに保存して実行。

$s = "('・ω・``)"
$w = $Host.UI.RawUI.WindowSize.Width - 1
$m = [Math]::Floor($w / 10)

foreach ($n in 1..$m + ($m - 1)..0) {
  $d = $w - 10 * $n
  foreach ($x in (($d..1), (1..$d))[$n % 2]) {
    $l = "`r" + " " * $x + $s * $n + " " * ($d - $x)
    Write-Host $l -NoNewline
    if (!$n) {Write-Host; break}
    Sleep -m 20
  }
}

888 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 13:49:47.32 ID:f6JeNzn+.net]
Mathematica12

定義
f1[a_]:=SubsetMap[Sort,a,Position[a,_?OddQ,1]]
f2[a_]:=SubsetMap[ReverseSort[#]/2&,f1[a],Position[a,_?EvenQ,1]]

実行結果
f1[{6,5,4,3,2,1}]
{6,1,4,3,2,5}

f2[{0,9,8,4,6,5,1,2,7,3}]
{4,1,3,2,1,3,5,0,7,9}

889 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 17:08:24.41 ID:kYj2w42l.net]
>>832, >>858 Ruby

f = -> ary {
  e, o = ary.partition(&:even?).map(&:sort)
  ary.map{|v| v.even? ? v : o.shift}
}
g = -> ary {
  e, o = ary.partition(&:even?).map(&:sort)
  ary.map{|v| v.even? ? e.pop >> 1 : o.shift}
}

p f[[6, 5, 4, 3, 2, 1]] # => [6, 1, 4, 3, 2, 5]
p g[[0, 9, 8, 4, 6, 5, 1, 2, 7, 3]] # => [4, 1, 3, 2, 1, 3, 5, 0, 7, 9]

890 名前:デフォルトの名無しさん [2019/10/26(土) 20:25:43.01 ID:XXeS+kK0.net]
>>858 c
https://ideone.com/g7IC5E

891 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 22:02:49.24 ID:+YWUVQNg.net]
>>856
https://ideone.com/lw7uIj
C++。なんか表示位置ずれるなーと思ったら、「()」これ半角じゃねーか。
そのせいで、プログラムが持ってる長さと表示の長さが合わなかった。

しかし、汚くなった無し、思ったより時間がかかってしまった。

892 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 22:16:30.14 ID:FFSD3o8O.net]
>>858 octave
https://ideone.com/d5NTlm

>>858 ruby
https://ideone.com/R93NWY

>>858 ocaml
https://ideone.com/RTlP5X

893 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 22:21:47.70 ID:+YWUVQNg.net]
>>858
https://ideone.com/7vsaej
C++。前のヤツに関数足した。
オーダーが倍になったが改修だとこんなもんだ。

894 名前:蟻人間 mailto:age [2019/10/26(土) 22:38:02.04 ID:Q5f3 ]
[ここ壊れてます]



895 名前:+aYX.net mailto: お題: あるフォルダ(例えばC:\Windows)についてフォルダの階層構造を木構造(tree)を表すテキストとして出力せよ。

インデントでもいい。罫線を使ってもいい。
[]
[ここ壊れてます]

896 名前:デフォルトの名無しさん [2019/10/26(土) 22:38:38.76 ID:T/HAOzs9.net]
tree

897 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 22:46:14.97 ID:a/Ne+y1n.net]


898 名前:蟻人間 mailto:age [2019/10/26(土) 23:33:25.57 ID:0HLEEd3+.net]


899 名前:デフォルトの名無しさん [2019/10/26(土) 23:36:46.58 ID:Up+ppHZL.net]


900 名前:デフォルトの名無しさん [2019/10/26(土) 23:56:14.95 ID:mT+r0MIT.net]


901 名前:デフォルトの名無しさん mailto:sage [2019/10/27(日) 01:42:02 ID:98GTxTrH.net]


902 名前:デフォルトの名無しさん [2019/10/27(日) 01:48:49 ID:hTxWtEZY.net]


903 名前:デフォルトの名無しさん [2019/10/27(日) 02:14:55 ID:qZK0Jir5.net]


904 名前:デフォルトの名無しさん [2019/10/27(日) 12:00:30.73 ID:czi1K5eV.net]
>>858-859
PowerShell

$a = 0, 9, 8, 4, 6, 5, 1, 2, 7, 3
$b = 0, 0
$i = 0, 0
$odd = {$_ % 2}
$b[0] = @($a |? {!(&$odd)} |% {$_ / 2} | sort -descending)
$b[1] = @($a |? {&$odd} | sort)
$c = $a |% {$b[(&$odd)][$i[(&$odd)]++]}

"入力: [" + ($a -join ", ") + "]"
"出力: [" + ($c -join ", ") + "]"



905 名前:デフォルトの名無しさん mailto:sage [2019/10/27(日) 21:46:52.77 ID:JAeIkS65.net]
>>858 c
https://ideone.com/SwF6Zp

906 名前:デフォルトの名無しさん [2019/10/28(月) 14:33:15.95 ID:kjzN6NI8.net]
>>858-859
Haxe で、

https://try.haxe.org/#Bb813

907 名前:デフォルトの名無しさん mailto:sage [2019/10/28(月) 21:54:57.80 ID:UPe4TNxT.net]
Common Lisp
>>832
(let* ((l '(6 5 4 3 2 1))
    (odds (sort (remove-if-not #'oddp l) #'<)))
 (mapcar (lambda (x) (if (oddp x) (pop odds) x)) l))

>>858-859
(let* ((l '(0 9 8 4 6 5 1 2 7 3))
    (odds (sort (remove-if-not #'oddp l) #'<))
    (evens (sort (remove-if-not #'evenp l) #'>)))
 (mapcar (lambda (x) (if (oddp x) (pop odds) (/ (pop evens) 2))) l))

908 名前:蟻人間 mailto:sage [2019/10/28(月) 22:20:53.11 ID:9dus/Ppg.net]
Linuxにこんなコマンドあんのかよお?

https://www.adminweb.jp/command/file/index2.html

909 名前:デフォルトの名無しさん [2019/10/28(月) 22:33:53.27 ID:cHOU2eIF.net]
>>871
Powershell。標準のtreeコマンドと違い、システム/隠しフォルダも表示する。
バージョンによってはプロンプト画面に貼り付けると罫線文字が消えてしまうので、
その場合はps1ファイルに保存して実行するか、PowerShell ISEに貼り付ける。

function MyTree($path, $branch)
{
 if (!$branch) {$path}
 $dir = @(ls -Force -PSPath $path -EV e -EA SilentlyContinue |? {$_.PSIsContainer})
 if ($e) {$branch + "::アクセス不可"}
 if (!$dir) {return}
 0..($last = $dir.Count - 1) |% {
  $branch + ("├─", "└─")[$_ -eq $last] + $dir[$_].Name
  MyTree $dir[$_].FullName ($branch + ("│ ", "  ")[$_ -eq $last])
 }
}

MyTree "C:\Windows"

910 名前:デフォルトの名無しさん mailto:age [2019/10/28(月) 23:08:40.85 ID:F/Wh8ChL.net]
>>884
100年前からあるよ

911 名前:デフォルトの名無しさん mailto:sage [2019/10/28(月) 23:13:15.22 ID:uBs49FGp.net]
色わけもされているのが良くあり、たいへん見やすい

912 名前:蟻人間 ◆T6xkBnTXz7B0 mailto:sage [2019/10/29(火) 01:01:17 ID:CdNgVa0z.net]
お題: 平面(0, 0)-(100,100)上に点を100個、配置する。k-means法を用いて点の集合を3つのグループに分け、それらを図示せよ。

913 名前:デフォルトの名無しさん mailto:sage [2019/10/29(火) 08:42:30.06 ID:CowX2GWO.net]
>>858-859
Ruby で、

input_ary = [ 0, 9, 8, 4, 6, 5, 1, 2, 7, 3 ]

even_ary, odd_ary = input_ary.partition( &:even? ) # 偶数・奇数配列

odd_ary.sort! # 奇数要素をソート

# 偶数要素は、2で割って降順ソート
even_ary.map! { |num| num / 2 }
even_ary.sort!
even_ary.reverse!

p results = input_ary.map { |num| num.even? ? e

914 名前:ven_ary.shift : odd_ary.shift } # 偶数・奇数 []
[ここ壊れてます]



915 名前:デフォルトの名無しさん mailto:sage [2019/10/29(火) 11:11:57.21 ID:8fHMSau6.net]
やっぱり初心者にはまず黒い画面のCUIからやらせたほうがいいな

916 名前:デフォルトの名無しさん mailto:sage [2019/10/29(火) 18:19:47.29 ID:BWleRN1J.net]
設定で白い画面にすると心が和らぐかも知れない

917 名前:デフォルトの名無しさん mailto:sage [2019/10/29(火) 18:42:27.40 ID:plxF2L4V.net]
目がクラッシュ

918 名前:デフォルトの名無しさん mailto:sage [2019/10/29(火) 21:04:32.22 ID:OodB9NB8.net]
日本標準時2100に起動し、Web上から文字列「惣流・アスカ・ラングレー」を含む.jpgファイルもしくは.jpegあるいは.pingファイルをC:秘蔵に1GB分保存するコードを教えてください

919 名前:デフォルトの名無しさん [2019/10/29(火) 21:19:03.11 ID:zdS42c06.net]
式波だろオッサン

920 名前:デフォルトの名無しさん mailto:sage [2019/10/29(火) 22:05:19.10 ID:xXVEd4hK.net]
>>893
0 21 * * * sudo less BigWeb | grep アスラン・ザラ > home/C/H_file limit 1GB

921 名前:デフォルトの名無しさん mailto:sage [2019/10/29(火) 22:18:10.10 ID:VtVeF5OO.net]
>>893
firebird -t0:21:0:0 --everyday --query 惣流・アスカ・ラングレー --suffix "jpg|jpeg|ping" --dst "C:\secret" --limit 1GB

922 名前:デフォルトの名無しさん mailto:sage [2019/10/30(水) 00:58:38.18 ID:VQ6oDJg7.net]
pingファイルわらた

923 名前:デフォルトの名無しさん mailto:sage [2019/10/30(水) 04:42:26 ID:LML0ucqT.net]
アイが隠っている

924 名前:デフォルトの名無しさん [2019/11/01(金) 22:31:20.50 ID:5BPqTvCN.net]
お題: 3^3^3^... のような反復指数を10の反復指数に近似するプログラムを作成しなさい。
入力されるそれぞれの指数は1より大きい実数とします。
計算後の最も右の指数xは 1<x≦10 としてください。

例:
3^3^3^3^3^3 = 10^10^10^10^10^1.099
2.718^2.718^2.718^2.718^7.705 = 10^10^10^10^2.983
(5.0e+50)^(6.0e+60)^(7.0e+70)^(8.0e+80)^(9.0e+90) = 10^10^10^10^10^10^1.968
1.1^1.1^1.1^1.1^1.1 = 1.112



925 名前:デフォルトの名無しさん [2019/11/01(金) 23:58:48.16 ID:Yq8XY12s.net]
a^n = b^x を解く問題でいいじゃん

926 名前:蟻人間 mailto:sage [2019/11/02(土) 13:25:33.62 ID:OyXmLdGY.net]
>>899
演算子^は、左結合、それとも右結合?

927 名前:デフォルトの名無しさん mailto:sage [2019/11/02(土) 14:21:37.47 ID:ZDjpW1U6.net]
>>901
右結合です
a^b^c => a^(b^c)
無論 ^はべき乗の演算子です。

928 名前:蟻人間 mailto:sage [2019/11/02(土) 16:24:06.83 ID:3ZL9CX49.net]
10^1〜10^10で二分探索を繰り返しかな?

929 名前:デフォルトの名無しさん mailto:sage [2019/11/02(土) 17:38:05.70 ID:q/Mbih9P.net]
>>899
https://ideone.com/0Xqylu
C++。あってるか知らんけど、知識を動員して解いてみたんだけど、あってる?
三の3乗を6回やったら、doubleでinfになるので解けねーわ。うわわーん。

930 名前:デフォルトの名無しさん mailto:sage [2019/11/02(土) 18:12:47.84 ID:41WzS7Cc.net]
>>904
コード一切読んでないけどお前のは間違ってると思うよ

931 名前:デフォルトの名無しさん mailto:sage [2019/11/02(土) 18:39:57.30 ID:q/Mbih9P.net]
>>905
意味が解らん。
まぁ、いいけど。

932 名前:デフォルトの名無しさん [2019/11/02(土) 19:40:47.26 ID:0iFQzt0L.net]
>>899
PowerShellで最初の2例だけ。

function lg($x) {[Math]::log10($x)}
function pow($x, $y) {[Math]::pow($x, $y)}

function tetrconv($a)
{
$k = lg ((pow $a[-2] $a[-1]) * (lg $a[-3]) + (lg (lg $a[-4])))
$b = @(10) * ($a.count - 1) + [Math]::round($k, 3)
($a -join "^") + " = " + ($b -join "^")
}

tetrconv (@(3) * 6)
tetrconv (@(2.718) * 4 + 7.705)

933 名前:デフォルトの名無しさん [2019/11/02(土) 21:32:51.49 ID:0iFQzt0L.net]
>>899
最後の2例にも対応した。

function lg($x) {[Math]::log10($x)}
function pow($x, $y) {[Math]::pow($x, $y)}

function tetrconv($a)
{
  $k = $a[-1]
  foreach ($i in -2..-$a.count) {
    if ($k -gt 10) {break}
    $k = pow $a[$i] $k
  }
  if ($i - 1 -ge -$a.count) {$k *= lg $a[$i - 1]}
  if ($i - 2 -ge -$a.count) {$k += lg (lg $a[$i - 2])}
  while ($k -gt 10) {
    $k = lg $k
    $i++
  }
  if ($i += $a.count) {$i++}
  $b = @(10) * $i + [Math]::round($k, 3)
  ($a -join "^") + " = " + ($b -join "^")
}

tetrconv (@(3) * 6)
tetrconv (@(2.718) * 4 + 7.705)
tetrconv (5.0e50, 6.0e60, 7.0e70, 8.0e80, 9.0e90)
tetrconv (@(1.1) * 5)

934 名前:デフォルトの名無しさん mailto:sage [2019/11/03(日) 00:32:05.95 ID:ORedds2P.net]
偶数の場合は半分に、奇数の場合は3倍して1加算して結果が1になるまでその数値を出力してください。

1まで出力して完了です。

単純だけど、どこまで短く書ける?



935 名前:デフォルトの名無しさん mailto:sage [2019/11/03(日) 00:36:48.03 ID:ZBjdhNSI.net]
>>909
コラッツ予想はもうおなかいっぱいだわ

936 名前:デフォルトの名無しさん [2019/11/03(日) 12:57:12.82 ID:ax9Okew1.net]
コラッて怒れば良いんじゃないかな

937 名前:デフォルトの名無しさん mailto:sage [2019/11/03(日) 13:57:01.56 ID:mZU6qafh.net]
>>909
https://ideone.com/JsckiH
C++。ショートコーダじゃないから短めに書いて、24行。

938 名前:デフォルトの名無しさん mailto:sage [2019/11/03(日) 15:49:54.73 ID:kVBOYkVG.net]
>>909
C#
https://ideone.com/unj3KD
短く書こうとする気すらないw

939 名前:デフォルトの名無しさん [2019/11/03(日) 18:50:15.71 ID:6KV8hNPc.net]
縦と横のサイズが与えられるのでアスペクト比を求めよ

940 名前:デフォルトの名無しさん mailto:sage [2019/11/03(日) 20:03:15.96 ID:PuBKYFzC.net]
比は整数のみ?

941 名前:デフォルトの名無しさん [2019/11/03(日) 21:50:08.17 ID:rJL4Vpjg.net]
>>899
別の入力値 (例えば@(1.7) * 5や@(1.5) * 14) を試してみたら出力値がおかしかったので修正。

function lg($x) {[Math]::log10($x)}
function pow($x, $y) {[Math]::pow($x, $y)}

function tetrconv($a)
{
  $k = 1
  foreach ($i in ($a.count - 1)..0) {
    $k = pow $a[$i] $k
    if ($k -gt 20) {break}
  }
  if ($i -ge 1) {$k *= lg $a[$i - 1]}
  if ($i -ge 2) {$k += lg (lg $a[$i - 2])}
  while ($k -gt 10) {
    $k = lg $k
    $i++
  }
  $b = @(10) * $i + [Math]::round($k, 3)
  ($a -join "^") + " = " + ($b -join "^")
}

tetrconv (@(3) * 6)
tetrconv (@(2.718) * 4 + 7.705)
tetrconv (5.0e+50, 6.0e+60, 7.0e+70, 8.0e+80, 9.0e+90)
tetrconv (@(1.1) * 5)

942 名前:デフォルトの名無しさん mailto:sage [2019/11/04(月) 07:30:04.95 ID:T8mOMaiU.net]
お題:
m から n までの整数のうち、桁数字の和が s になるものをすべて列挙する
関数を書け。

具体的に:
1 から 100 までの整数のうち、桁数字の和が 12 になるものは、
39、48、57、66、75、84、93 である。

関数の実行例:
f(1, 100, 12) → [39, 48, 57, 66, 75, 84, 93]

943 名前:デフォルトの名無しさん mailto:sage [2019/11/04(月) 10:20:33.30 ID:xKwnPcPn.net]
数列和好きだね これで何回目だ?
数列和求めて何か嬉しいのか? 簡易計算ミスを防げるとか

944 名前:デフォルトの名無しさん mailto:sage [2019/11/04(月) 10:51:39.60 ID:FzGFhotx.net]
>>917 perl
なんの捻りもない

use List::Util qw(sum);
print join",",(grep{sum(split//)==12}(1..100));



945 名前:デフォルトの名無しさん mailto:sage [2019/11/04(月) 12:37:41.26 ID:7wrIz40y.net]
>>918
数列和?
いきなりオレオレ用語で語られても困るw

946 名前:デフォルトの名無しさん mailto:sage [2019/11/04(月) 14:30:03.94 ID:obVJwnOe.net]
>>917
https://ideone.com/pWqVPQ
C++。割といつも通りという感じ。

947 名前:デフォルトの名無しさん mailto:sage [2019/11/04(月) 19:33:38.63 ID:xKwnPcPn.net]
タイポ
数字和 >744 などにでてくるやつ

948 名前:デフォルトの名無しさん [2019/11/04(月) 19:35:11.53 ID:6jo2x8my.net]
>>917
PowerShellで単純に書けば

function f($a, $b, $s) {$a..$b |? {(iex ([char[]]"$_" -join "+")) -eq $s}}
f 1 100 12

だが、桁が増えると遅すぎるので、少し工夫すると、

$M = [Math]

function g($s, $n)
{
  if ($n -eq 1) {return $s}
  $d = $M::pow(10, $n - 1)
  for ($i = $M::max(0, $s - 9 * ($n - 1)); $i -le $M::min(9, $s); $i++) {
    g ($s - $i) ($n - 1) |% {$d * $i + $_}
  }
}

function f($a, $b, $s)
{
g $s ($M::ceiling($M::log10($b))) |? {$_ -ge $a -and $_ -le $b}
}

f 1 10000000 12

949 名前:デフォルトの名無しさん [2019/11/04(月) 19:36:29.94 ID:6jo2x8my.net]
7桁まではまあまあだが8桁以上だと遅いので、Cで書き換えると9桁でも瞬時に終わった。
(出力をファイルにリダイレクトした場合)。Visual Studioでは動作するが、
ideone.comでは変なコンパイラエラーが発生する。

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

void g(int a, int b, int s, int n, int t, int x)
{
  int d, i;

  if (n == 0) {
    if (t == s && x >= a && x <= b) printf("%d\n", x);
  } else {
    for (d = i = 1; i < n; i++) d *= 10;
    for (i = max(0, (s - t) - 9 * (n - 1)); i <= min(9, s - t); i++) {
      g(a, b, s, n - 1, t + i, d * i + x);
    }
  }
}

void f(int a, int b, int s)
{
  g(a, b, s, ceil(log10(b)), 0, 0);
}

int main(void)
{
  f(1, 1000000000, 12);
  return 0;
}

950 名前:デフォルトの名無しさん [2019/11/05(火) 01:53:14.53 ID:gnRgB6kn.net]
>>909
Kotlin
https://paiza.io/projects/P-_x81NFh0Pq-Fu6FgHHQg

肝心な部分は短いよな・・・

951 名前:デフォルトの名無しさん [2019/11/05(火) 20:14:32.31 ID:e+hxAdfR.net]
お題:グラフの最長距離探索プログラムを作りなさい。分からなければダイクストラの最短距離探索プログラムを改造して作りなさい。

952 名前:デフォルトの名無しさん mailto:sage [2019/11/05(火) 20:40:24.45 ID:3L71zPwH.net]
>>926
全探索になるから辛い。
X以上になったら打ち切りとかできないし、枝がX個以上なら切るとかもできない。

953 名前:デフォルトの名無しさん mailto:sage [2019/11/05(火) 21:02:19.16 ID:3L71zPwH.net]
枝じゃなかった。支点だった。

954 名前:デフォルトの名無しさん mailto:sage [2019/11/05(火) 22:48:36.11 ID:4YhU7TUN.net]
>>917
Common Lisp
(defun f (m n s)
 (print (loop for i from m to n
        if (= s (loop for (j k) = (multiple-value-list (floor i 10)) then (multiple-value-list (floor j 10))
               sum k
               until (zerop j)))
        collect i)))

(f 1 100 12)



955 名前:デフォルトの名無しさん [2019/11/07(木) 19:42:24.48 ID:wJeAdMrJ.net]
>>917
Kotlin
https://paiza.io/projects/sCUo-pxCCvYRSj_y9LA9Qg

ひねりなし。

956 名前:デフォルトの名無しさん [2019/11/07(木) 22:47:28.91 ID:Iq2Mem9/.net]
>>924を読み返してみたら、1変数減らしてすっきりさせられることに気付いた。

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

void g(int a, int b, int r, int n, int x)
{
  int d, i;

  if (n == 0) {
    if (r == 0 && x >= a && x <= b) printf("%d\n", x);
  } else {
    d = pow(10, n - 1);
    for (i = max(0, r - 9 * (n - 1)); i <= min(9, r); i++) {
      g(a, b, r - i, n - 1, d * i + x);
    }
  }
}

void f(int a, int b, int s)
{
  g(a, b, s, ceil(log10(b)), 0);
}

int main(void)
{
  f(1, 1000000000, 12);
  return 0;
}

957 名前:デフォルトの名無しさん [2019/11/10(日) 21:37:46.78 ID:OK7x/7YO.net]
文字コードがシフトJISでもUnicodeでも3つ以上の連番となる文字列(最長一致)を、
コード範囲とともにすべて表示せよ。例えば、それらのうちの1つに関する表示は、

824F..8258
FF10..FF19
01234566789

となる。なお、シフトJISには機種依存文字を含んで構わない。

958 名前:デフォルトの名無しさん mailto:sage [2019/11/10(日) 21:57:20.43 ID:uvNl/ ]
[ここ壊れてます]

959 名前:eaa.net mailto: >>932
何を以って同じ文字とみなすのか定義しろ
[]
[ここ壊れてます]

960 名前:デフォルトの名無しさん [2019/11/10(日) 22:09:53.56 ID:OK7x/7YO.net]
>>933
それも機種依存で構わない。規格上の厳密さにこだわる必要はない。

961 名前:デフォルトの名無しさん mailto:sage [2019/11/10(日) 23:26:27.72 ID:EkgZPBq1.net]
>>932 Java
https://ideone.com/GLDM9a

これでいいのけ?

962 名前:デフォルトの名無しさん mailto:sage [2019/11/11(月) 00:44:57.23 ID:VmjibYtT.net]
バイナリファイルの高速コンペア

963 名前:デフォルトの名無しさん mailto:sage [2019/11/11(月) 18:33:43.09 ID:KK646YuM.net]
>>936
メモリに二つとも呼んでfor回す。意外は難しい気がする。

964 名前:デフォルトの名無しさん mailto:sage [2019/11/11(月) 19:03:14.97 ID:KK646YuM.net]
>>917
https://ideone.com/eVgFHk
C++。一回解いたけど再考して配列一個潰した。
5秒で5000万位解けそう??



965 名前:デフォルトの名無しさん mailto:sage [2019/11/11(月) 22:23:08.18 ID:ySONYK72.net]
>>936
単に一致不一致だけわかればいいのか?
とか
コンペアするファイルは2つだけなのか?
とか

単に2つのファイルの一致不一致を見るだけなら基本>>937の言う通りだと思う

966 名前:デフォルトの名無しさん [2019/11/11(月) 22:37:18.90 ID:hxYpUSvR.net]
>>935
正解。Windowsには機種依存文字

8754..875D
2160..2169
TUVWXYZ[\]

などもあるが、機種依存文字を含んでも構わないという出題だったので、
含まなくてもOK。

967 名前:デフォルトの名無しさん [2019/11/12(火) 05:31:26.51 ID:oeG9wEYf.net]
お題

スレ立てるまでもない質問はここで 152匹目
https://mevius.5ch.net/test/read.cgi/tech/1573214616/
の3番の問題を勝手に解く

968 名前:デフォルトの名無しさん mailto:sage [2019/11/12(火) 12:11:13.05 ID:BJKXTHw+.net]
>>940 Java
https://ideone.com/611DD5

>>935からCharasetをShift-JISからx-SJIS_0213に変えただけ (Windowsだとx-MS932_0213のほう?)
Shift-JISだと古いやつなんやな

969 名前:デフォルトの名無しさん [2019/11/12(火) 21:37:48.42 ID:+gLjUv3x.net]
>>941
処理データ量が少なく計算効率を考慮しなくて良いなら、Rで簡潔に書ける。
https://ideone.com/cRvth9

効率が求められるなら、Cで二分探索の変形版だな。
https://ideone.com/FXQQjq

970 名前:デフォルトの名無しさん [2019/11/12(火) 22:38:04.89 ID:SyoIDDRx.net]
windowsのロングパス対応の重複ファイル検索するコードない?

971 名前:デフォルトの名無しさん mailto:sage [2019/11/13(水) 04:07:44 ID:eXHRJefh.net]
>>941 Pharo/Squeak Smalltalk

| fn |

fn := [:m |
| table |
table := #(98 100 198 200 250 298).
table detectMin: [:x | (x - m) abs]
].

fn value: 50. "=> 98 "
fn value: 195. "=> 198 "

972 名前:デフォルトの名無しさん mailto:sage [2019/11/13(水) 14:07:45.70 ID:9sxFrKBI.net]
>>941
https://ideone.com/wJ8lPk
C++。多分動いてるけど、境界線系のエラーハンドリングは適当。

973 名前:デフォルトの名無しさん mailto:sage [2019/11/13(水) 15:30:27.12 ID:EqcpRCSG.net]
どう考えても線形探索の方が簡単で速い
1回だけなら

974 名前:デフォルトの名無しさん [2019/11/13(水) 18:24:57.67 ID:utJBi2wY.net]
>>941 Lua
function f(a, x)
local res = a[1]
for i = 2, #a do
if math.abs(res - x) > math.abs(a[i] - x) then
res = a[i]
end
end
return res
end



975 名前: mailto:sage [2019/11/13(水) 20:03:11.45 ID:ESFhNQze.net]
>>944
https://mevius.5ch.net/test/read.cgi/tech/1434079972/53

976 名前:デフォルトの名無しさん mailto:sage [2019/11/13(水) 20:28:42.98 ID:6mLuLK4e.net]
>>941 octave
https://ideone.com/kbVTGp

977 名前:デフォルトの名無しさん [2019/11/13(水) 20:40:25.65 ID:H1DP2m/6.net]
>>944
>>1002

978 名前:デフォルトの名無しさん [2019/11/13(水) 20:48:13.08 ID:CMaH4qd1.net]
>>941
C++ならSTLのequal_rangeを使えば、二分探索のコードを自前で書かずに済む。
https://ideone.com/KJ134u

この例の条件でしか判定しないなら、5つの定数値との比較にするのが一番簡単で
速そうだな。
https://ideone.com/ef553N

979 名前:デフォルトの名無しさん mailto:sage [2019/11/13(水) 21:39:03.09 ID:Fqkv69gY.net]
なんで順番に5回も比較してんの?

980 名前:デフォルトの名無しさん mailto:sage [2019/11/13(水) 21:47:59.14 ID:kE3A4AyF.net]
10回比較するわけにはいかないからでしょ

981 名前:デフォルトの名無しさん mailto:sage [2019/11/13(水) 21:53:11.46 ID:RzCRvdkP.net]
まずは199との比較では?
あとは範囲を絞ったテーブルとか

int全てをカバーするテーブルも
intが32bitな64bit環境なら一応は可能

982 名前:蟻人間 mailto:sage [2019/11/13(水) 22:09:59.79 ID:SHPlbPC2.net]
お題: 自動塗り絵。

白地に黒い線で図形が描かれているモノクロ画像が与えられる。
白い領域をそれぞれ適当な単色で塗りつぶせ。可能ならOpenCVを使ってもいい。

983 名前:デフォルトの名無しさん mailto:sage [2019/11/13(水) 22:51:59.05 ID:RzCRvdkP.net]
ペイントブラシ + スクリプト
で出来そう

984 名前:デフォルトの名無しさん [2019/11/13(水) 23:03:48.70 ID:CMaH4qd1.net]
>>955
「一番速い」ではなく「一番簡単で速い」だからね。可読性とかバグの
混入しにくさとかも考えると、順番に5回比較するのが一番良いだろ。
特に https://mevius.2ch.net/test/read.cgi/tech/1573214616/3 への
回答としては、最も適している。



985 名前:デフォルトの名無しさん mailto:sage [2019/11/13(水) 23:40:49.81 ID:RzCRvdkP.net]
一番速くもないし一番簡単でもない

一番「簡単で速い」?
簡単と速いは相反するので一番なんて無い

986 名前:デフォルトの名無しさん mailto:sage [2019/11/13(水) 23:42:10.65 ID:RzCRvdkP.net]
凡人が安易に「一番」とか言わない方が良いよ

987 名前:デフォルトの名無しさん [2019/11/14(木) 01:06:49.29 ID:4AhPUV/Y.net]
俺が一番

988 名前:デフォルトの名無しさん [2019/11/14(木) 06:15:22.98 ID:BnXMw1SX.net]
>>941 Io
f:=method(a,x,
a map(v,list((v-x)abs,v))min last
)
d:=list(98,100,198,200,298)
f(d,120) println
実行結果
100

989 名前:デフォルトの名無しさん mailto:sage [2019/11/14(木) 09:31:40.70 ID:baSi3t2K.net]
一番簡単で速いってなんだよ
一番簡単かつ一番速いなら一番速いって言えばいいだけだろ
ってC++の人かよ

990 名前:デフォルトの名無しさん mailto:age [2019/11/14(木) 12:32:18.21 ID:WVE0j82D.net]
一番に過剰反応してるみなさんwww

991 名前:デフォルトの名無しさん mailto:sage [2019/11/14(木) 13:14:51.59 ID:/NpdgKVA.net]
一番とか最も適しているとか
頭が悪いやつが良く言うセリフ

992 名前:デフォルトの名無しさん mailto:sage [2019/11/14(木) 13:27:39.39 ID:isT1FYJS.net]
それな
あと「頭悪いやつがよく言う」ってのも頭悪いやつよく言うセリフだわ

993 名前:デフォルトの名無しさん mailto:sage [2019/11/14(木) 15:14:06.76 ID:1CVvHcAw.net]
>>941 python

https://ideone.com/g2dWOw

994 名前:デフォルトの名無しさん mailto:sage [2019/11/14(木) 16:23:41.28 ID:bZ2yXVXr.net]
>>963
俺、よくmakehoge書いてる人だけど、その二分探査書いた人は別人。
偶に、俺じゃない人がC++書いてくことがある。
まぁ、俺も貢献度が高いかというと解らんけど。



995 名前:デフォルトの名無しさん [2019/11/14(木) 22:16:17.11 ID:ya/1xYDt.net]
>>963
「一番簡単で速い」は「一番簡単」かつ「速い」という意味だよ。
一番簡単なコードを書いてみて充分に速ければ、さらに手を加える必要はないってこと。
昨今はCPUが速いので、簡単なコードをささっと書いて終わりにできる場合が多いし、
Cを使うまでもなくRやPythonなどでも実用に耐える。処理条件が変わって速度に
不満が生じたときだけ、書き直せば良い。

996 名前:デフォルトの名無しさん mailto:sage [2019/11/14(木) 22:21:25.20 ID:KjmBL3+S.net]
配列をキャッシュに乗せるだけで早くなる
配列にするだけで早くなる

997 名前:デフォルトの名無しさん [2019/11/14(木) 23:43:50.36 ID:ya/1xYDt.net]
>>970
>>941の最も近い値を求める処理(Aと呼ぶ)だけを複数回連続して行う場合はそうだが、
間に別の処理(Bと呼ぶ)がたくさん入る場合はキャッシュから外れるかも知れないし、
AよりもBの方で相対的にだいぶ長い時間がかかっているならば、Aを高速化する
意味はない。

Aを簡単に書き終え、Bを書き進めてプログラム全体を完成させ、各部分の実行時間を
デバッガで分析し、Aを高速化する必要があるか判定するのが効率的な開発方法。
必要なときだけAを書き直してみて、元のAと実行時間を比較し、顕著に速い場合だけ
採用する。あまり変わらない場合は元の

998 名前:簡単な方に戻す。 []
[ここ壊れてます]

999 名前:デフォルトの名無しさん mailto:sage [2019/11/15(金) 06:08:37 ID:/dDy1LQy.net]
>>969
なぜ
一番簡単
だと思ったのか

1000 名前:デフォルトの名無しさん mailto:sage [2019/11/15(金) 06:11:01 ID:/dDy1LQy.net]
中途半端に最適化するくらいなら
意味通りをそのまま記述した方が良いよ

トリッキーなマクロとか使わないで普通にループでいいし

1001 名前:デフォルトの名無しさん [2019/11/15(金) 07:24:03.38 ID:YlbiRAmO.net]
>>941 J

f =: 4 : 0
{. x /: | x - y
)

a =: 98 100 198 200 250 298
a f 199
198

1002 名前:デフォルトの名無しさん mailto:sage [2019/11/15(金) 08:39:52.88 ID:zGnI3whh.net]
>>491 python
整数の範囲を 1000000000 にして、リストのサイズをその1/10の 100000000 にしてやった物

https://ideone.com/JL4ZtG

1003 名前:デフォルトの名無しさん mailto:sage [2019/11/15(金) 08:46:57.30 ID:pd2oXw5y.net]
お題はどれ?

1004 名前:デフォルトの名無しさん mailto:sage [2019/11/15(金) 10:34:11.71 ID:zGnI3whh.net]
>>975 は、>>941 のお題の間違い。



1005 名前:デフォルトの名無しさん mailto:sage [2019/11/15(金) 10:34:39.11 ID:kGxI2dsU.net]
>>972
もっと簡単なのがあると言うなら提示すりゃいいだけ

1006 名前:デフォルトの名無しさん mailto:sage [2019/11/15(金) 10:37:36.49 ID:Dg2kwGpJ.net]
そんなら一番簡単なんて言ったもん勝ちやんアホクサ

1007 名前:デフォルトの名無しさん mailto:age [2019/11/15(金) 11:19:40.93 ID:y6ix6SXf.net]
>>979
どういうこと?

1008 名前:デフォルトの名無しさん mailto:sage [2019/11/15(金) 13:20:35.16 ID:pd2oXw5y.net]
発言者に証明責任がある
当たり前

1009 名前:デフォルトの名無しさん mailto:sage [2019/11/15(金) 13:22:00.36 ID:pd2oXw5y.net]
簡単じゃない部分は書いたけどね

1010 名前:デフォルトの名無しさん mailto:sage [2019/11/15(金) 13:25:38.61 ID:pd2oXw5y.net]
本当に一番簡単だと思ってるなら
非常に頭が弱い
というしかない

1011 名前:デフォルトの名無しさん mailto:age [2019/11/15(金) 16:04:20.43 ID:y6ix6SXf.net]
証明責任が

1012 名前:デフォルトの名無しさん [2019/11/15(金) 18:45:17.65 ID:YlbiRAmO.net]
>>941 Ruby

def f(a,x)
a.min_by{|v|(v-x).abs}
end

1013 名前:デフォルトの名無しさん mailto:sage [2019/11/15(金) 22:18:10.52 ID:1XAUh39O.net]
>>982
ひょっとして>>973か?
頓珍漢な指摘でドヤられても困るw

1014 名前:デフォルトの名無しさん mailto:sage [2019/11/16(土) 07:59:12.18 ID:PKd8UO5d.net]
お前ちょっとしつこいよ
二人ともどっか行ってくれ



1015 名前:デフォルトの名無しさん mailto:sage [2019/11/16(土) 09:38:56.12 ID:R3eXoa4h.net]
お題: 標準入力から読み取った文字列に対して変換候補の単語を表示するスクリプトを作れ
変換候補は https://www.cs.cmu.edu/~rgs/alice-table.html のテキストを元にし、英文のみの対応とする

例:
in < on
out > ['on', 'once', 'one', 'only']
in < we
out > ['well', 'went', 'were']

1016 名前:デフォルトの名無しさん mailto:sage [2019/11/16(土) 09:39:44.99 ID:R3eXoa4h.net]
>>988
URL訂正: https://www.cs.cmu.edu/~rgs/alice-I.html

1017 名前:10-11 mailto:sage [2019/11/16(土) 11:43:03.30 ID:nyexrMnj.net]
Mathematica
ビットテーブル使ったからいまいち

f[x_]:=Round[Exp[x*49/2^9]*10]+Mod[BitShiftRight[8518656,x],2]

f[Range[0,23]]
{10,11,12,13,15,16,18,20,22,24,27,30,33,36,39,43,47,51,56,62,68,75,82,91}

1018 名前:デフォルトの名無しさん mailto:sage [2019/11/16(土) 13:01:44.00 ID:9Ne+J8hx.net]
>>988-989 PowerShell
$Words = ([RegEx]"\w+").Matches((Invoke-WebRequest 'https://www.cs.cmu.edu/~rgs/alice-I.html').Content) | Select-Object -ExpandProperty 'Value' | Sort-Object -Unique
'on', 'we' | %{ "'$_' => ['$($Words -cmatch "^$_.*$" -join ''', ''')']" }
--
'on' => ['on', 'once', 'one', 'only']
'we' => ['well', 'went', 'were']

1019 名前:蟻人間 mailto:sage [2019/11/16(土) 14:12:37.63 ID:wI2tFyzM.net]
そろそろ次スレ

1020 名前:デフォルトの名無しさん [2019/11/16(土) 20:00:42.94 ID:ycfnvugG.net]
>>987
誤解がないように一応言っておくが、同一人物なのは943, 952, 958, 969, 971, 993だけで、
978や986は別人ね。

1021 名前:デフォルトの名無しさん mailto:sage [2019/11/16(土) 20:11:13.21 ID:SjIOWxyj.net]
どうでもいい
匿名掲示板

1022 名前:デフォルトの名無しさん mailto:sage [2019/11/16(土) 22:09:51.31 ID:ByTTIV4m.net]
>>988
@Mathematica

https://ideone.com/3Ad2Nv

1023 名前:デフォルトの名無しさん mailto:sage [2019/11/17(日) 09:01:36.94 ID:xqEdXdr6.net]
次スレ

プログラミングのお題スレ Part16
mevius.5ch.net/test/read.cgi/tech/1573948822/

1024 名前:990 mailto:sage [2019/11/17(日) 15:37:45.58 ID:WMPUR+bY.net]
BitGet使うんだった(Mathematicaに慣れてないのばればれ)
(* 49/2^9 = 0.095703125 *)
f[x_]:=Round[Exp[x*0.095703125]*10]+BitGet[8518656,x]

もう少し頑張っても16ビット以内にビットテーブルは縮小出来ず…。
(* 785/2^13 = 0.0958251953125 *)
f[x_]:=Round[Exp[x*0.0958251953125]*10]+BitGet[130048,x]



1025 名前:デフォルトの名無しさん [2019/11/21(木) 12:06:42.30 ID:p+kY48sO.net]
>>941 julia
a=[98,100,198,200,250,298]
f(a,x)=a[argmin(map(abs ,a.-x))]
f(a,50)

1026 名前:デフォルトの名無しさん mailto:sage [2019/11/21(木) 17:12:54.10 ID:x85mexbT.net]
>>988-989 Squeak Smalltalk。関数で。

| contents words fn |
contents := (HTTPClient httpGet: 'https://www.cs.cmu.edu/~rgs/alice-I.html') contents.
words := (contents replaceAll: Character lf with: Character space; asTextFromHtml) asString subStrings: ' !"''()*,-.:;?`'.
words := words asSet asSortedArray.

fn := [:in | words select: [:word | word beginsWith: in]].
fn value: 'on'. "=> #('on' 'once' 'one' 'only') "
fn value: 'we'. "=> #('well' 'went' 'were') "

"for Pharo => ws.stfx.eu/DK48GF5ZH8SF "

1027 名前:蟻人間 mailto:sage [2019/11/21(木) 20:01:07.49 ID:KAM+noJg.net]
はかい
こうせん
せんもんがっこう

1028 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 116日 0時間 21分 10秒

1029 名前:1002 [Over 1000 Thread.net]
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php

1030 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<307KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef